分享:簡析服務器基準測試方法與誤區(qū) |
發(fā)布時間: 2012/5/25 19:26:41 |
中國IDC評述網(wǎng)08月12日報道:給某個應用程序分配太多的內(nèi)存實際上會影響服務器正在運行的進程的性能。事實上,錯誤的內(nèi)存利用率可能會導致系統(tǒng)性能的下降。 在使用PerfMon進行服務器基準測試之前,我們將介紹幾個技巧來檢測服務器的內(nèi)存使用情況,以確保內(nèi)存分配不會影響服務器性能。 Memory:AvailableBytes-這個功能檢測操作系統(tǒng)(OS)的物理內(nèi)存總量,并計算服務器上運行所有必須進程和應用程序所需的內(nèi)存。 Memory:CommittedBytes-追蹤運行時的峰值并進行對比。使用這個功能可監(jiān)測運行波峰和波谷的情況以了解服務器的性能。除了運行進程和程序所需的內(nèi)存外,你至少得保證4MB或5%以上的可用內(nèi)存。 Memory:PageFaults/sec--這個功能測量當應用程序試圖從本地虛擬內(nèi)存中讀取時發(fā)生“不存在”的頁面錯誤。在理論情況下,零是最優(yōu)的測量數(shù)據(jù)。任何測量數(shù)據(jù)都不可能達到零延遲響應時間。注意,Memory:PageFaults/sec這個功能不但記錄硬頁面錯誤,還會記錄軟頁面錯誤。當文件從硬盤讀取而非虛擬內(nèi)存中讀取時就會發(fā)生硬頁面錯誤。另一方面,物理內(nèi)存已存在的頁面錯誤終止了進程就會發(fā)生軟頁面錯誤,但其幾乎不會對性能產(chǎn)生影響。 注意處理器數(shù)量,尤其是試圖取得每個處理器的最大線程時。注意“環(huán)境切換”發(fā)生的次數(shù)。 當操作系統(tǒng)(OS)的內(nèi)核或核心把處理程序從一個線程切換到另一個線程時,就會發(fā)生“環(huán)境切換”。環(huán)境切換應當及時避免,因為每次環(huán)境切換都是處理器L1和L2緩存被刷新并重新寫入。緩存刷新和再次寫入需要寶貴的時間,并降低系統(tǒng)的性能。 Process:ThreadCount:Inetinfo--統(tǒng)計Inetinfo運行創(chuàng)建的線程數(shù),并顯示最新值。 Thread:%ProcessorTime:Inetinfo=>Thread#--測量Inetinfo進程中每個線程使用的處理器時間。 Thread:ContextSwitches:sec:Inetinfo=>Thread#--測量每個處理器或線程池的最大線程數(shù)。監(jiān)測這個參數(shù)很重要,其可預防產(chǎn)生大量的環(huán)境切換。否則,環(huán)境切換會占用內(nèi)存并失去多線程的優(yōu)勢,而此時的性能將降低而非提高。 測量并分析 遺憾的是,關(guān)于服務器和處理器測量方面的內(nèi)容實在太寬泛了,以致在本文中無法一一分析。但是,在大多數(shù)情況下,系統(tǒng)性能和指標測試可分為一下幾個類型: 內(nèi)存管理 網(wǎng)絡能力 處理器能力 磁盤優(yōu)化 通過以上的分類,測試工程師能夠得到一些可靠的基準測試結(jié)果,并利用其以更好地提高整體服務器環(huán)境。 當服務器環(huán)境下的所有測試都執(zhí)行完以后,用記錄的數(shù)據(jù)進行基準和參數(shù)評估。 謹慎對待廠商提供的基準測試結(jié)果。供應商往往會為了突出自己的產(chǎn)品而調(diào)整行業(yè)標準的基準測試結(jié)果。這就意味著,其產(chǎn)品基準測試結(jié)果可能不太適合您獨特的環(huán)境。例如,假設(shè)IT經(jīng)理要購買應用程序以處理存儲在服務器上的用戶數(shù)據(jù)庫。該應用程序的測試數(shù)據(jù)顯示其能在Server2008box上運行良好,并有快速的響應時間。盡管這看起來不錯,但其未必適合您的運行環(huán)境。舉例來說,供應商的應用程序是在一個單一的、增強服務器上運行測試的,而你的卻是在一個共享資源的虛擬機上運行。 注意,供應商的目的是為了向你推銷軟件,因此其參數(shù)就會有一些水分。這樣做的結(jié)果就是紙上的參數(shù)很高,但可能在真實環(huán)境下就會大打折扣。可能大的硬件和軟件廠商不會這樣做,但較小的經(jīng)銷商普遍都會稍微更改相關(guān)的參數(shù)。例如,硬件設(shè)備在廣域網(wǎng)上的VPN鏈接能力可能有較好的交付時間,因為在基準測試時優(yōu)化了該硬件。但是,安裝到現(xiàn)場之后顯示,其速度大多會降低20%—30%。 因此,被推薦的設(shè)備或應用程序必須要進行嚴格的測試、評估。不要只看重一個基準。在進行服務器基準測試時,盡可能多地測試各個元件。不要只是看重一個因素,如CPU速度等。觀察服務器各個因素的運行情況以讓工程師更加了解服務器在各種環(huán)境下的整體運行效果,這樣有助于追蹤并糾正將來業(yè)績方面的問題。 注意基準服務供應商。如果你計劃將基準測試和指標測試進行外包的話,一定要實現(xiàn)進行調(diào)查、評估。很多時候,著名的咨詢公司都不遵守甚至無視最基本的科學方法。例如,小型服務器和應用程序取樣規(guī)格、缺乏變量控制、有限的測試結(jié)果重復性、測試軟件少以及硬件數(shù)值偏差等。當然遠遠還不止這些。尋找數(shù)值極限,例如,SQL服務器上運行的方式應當優(yōu)于其使用的硬件。 含混不清的硬件規(guī)格也是一個危險信號。如果供應商只是列出了硬件——如雙核處理器、4GBRAM、512MB顯卡等——但卻沒有提供關(guān)于硬件的詳細介紹,那么你也應當注意。考慮計算出基準測試中每個變量的微小細節(jié)。在這種情況下,處理器的類型是什么?安裝的是什么類型的RAM以及顯卡型號是什么?所有這些細節(jié)都會產(chǎn)生不同的結(jié)果。 需要注意的一點是,每一個環(huán)境都是獨特的,并有其自己的特定需求。使用類似PerfMon工具進行基準測試是一個有無數(shù)變量的持續(xù)過程,而這些變量毫無疑問都將影響到您的測試結(jié)果數(shù)據(jù)。通過規(guī)劃測試并遵循可靠的科學方法,測試工程師可以更精確地評估硬件和軟件的運行情況。如果測試得當,良好的基準分析可以為提高服務器架構(gòu)性能提供參考信息。 本文出自:億恩科技【mszdt.com】 |