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