服務(wù)器性能不能憑主觀臆斷。如果一臺(tái)服務(wù)器要承擔(dān)工作負(fù)載,并運(yùn)行良好,IT工程師就需要使用清晰、客觀的方式去衡量服務(wù)器的需求性能和測(cè)量性能。幾乎在每一種情況下,基準(zhǔn)都是用來(lái)測(cè)量和監(jiān)測(cè)服務(wù)器性能的。本文將對(duì)服務(wù)器指標(biāo)和基準(zhǔn)測(cè)試做一個(gè)概述,并說(shuō)明進(jìn)行服務(wù)器性能測(cè)試的六大步驟。
了解服務(wù)器測(cè)量標(biāo)準(zhǔn)和基準(zhǔn)測(cè)試
服務(wù)器測(cè)量標(biāo)準(zhǔn)和基準(zhǔn)測(cè)試技術(shù)并非新的概念,其實(shí)早在許多年前就已提出來(lái),并用于測(cè)試早期的一些計(jì)算機(jī)系統(tǒng)。但是,設(shè)計(jì)基準(zhǔn)測(cè)試以衡量服務(wù)器性能其本身就是一門完整的科學(xué)。我們的想法是這樣的:對(duì)服務(wù)器的預(yù)期工作負(fù)載執(zhí)行一個(gè)模擬運(yùn)行過(guò)程。在執(zhí)行運(yùn)行過(guò)程并計(jì)時(shí)。然后在不同的系統(tǒng)上執(zhí)行完全相同的測(cè)試并對(duì)比結(jié)果。
由于服務(wù)器架構(gòu)的不斷發(fā)展,僅在不同的計(jì)算機(jī)系統(tǒng)上進(jìn)行簡(jiǎn)單的分析很難得出它們的性能參數(shù)。因此,服務(wù)器環(huán)境下的測(cè)量標(biāo)準(zhǔn)和基準(zhǔn)測(cè)試開始出現(xiàn)。但是,仍舊有個(gè)問(wèn)題:由于其本身就不統(tǒng)一的架構(gòu)和不同的操作系統(tǒng)與工作負(fù)載,其運(yùn)行情況亦不相同。因此,期間就要考慮許多不同的變量。
在本文中,我們統(tǒng)一使用Windows任務(wù)管理器來(lái)監(jiān)測(cè)應(yīng)用程序或進(jìn)程是如何影響我們的內(nèi)存或CPU使用率的。這就是度量測(cè)試,盡管這還只是一個(gè)非常簡(jiǎn)單的層次。Windows任務(wù)管理器的問(wèn)題在于其不會(huì)顯示設(shè)備實(shí)際的性能狀況。分層緩存系統(tǒng)、個(gè)性化應(yīng)用程序、定制硬件、海量數(shù)據(jù)庫(kù)、非統(tǒng)一內(nèi)存以及并發(fā)多線程處理器都會(huì)對(duì)現(xiàn)代計(jì)算機(jī)系統(tǒng)的性能產(chǎn)生巨大影響。
"科學(xué)"的性能測(cè)試
服務(wù)器的性能通常不會(huì)只受一個(gè)因素影響,因此,進(jìn)行服務(wù)器性能測(cè)試有一點(diǎn)類似于科學(xué)實(shí)驗(yàn)。進(jìn)行服務(wù)器性能測(cè)試的最佳做法是在分析中采用科學(xué)的方法。這個(gè)方法包括六個(gè)步驟,其分別為觀察、初步假設(shè)、結(jié)果預(yù)測(cè)、測(cè)試、理論測(cè)試結(jié)果和結(jié)論。測(cè)試過(guò)程中搜集的實(shí)驗(yàn)數(shù)據(jù)是否支持結(jié)論。測(cè)試中收集的同一數(shù)據(jù)是否能得出最佳和最差的服務(wù)器性能等級(jí)。以下是這個(gè)科學(xué)方法的六個(gè)步驟:
1. 觀察:我們假設(shè)系統(tǒng)管理員購(gòu)買了一臺(tái)服務(wù)器,現(xiàn)在看看它的最佳性能。第一步是確定服務(wù)器預(yù)期任務(wù)。其將作為一個(gè)虛擬平臺(tái)還是運(yùn)行一個(gè)專門的應(yīng)用程序?確定這些問(wèn)題之后,就可以開始基準(zhǔn)測(cè)試了。切記,測(cè)量標(biāo)準(zhǔn)和基準(zhǔn)測(cè)試將根據(jù)測(cè)試內(nèi)容和使用的設(shè)備而有所變化。例如,如果作為數(shù)據(jù)庫(kù)系統(tǒng)可能會(huì)強(qiáng)調(diào)處理器測(cè)試,而用于網(wǎng)絡(luò)服務(wù)系統(tǒng)的話可能會(huì)突出網(wǎng)絡(luò)性能。
2. 假設(shè):在這個(gè)步驟,工程師設(shè)定一個(gè)基準(zhǔn)目標(biāo)。假設(shè)什么或者測(cè)試需要完成什么?簡(jiǎn)單地進(jìn)行一個(gè)度量測(cè)試將得出一些試驗(yàn)結(jié)果,但是沒有方向或明確的目標(biāo)的話,這些結(jié)果可能是無(wú)用的。為測(cè)試創(chuàng)建一個(gè)基本的目標(biāo),并且所有的測(cè)試方法都圍繞這個(gè)目標(biāo)。例如,工程師可能會(huì)設(shè)法測(cè)試其占用的內(nèi)存以讓應(yīng)用程序處于最佳運(yùn)行狀態(tài)。他或她可能因此推測(cè),給定"X"內(nèi)存大小可以達(dá)到最佳工作負(fù)載。這可以立足于以前的研究,供應(yīng)商提供的基準(zhǔn)或其他的來(lái)源。確保你的假設(shè)是可測(cè)試的。也就是說(shuō),不要提出一個(gè)只是基于數(shù)據(jù)的而基準(zhǔn)測(cè)試卻無(wú)法證實(shí)的假設(shè)。
3. 預(yù)測(cè):接下來(lái),對(duì)服務(wù)器基準(zhǔn)測(cè)試做一個(gè)大體預(yù)測(cè)。假設(shè)該設(shè)備將被作為一個(gè)專門的應(yīng)用服務(wù)器。系統(tǒng)管理員能夠預(yù)測(cè),為工作負(fù)載增加額外的核心,設(shè)備性能將提升,同樣,應(yīng)用程序的性能也將會(huì)改善。在某些情況下,工程師甚至可以預(yù)測(cè)改善的比例,并希望通過(guò)基準(zhǔn)測(cè)試進(jìn)行驗(yàn)證。
4. 環(huán)境控制:變量設(shè)置。例如,可能要給服務(wù)器分配一些核心。此時(shí),管理員每次應(yīng)只更改一個(gè)設(shè)置,直到他或她能夠接受在此基礎(chǔ)上的性能變化。工程師可能需要給服務(wù)器設(shè)置為6GB的內(nèi)存,并測(cè)試其與其他設(shè)備相互配合的情況(CPU、影像、硬盤以及相關(guān)聯(lián)的設(shè)備)。設(shè)置不同的變量,包括修改處理器設(shè)置,但其他設(shè)置都處于最初狀態(tài)。
5. 測(cè)試:變量都設(shè)置好之后,現(xiàn)在開始進(jìn)行測(cè)試。從基準(zhǔn)線開始進(jìn)行測(cè)試(已知的起點(diǎn)),并有系統(tǒng)地調(diào)整服務(wù)器設(shè)置。每個(gè)測(cè)試序列都會(huì)有一個(gè)結(jié)果,記錄結(jié)果以便以后引用。在這種情況下,一個(gè)測(cè)試序列可看做是一次硬件設(shè)置更改。每應(yīng)用一次新的設(shè)置,都必須重新進(jìn)行測(cè)試并記錄結(jié)果。一旦有足夠的運(yùn)行周期,工程師應(yīng)該有一份完整的數(shù)據(jù)以完成他們的推論。
6. 推論和結(jié)論:進(jìn)行測(cè)試并確認(rèn)應(yīng)用程序的實(shí)際性能以及給定預(yù)計(jì)資源或設(shè)置后的性能。例如,在只有一半數(shù)量的預(yù)期核心后,確定應(yīng)用程序的最佳運(yùn)行效果。從這點(diǎn)起,確定核心與其他當(dāng)前變量(所需的內(nèi)存大小、當(dāng)前運(yùn)行的應(yīng)用程序數(shù)量、軟件升級(jí)/服務(wù)包等)結(jié)合給服務(wù)器提供的最佳性能。注意,任何變量的改變都需要進(jìn)一步實(shí)驗(yàn)。