如何計算服務器的峰值
一點參考,已貼過的:
以Sun 1.2GHz UltraSPARC IV為例:
1.2GB USIV, 雙內(nèi)核雙線程
其中每內(nèi)核:
2個浮點處理器, 理論上
1.2Ghz * 2 == 2.4Mflop/s 即2.4百萬次浮點運算
實際可測試:
for (i=0; i< 1000000; i++) a + = 2 * b;
全UltraSPARC IV浮點運算次數(shù):
2內(nèi)核(2線程)* 2浮點運算單元 * 1000000 == 4000000
如運算時間需1秒結束, 則實際性能:
1.0E-06*(4000000)/1= 4Mflop/s
即一個UltraSPARC IV大概4M百萬次浮點運算每秒,大概對科學計算應用有參考, 其它應用,應考慮更多一些:
Sun服務器,從小到大:
1. CPU數(shù)量:1-72
1.2GB USIV, 雙內(nèi)核雙線程
其中每內(nèi)核:
L1,L2,和內(nèi)存控制器均在CPU上,
L1 Cache,需<1ns時間訪問:
4路,64KB 數(shù)據(jù)cache, 4路,32KB 指令cache, 4路, 2KB 預取cache, 4路, 2KB 寫cache,
L2 Cache,需10-20ns時間訪問: 8MB cache
內(nèi)核間cache獨立,歸各內(nèi)核自用,不共享
2. 內(nèi)存:2GB-576GB,修改內(nèi)存及內(nèi)存數(shù)據(jù)同步時間180-440ns,
建議每CPU至少配2GB內(nèi)存,每CPU實際可對應32GB內(nèi)存 理論系統(tǒng)帶寬:2.4GB/s/CPU, 實測系統(tǒng)帶寬: 1.9GB/s/CPU, 全系統(tǒng)持續(xù)帶寬:9.6GB/s, 2-24CPU, 43GB/s, 72CPU
3.I/O,硬盤訪問時間5-70ms, 網(wǎng)絡最大100ms延遲。
每I/O板理論帶寬2.4GB/s, 實測帶寬840MB/s 每I/O板2個I/O控制器 每I/O每I/O控制器理論帶寬1.2GB/s,實測帶寬420MB/s
其中. 硬盤:9GB-300GB/個 I/O性能: 9 GB 7200轉(zhuǎn)/分,141次I/Os每秒 18 GB 10000轉(zhuǎn)/分,141次I/Os每秒 36 GB 15000轉(zhuǎn)/分,178次I/Os每秒, 12-20MB/s 73 GB 10000轉(zhuǎn)/分,122次I/Os每秒 146GB 10000轉(zhuǎn)/分,130次I/Os每秒 180GB 10000轉(zhuǎn)/分, 86次I/Os每秒
1個66MHz PCI總線, 插FC光纖硬盤,1個100MB/s FCAL光纖環(huán)提供I/O實測帶寬94MB/s 1個66MHz PCI總線, 插FC光纖硬盤,2個100MB/s FCAL光纖環(huán)提供I/O實測帶寬186MB/s
Internet網(wǎng)絡客戶: 每個56Kbps Modem, 需網(wǎng)絡帶寬0.0056MB/s
4.應用
數(shù)據(jù)庫層:
聯(lián)機事務處理常用2KB I/O,文件服務常用8KB I/O, 決策支持常用64KB I/O,典型每事務處理2-200行SQL,1 SQL操作對應3-9 I/Os操作,平均每次交易對應70KB/s, (如300萬次IBM TPCC世界記錄:70KB/s/交易 * 3000000交易/60秒 = 2.1GB/s I/O,大概用了64個Power5 CPU, 6000多硬盤), 1CPU 對應60GB/s I/O,2MB內(nèi)存對應1數(shù)據(jù)庫用戶,額外需相當于5-15%總數(shù)據(jù)庫的內(nèi)存為數(shù)據(jù)庫cache,64MB內(nèi)存對應于OS,例如:
Oracle數(shù)據(jù)庫常規(guī)應用,1000并發(fā)用戶,大量并發(fā)小規(guī)模隨即數(shù)據(jù)讀寫,采用2KB I/O,約需:
每8CPU對應10000用戶, I/O帶寬: 2KB/s * 1000并發(fā)用戶 * 5I/Os/每次交易 = 10MB/s 需硬盤數(shù): 5I/Os/每次交易 * 1000并發(fā)用戶 / 100 I/Os/硬盤 = 50硬盤 一個硬盤不夠,只能用50個硬盤組成卷, IDE因為總線所支持硬盤數(shù)少,而不予考慮, SCSI總線最多可支持16個設備,單條總線不夠,而必須在PCI總線上多插SCSI卡,帶多SCSI總線, SCSI/FC帶寬40MB/s 到320MB/s, 66MHz PCI帶寬,均夠用,
Oracle數(shù)據(jù)庫決策系統(tǒng),1000并發(fā)用戶,大規(guī)模連續(xù)數(shù)據(jù)讀寫,采用64KB I/O, 約需:
所有CPU可能被一用戶程序所消耗,多配CPU, I/O帶寬:64KB/s * 1000并發(fā)用戶 * 5I/Os/每次交易 = 320MB/s IDE因為總線帶寬不夠及所支持硬盤數(shù)少,而不予考慮, SCSI總線最多可支持16個設備,單條總線不夠,如不用320MB/s硬盤,則而必須在PCI總線上 多插SCSI卡,帶多SCSI總線, FC帶寬無論1Gb/s或2Gb/s, 均不夠用,必須在PCI總線上多插FC卡,帶多FC環(huán) 無論PCI,或PCI-X, 或PCI-E,帶寬都夠用, 1個66MHz PCI總線, 帶寬足夠,但可能PCI槽位由于插多SCSI/FC卡而需另加一PCI總線。 如Sun Fire 25K TPC-H世界記錄, 72CPU, 實際系統(tǒng)帶寬57GB/s, 運行Oracle10g, 5TB數(shù)據(jù),插71 FC卡連188T2B,3000多FC硬盤,用128KB 1/O, 理論I/O帶寬43GB/s 實測18GB/s
NFS文件服務應用,1MHz CPU對應1 Mbps網(wǎng)絡, 即每千兆網(wǎng)1 CPU,每64NFS用戶對應128MB內(nèi)存, 如為輕I/O應用,每硬盤對應2并發(fā)用戶,8-9硬盤每SCSI總線,每百兆網(wǎng)對應40用戶。
中間件層: ?。。。。。。。(如何規(guī)劃,需高手補充) Sun Fire v20z 雙節(jié)點集群SPECjAppServer2002世界記錄, 690.13TOPS@DualNode 2x 2.2 Ghz, AMD Opteron 248雙節(jié)點。
Web層: 在線用戶數(shù)對應1點擊每秒,多數(shù)頁面點擊文件大小<15KB,1點擊對應2 I/Os操作, 已知世界記錄為2000年美國總統(tǒng)選舉時 CNN使用Sun Web服務器創(chuàng)造的3.3百萬點擊每分(?), 1CPU對應800動態(tài)頁面點擊/s,1CPU需4GB 內(nèi)存,一個10000轉(zhuǎn)/分硬盤對應50個點擊/s,一千兆網(wǎng)對應3500-5000點擊, Sun Fire v20z 2x2.4GHz CPU SPECweb99_SSL世界記錄, 2,500個連接數(shù)。 IBM p655 4x1.7GHz Power CPU也不錯,運行Zeus Web服務器,3699個連接數(shù)。 HP rx8620 16 x 1.5GHz安騰2也不錯,運行Zeus Web服務器 9060個連接數(shù)。 Sun Fire v490 4CPU4節(jié)點集群SPECweb99_SSL世界記錄,10700個連接數(shù)。
而且應用所需配置應只針對服務器70%的工作負載,即應用如需100%的能力,服務器應在當年實際具有 143%的能力。
另外,對于一個應用程序,無論PC,還是小型機:
因為CPU到L1 cache 時間<1ns, 到L2 cache時間<20ns, 等內(nèi)存同步需180-440ns,等硬盤讀數(shù)據(jù)5-70ms,等以太網(wǎng)絡最大100ms延遲, 所以對一個數(shù)據(jù)的讀寫操作,其一個循環(huán)即相差幾十1000倍(ns-ms),編程要珍惜每一個從網(wǎng)絡服務器硬盤讀的數(shù)據(jù),對于C等,讀入的數(shù)組行應盡量在Cache行中用完,如:
將: for (i=0; i<n; i++) a = 2 * b;
for (i=0; i<n; i++) c = a + d;
a讀入后,又再次讀入使用,性能對小型機來說浪費幾十1000倍,可能對PC機浪費少些,應改為: for (i=0; i<n; i++) { a = 2 * b; c = a + d; }
系統(tǒng)性能才不會降低,才不浪費CPU,內(nèi)存,I/O... |
|