如何規(guī)劃和選擇數(shù)據(jù)庫(kù)服務(wù)器?
一個(gè)最真實(shí)的評(píng)估,是建立一個(gè)接近真實(shí)業(yè)務(wù)應(yīng)用的操作環(huán)境,進(jìn)行各種壓力測(cè)試,測(cè)算出不同的用戶數(shù)量下,系統(tǒng)的響應(yīng)時(shí)間和吞吐量,并得出當(dāng)時(shí)服務(wù)器的各種資源的利用率情況,對(duì)硬件資源的完整評(píng)估,需要考慮下列三個(gè)方面:
服務(wù)器性能的評(píng)估
客戶端工作站或前端桌面的評(píng)估
通訊網(wǎng)卡和網(wǎng)絡(luò)帶寬的評(píng)估
如果不能建立準(zhǔn)確的壓力測(cè)試環(huán)境,需要根據(jù)工業(yè)界的Benchmark對(duì)服務(wù)器進(jìn)行評(píng)估,推算出符合業(yè)務(wù)規(guī)模的服務(wù)器配置,同時(shí)要考慮在做系統(tǒng)管理時(shí)所消耗的資源,如在做備份、恢復(fù)、問題診斷、性能分析時(shí)、軟件維護(hù)時(shí)都會(huì)對(duì)資源帶來附加的消耗,對(duì)重要資源要考慮為將來留下升級(jí)和可擴(kuò)展的余地,下列是一些通用的原則:
處理器:要考慮高峰時(shí)的處理器的能力,并適當(dāng)保留一些緩沖,確保在業(yè)務(wù)增長(zhǎng)時(shí),系統(tǒng)有擴(kuò)展的余地。如果要保持快速的響應(yīng)能力,應(yīng)當(dāng)為CPU保留20%至40%的富余量。
內(nèi)存:要為運(yùn)行在此服務(wù)器的所有應(yīng)用軟件考慮內(nèi)存,所需要的內(nèi)存主要依賴于用戶數(shù)、應(yīng)用程序類型、進(jìn)程的方式、和應(yīng)用程序處理的數(shù)據(jù)量決定。
磁盤:評(píng)估業(yè)務(wù)的實(shí)際用戶的數(shù)據(jù)量,以此推算出磁盤的最小個(gè)數(shù),不要忘記選擇備份設(shè)備(如磁帶機(jī))。
IO槽:盡量保留更多的IO槽,防止將來插更多的PCI卡。
網(wǎng)絡(luò):選擇合適的網(wǎng)卡,保證網(wǎng)絡(luò)不是系統(tǒng)的瓶頸。
在評(píng)估數(shù)據(jù)庫(kù)服務(wù)器性能時(shí),最困難的事情是如何把握準(zhǔn)確度問題,到底考慮哪些因素等。理想情況下,應(yīng)考慮下列要素:
交易的復(fù)雜性
交易率
數(shù)據(jù)讀/寫比例
并發(fā)連接數(shù)目
并發(fā)交易數(shù)目
數(shù)據(jù)庫(kù)最大表的大小
性能度量的目標(biāo)
根據(jù)各種Benchmark測(cè)試結(jié)果和對(duì)各種生產(chǎn)系統(tǒng)的檢測(cè),下表概括了CPU、磁盤、內(nèi)存頁面、網(wǎng)絡(luò)和虛存頁交換的利用率,可看出一個(gè)服務(wù)器如果其利用率保持在Good 所標(biāo)示的范圍內(nèi)時(shí),是一種理想的模式。
基于rPerf的推算,評(píng)估數(shù)據(jù)庫(kù)服務(wù)器的CPU
rPerf(Relative performance)是從IBM公司解析模型得出的商務(wù)處理性能估計(jì)值。該模型模擬部分系統(tǒng)的操作,如中央處理器、高速緩存和內(nèi)存,該模型沒有模擬磁盤和網(wǎng)絡(luò)的輸入/輸出操作。雖然采用了一般數(shù)據(jù)庫(kù)和操作系統(tǒng)的參數(shù),但該模型不能反映出具體的數(shù)據(jù)庫(kù)或AIX版本。除非單獨(dú)說明,否則rPerf均在系統(tǒng)推出時(shí)估計(jì)。IBM pSeries 640-B80為基準(zhǔn)參照系統(tǒng),其值為本。雖然rPerf可用于比較商業(yè)處理性能,但實(shí)際的系統(tǒng)性能可能不同,取決于許多因素,包括系統(tǒng)硬件配置和軟件設(shè)計(jì)與配置。
評(píng)估數(shù)據(jù)庫(kù)服務(wù)器的性能,需要理解交易的類型、高峰期的情況、用戶數(shù)量、在高峰時(shí)每個(gè)用戶的交易數(shù)量。假如在高峰時(shí),有三種典型的交易類型:輕的、一般的、重的。需要知道高峰時(shí),每種交易的并發(fā)用戶數(shù)目。假定高峰時(shí)間為:10:00-11:00,每個(gè)用戶的交易數(shù)目如下:
輕的交易 =120 交易/用戶
一般的交易= 60 交易/用戶
重的交易 = 15交易/用戶
每個(gè)交易所使用的CPU秒
評(píng)估出交易類型后,需要評(píng)估出運(yùn)行每個(gè)交易所消耗的CPU秒,如果假定B80服務(wù)器每秒中支持10個(gè)交易,則每個(gè)交易需要消耗0.1個(gè)CPU秒。如果不知道如何評(píng)定CPU秒,則根據(jù)應(yīng)用類型參照下列表。
基于rPerf的推算,評(píng)估數(shù)據(jù)庫(kù)服務(wù)器的CPU
rPerf(Relative performance)是從IBM公司解析模型得出的商務(wù)處理性能估計(jì)值。該模型模擬部分系統(tǒng)的操作,如中央處理器、高速緩存和內(nèi)存,該模型沒有模擬磁盤和網(wǎng)絡(luò)的輸入/輸出操作。雖然采用了一般數(shù)據(jù)庫(kù)和操作系統(tǒng)的參數(shù),但該模型不能反映出具體的數(shù)據(jù)庫(kù)或AIX版本。除非單獨(dú)說明,否則rPerf均在系統(tǒng)推出時(shí)估計(jì)。IBM pSeries 640-B80為基準(zhǔn)參照系統(tǒng),其值為本。雖然rPerf可用于比較商業(yè)處理性能,但實(shí)際的系統(tǒng)性能可能不同,取決于許多因素,包括系統(tǒng)硬件配置和軟件設(shè)計(jì)與配置。 #p#page_title#e#
評(píng)估數(shù)據(jù)庫(kù)服務(wù)器的性能,需要理解交易的類型、高峰期的情況、用戶數(shù)量、在高峰時(shí)每個(gè)用戶的交易數(shù)量。假如在高峰時(shí),有三種典型的交易類型:輕的、一般的、重的。需要知道高峰時(shí),每種交易的并發(fā)用戶數(shù)目。假定高峰時(shí)間為:10:00-11:00,每個(gè)用戶的交易數(shù)目如下:
輕的交易 =120 交易/用戶
一般的交易= 60 交易/用戶
重的交易 = 15交易/用戶
下面舉例說明如何計(jì)算所需的rPerf值,假定某公司的情況如下:
業(yè)務(wù)高峰時(shí)間: 10:00-11:00=1Hour=3600秒
交易類型: 無復(fù)雜查詢的簡(jiǎn)單應(yīng)用
相對(duì)交易類型,用戶數(shù)目分布:輕的=2000, 一般=50, 重的=5
在高峰時(shí),每個(gè)用戶的交易數(shù)量:
輕的=120交易/用戶
一般=60交易/用戶
重的=15交易/用戶
對(duì)于rPerf=1的服務(wù)器,每個(gè)交易響應(yīng)的CPU秒
輕的=1
一般=3
重的=15
最大的CPU利用率:60%
根據(jù)上述公式,可推算出不同交易類型所對(duì)應(yīng)的rPerf值。
輕的交易:NU*TX*CS/PP=2000*120*1/3600=66.0
一般交易:NU*TX*CS/PP=50*60*3/3600=2.5
重的交易:NU*TX*CS/PP=5*15*15/3600=0.3
所需的總的rPerf/MC=(66.0+2.5+0.3)/0.7=98.3 rPerf
基于TPC-C的推算,評(píng)估數(shù)據(jù)庫(kù)服務(wù)器的CPU
TPC-C基準(zhǔn)是事務(wù)處理委員會(huì)建立的一個(gè)專門演示在線事務(wù)處理性能(OLTP)的性能基準(zhǔn),它的測(cè)量方法是為了使客戶能夠評(píng)估不同的在線事務(wù)處理系統(tǒng)的性能,這些事務(wù)進(jìn)程于一個(gè)可控制的狀態(tài)下在一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)中運(yùn)行。
TPC-C測(cè)試包括5個(gè)典型的OLTP事務(wù),它們是:
新訂單 :一個(gè)用戶提交一個(gè)新的訂單
支付 :更新用戶的賬戶余額以反映一個(gè)支付
交付 :訂單的交付(通過一個(gè)批事務(wù)處理實(shí)現(xiàn))
訂單狀態(tài):返回用戶最新訂單的狀態(tài)
庫(kù)存水平:監(jiān)控當(dāng)前倉(cāng)庫(kù)庫(kù)存
TPC-C的事務(wù)處理是在一個(gè)9個(gè)表的數(shù)據(jù)庫(kù)上實(shí)現(xiàn)的事務(wù)處理過程包括:更新、插入、刪除、終止,以及對(duì)主和次級(jí)鍵的訪問,每種事務(wù)處理90%的響應(yīng)時(shí)間應(yīng)小于或等于5秒,其中,庫(kù)存水平的響應(yīng)時(shí)間可以在20秒以內(nèi)。
TPC-C的吞吐量值是終端活動(dòng)水平的直接結(jié)果,如每一個(gè)倉(cāng)庫(kù)有10個(gè)終端,在每一個(gè)終端上上述5個(gè)事務(wù)都是可用的,一個(gè)遠(yuǎn)程的終端仿真器被用來在性能測(cè)試過程中進(jìn)行必要的事務(wù)混合工作。這個(gè)混合代表著一個(gè)完整的訂單商務(wù)處理流程:錄入、支付、檢驗(yàn)、交付。更專業(yè)的是,這個(gè)必要的混合被定義為產(chǎn)生一個(gè)相等數(shù)量的新訂單和支付事務(wù),以及在每10個(gè)新訂單事務(wù)中產(chǎn)生一個(gè)交付事務(wù),一個(gè)訂單狀態(tài)檢驗(yàn)事務(wù)和一個(gè)庫(kù)存水平檢驗(yàn)事務(wù)
遠(yuǎn)程終端仿真器也被用來測(cè)量每一個(gè)事務(wù)的響應(yīng)時(shí)間,以及用來模擬鍵入時(shí)間及思考時(shí)間,鍵入時(shí)間是指在終端上錄入數(shù)據(jù)所花費(fèi)的時(shí)間,思考時(shí)間是指操作人員在終端讀取事務(wù)的結(jié)果,進(jìn)行下一個(gè)事務(wù)請(qǐng)求之前所花費(fèi)的時(shí)間。每一個(gè)事物都有一個(gè)最小鍵入時(shí)間和最小思考時(shí)間。另外,這個(gè)響應(yīng)時(shí)間必須在一個(gè)給定的極限值之下。
TPC-C基準(zhǔn)測(cè)試的結(jié)果--TPC-C的吞吐量(tpmC),代表的是系統(tǒng)的最大的持續(xù)性能,它被定義為系統(tǒng)每分鐘可以處理多少個(gè)新訂單事務(wù),與此同時(shí),系統(tǒng)還在處理其他四種事務(wù)類型(支付、訂單狀態(tài)、交付、庫(kù)存水平)。所有5個(gè)TPC-C事務(wù)都有某個(gè)限定的用戶響應(yīng)時(shí)間要求,其中新訂單事務(wù)的響應(yīng)時(shí)間是5秒以內(nèi)。因此如果一個(gè)系統(tǒng)的TPC-C值是100tpmC/min,說明該系統(tǒng)在每分鐘處理其他的混合的TPC-C事務(wù)的工作的同時(shí),可以產(chǎn)生100個(gè)新訂單事務(wù)。
如何使用TPC-C進(jìn)行服務(wù)器的評(píng)估
由上可知,TPC-C測(cè)試基準(zhǔn)主要用于測(cè)試主機(jī)服務(wù)器每分鐘能夠處理的聯(lián)機(jī)交易筆數(shù),測(cè)試產(chǎn)生的單位結(jié)果是TPM值(Transaction Per Minute,即每分鐘處理的交易比數(shù))。
TPC-C雖然客觀的反映了各個(gè)計(jì)算機(jī)廠商的系統(tǒng)處理性能,并且測(cè)試基準(zhǔn)也在不斷完善以更加貼近現(xiàn)實(shí)應(yīng)用的交易環(huán)境,但是仍然無法與紛繁多樣的各類實(shí)際應(yīng)用完全吻合;而且參加TPC測(cè)試的主機(jī)系統(tǒng)都做了適當(dāng)程度的系統(tǒng)優(yōu)化。因此,在實(shí)際業(yè)務(wù)應(yīng)用系統(tǒng)選擇主機(jī)服務(wù)器乘載體時(shí),必須考慮到多方面的因素,以最大程度的做到適合應(yīng)用系統(tǒng)的生產(chǎn)需求。 #p#page_title#e#
以下計(jì)算公式是IBM公司在金融綜合業(yè)務(wù)系統(tǒng)的實(shí)際應(yīng)用中總結(jié)的經(jīng)驗(yàn)方法論,基本反映了金融業(yè)務(wù)特點(diǎn)對(duì)主機(jī)處理能力的需求:
TPM=TASK x 80% x S x F / (T x C)
其中:
TASK:為每日業(yè)務(wù)統(tǒng)計(jì)峰值交易量
T:為每日峰值交易時(shí)間,假設(shè)每日80%交易量集中在每天的4小時(shí),即240分鐘內(nèi)完成:T=240。
S:為實(shí)際銀行業(yè)務(wù)交易操作相對(duì)于標(biāo)準(zhǔn)TPC-C測(cè)試基準(zhǔn)環(huán)境交易的復(fù)雜程度比例。由于實(shí)際的金融業(yè)務(wù)交易的復(fù)雜程度與TPC?C標(biāo)準(zhǔn)測(cè)試中的交易存在較大的差異,須設(shè)定一個(gè)合理的對(duì)應(yīng)值。以普通儲(chǔ)蓄業(yè)務(wù)交易為例,一筆交易往往需要同時(shí)打開大量數(shù)據(jù)庫(kù)表,取出其相關(guān)數(shù)據(jù)進(jìn)行操作,相對(duì)于TPC-C標(biāo)準(zhǔn)交易的復(fù)雜度,要復(fù)雜很多;根據(jù)科學(xué)的統(tǒng)計(jì)結(jié)果,每筆交易操作相比較于TPC標(biāo)準(zhǔn)測(cè)試中的每筆交易的復(fù)雜度此值可設(shè)定為10~20。
C:為主機(jī)CPU處理余量。實(shí)際應(yīng)用經(jīng)驗(yàn)表明,一臺(tái)主機(jī)服務(wù)器的CPU利用率高于80%則表明CPU的利用率過高會(huì)產(chǎn)生系統(tǒng)瓶頸,而利用率處于75%時(shí),是處于利用率最佳狀態(tài)。因此,在推算主機(jī)性能指標(biāo)時(shí),必須考慮CPU的冗余,設(shè)定C=75%。
F:為系統(tǒng)未來3~5年的業(yè)務(wù)量發(fā)展冗余預(yù)留。
綜上所述,為保障聯(lián)機(jī)業(yè)務(wù)處理性能要求,我們可推算得出主機(jī)所需的處理能力,據(jù)此得出相應(yīng)的機(jī)型和配置。
舉例說明,使用TPC-C進(jìn)行數(shù)據(jù)庫(kù)服務(wù)器評(píng)估
下面針對(duì)XYZ行的網(wǎng)上銀行業(yè)務(wù)的需求,我們進(jìn)行數(shù)據(jù)庫(kù)服務(wù)器的選型分析。
由于目前XYZ行只有17個(gè)分行開通了網(wǎng)上銀行業(yè)務(wù),據(jù)我們估計(jì),按照目前的客戶數(shù)量,全部分行都開通網(wǎng)上銀行業(yè)務(wù)后,總的客戶數(shù)量可以達(dá)到10萬??紤]INTERNET在我國(guó)的迅猛發(fā)展,客戶數(shù)量的年增長(zhǎng)率按照50%計(jì)算,那么,3年后的客戶數(shù)量將達(dá)到10萬×(1+50%)3≈34萬。
這些客戶當(dāng)中,至少有一半是個(gè)人客戶,另一半是企業(yè)客戶。企業(yè)客戶的交易頻率比較高,我們按平均每個(gè)企業(yè)客戶每天做1.5筆交易計(jì)算;個(gè)人客戶常用的交易是查詢、取款、存款,并且每個(gè)月還要交電話費(fèi),因此我們假定個(gè)人客戶平均每個(gè)月做4次交易;那么,每天的交易量就是:
34萬×50%×1.5+34萬×50%×(4÷30) ≈28萬筆
假設(shè)網(wǎng)上銀行的交易復(fù)雜度達(dá)到15,那么,每天的數(shù)據(jù)庫(kù)操作數(shù)達(dá)到:
28萬×15=420萬次
高法訴訟費(fèi)繳費(fèi):
由于訴訟費(fèi)的增長(zhǎng)量不大,我們按年遞增率5%計(jì)算。根據(jù)XYZ總行的統(tǒng)計(jì),全國(guó)共37家分行,繳費(fèi)量比較大的分行可以達(dá)到25000筆每月,占分行總數(shù)的20%;繳費(fèi)量中等的省可達(dá)到15000筆每月,占分行總數(shù)的30%;繳費(fèi)量小的省可達(dá)到7000筆每月,占分行總數(shù)的50%;按一個(gè)月20個(gè)工作日計(jì)算。這樣,三年后每天的交易數(shù)量可以達(dá)到:
(25000×20%+15000×30%+7000×50%)×37÷20×(1+5%)3≈28740筆
我們假設(shè)高法訴訟繳費(fèi)的交易復(fù)雜度達(dá)到13,那么每天的數(shù)據(jù)庫(kù)操作達(dá)到:
28740*13=373620次
整體性能要求:
總的數(shù)據(jù)庫(kù)操作次數(shù)是:4200000+373620=4573620
假設(shè)每天的交易的80%集中在4小時(shí)內(nèi)發(fā)生,那么高峰交易時(shí)間內(nèi)每分鐘的數(shù)據(jù)庫(kù)聯(lián)機(jī)交易次數(shù)為:4573620×80%÷(4×60)≈15250
要為將來陸續(xù)加入的應(yīng)用預(yù)留40%的處理能力;另外,考慮到CPU的繁忙時(shí)間低于70%時(shí),系統(tǒng)的性能較好,我們把這個(gè)比例定在65%。所以系統(tǒng)的TPC-C值應(yīng)達(dá)到:15250÷(1-40%)÷65%≈39000
內(nèi)存容量需求分析
首先根據(jù)數(shù)據(jù)庫(kù)容量算出所需的數(shù)據(jù)庫(kù)緩存大小,再估計(jì)出操作系統(tǒng)、系統(tǒng)軟件等所需內(nèi)存,合計(jì)即是所需的內(nèi)存容量。
網(wǎng)銀數(shù)據(jù)量分析:
XYZ總行網(wǎng)上銀行系統(tǒng)的數(shù)據(jù)庫(kù)由CIF信息,交易日志、交易流水三部分組成。
其中:CIF信息包括企業(yè)客戶和個(gè)人客戶信息,企業(yè)客戶信息平均大小為20K左右,個(gè)人客戶信息平均大小為5K左右;每一筆交易都要記交易日志,日志的平均大小為4K左右;每一筆轉(zhuǎn)帳交易都要記交易流水,交易流水的大小為2K左右。 #p#page_title#e#
這些客戶當(dāng)中,至少有一半是個(gè)人客戶,另一半是企業(yè)客戶。企業(yè)客戶的交易頻率比較高,我們按平均每個(gè)企業(yè)客戶每天做1.5筆交易計(jì)算;個(gè)人客戶常用的交易是查詢、取款、存款,并且每個(gè)月還要交電話費(fèi),因此我們假定個(gè)人客戶平均每個(gè)月做4次交易;那么,每天的交易量就是:
所有的交易日志和交易流水都要保留三個(gè)月。由于個(gè)人客戶的轉(zhuǎn)帳交易非常少,可以忽略不計(jì);假定企業(yè)客戶的轉(zhuǎn)帳交易占總交易量的70%。我們就可以計(jì)算網(wǎng)上銀行對(duì)存儲(chǔ)系統(tǒng)容量的要求:
CIF信息容量=20K×(34萬×50%)+5K×(34萬×50%)=3.25GB+421MB ≈ 4GB
交易日志容量=[34萬×50%×1.5+34萬×50%×(4÷30)] ×4K×30×3 =277667×4K×30×3 ≈95GB
交易流水容量=(34萬×50%×1.5)×70%×2K×30×3 ≈30GB
XYZ網(wǎng)上銀行總體數(shù)據(jù)容量要求:=4GB+95GB+30GB=129GB
高法訴訟費(fèi)數(shù)據(jù)量分析:
高法的交易數(shù)據(jù)按要求要保留三年,每筆交易記錄的大小為512字節(jié),總體容量為:(25000×20%+15000×30%+7000×50%)×37×12×3×0.5K≈8.2GB
因此,數(shù)據(jù)庫(kù)的總數(shù)據(jù)量為: 129GB+8.2GB=137.2GB
數(shù)據(jù)庫(kù)系統(tǒng)在緩存容量達(dá)到數(shù)據(jù)庫(kù)總?cè)萘康?%時(shí)性能較好,因此,數(shù)據(jù)庫(kù)緩存大小為:6.86GB。
從而計(jì)算出系統(tǒng)內(nèi)存需求為:
1. AIX操作系統(tǒng)所占的內(nèi)存 128MB
2. 數(shù)據(jù)庫(kù)管理系統(tǒng)所占的內(nèi)存 256MB
3. 雙機(jī)熱備等系統(tǒng)軟件所占的內(nèi)存 128MB
4. 應(yīng)用程序所占的內(nèi)存 256MB
5. 數(shù)據(jù)庫(kù)緩存 6.86GB
6. 合理的內(nèi)存利用率 75%
總計(jì) 10GB
存儲(chǔ)容量需求分析
除了上述的XYZ網(wǎng)上銀行系統(tǒng)和高法訴訟費(fèi)繳費(fèi)系統(tǒng)的存儲(chǔ)容量要求之外,還有異步查詢下載服務(wù)的存儲(chǔ)要求。
異步查詢下載服務(wù)每隔1小時(shí)生成一個(gè)下載數(shù)據(jù)包,每個(gè)數(shù)據(jù)包的大小為3MB,需要下載的數(shù)據(jù)包是上午十點(diǎn)生成的數(shù)據(jù)包,這個(gè)數(shù)據(jù)包需要保存2年,其它數(shù)據(jù)包只要保存3個(gè)月。因此,存儲(chǔ)容量為:
23×3M×30×3+1×3M×365*2=6GB+2GB=8GB
為避免存儲(chǔ)系統(tǒng)成為系統(tǒng)性能的瓶頸,系統(tǒng)存儲(chǔ)系統(tǒng)的使用率應(yīng)小于40%,建議采用鏡像方式存儲(chǔ)數(shù)據(jù),因此總的存儲(chǔ)容量為:
(137.2GB+8GB)÷40% ×2= 766GB