基準測試是指通過設計科學的測試方法、測試工具和測試系統,實現對一類測試對象的某項性能指標進行定量的和可對比的測試。
基本介紹
- 中文名:基準測試
- 外文名:Benchmark Test
- 別名:BMT
- 特點:設計科學的測試方法
測試介紹,測試步驟,觀察,假設,預測,環境控制,測試,推論和結論,測試的局限性,
測試介紹
基準測試是指通過設計科學的測試方法、測試工具和測試系統,實現對一類測試對象的某項性能指標進行定量的和可對比的測試。例如,對計算機CPU進行浮點運算、數據訪問的頻寬和延遲等指標的基準測試,可以使用戶清楚地了解每一款CPU的運算性能及作業吞吐能力是否滿足應用程式的要求;
再如對資料庫管理系統的ACID(Atomicity, Consistency, Isolation, Durability, 原子性、一致性、獨立性和持久性)、查詢時間和在線上事務處理能力等方面的性能指標進行基準測試,也有助於使用者挑選最符合自己需求的資料庫系統。
從以上兩個例子我們可以看出,可測量、可重複、可對比是基準測試的三大原則,其中可測量是指測試的輸入和輸出之間是可達的,也就是測試過程是可以實現的,並且測試的結果可以量化表現;可重複是指按照測試過程實現的結果是相同的或處於可接受的置信區間之內,而不受測試的時間、地點和執行者的影響;可對比是指一類測試對象的測試結果具有線性關係,測試結果的大小直接決定性能的高低。
對於可再現性,基準測試是最好的方法。
在開發階段前期,應該使用基準測試來確定應用程式中是否出現性能倒退。基準測試可以在一個相對短的時間內收集可重複的結果。進行基準測試的最好方法是,每次測試改變一個且只改變一個參數。例如,如果想知道增加JVM記憶體是否會影回響用程式的性能,就逐次遞增JVM記憶體(例如,從1024 MB增至1224 MB,然後是1524 MB,最後是2024 MB),在每個階段收集結果和環境數據,記錄信息,然後轉到下一階段。這樣在分析測試結果時就有跡可循。
基準測試的關鍵是要獲得一致的、可再現的結果。可再現的結果有兩個好處:減少重新運行測試的次數;對測試的產品和產生的數字更為確信。使用的性能測試工具可能會對測試結果產生很大影響。假定測試的兩個指標是伺服器的回響時間和吞吐量,它們會受到伺服器上的負載的影響。伺服器上的負載受兩個因素影響:同時與伺服器通信的連線(或虛擬用戶)的數目,以及每個虛擬用戶請求之間的考慮時間的長短。很明顯,與伺服器通信的用戶越多,負載就越大。同樣,請求之間的考慮時間越短,負載也越大。這兩個因素的不同組合會產生不同的伺服器負載等級。記住,隨著伺服器上負載的增加,吞吐量會不斷攀升,直到到達一個點。
當軟體系統中增加了1個新模組,此時需要做基準測試,以判斷新的模組對整個軟體系統的性能影響。
測試步驟
觀察
我們假設系統管理員購買了一台伺服器,現在看看它的最佳性能。第一步是確定伺服器預期任務。其將作為一個虛擬平台還是運行一個專門的應用程式?確定這些問題之後,就可以開始基準測試了。切記,測量標準和基準測試將根據測試內容和使用的設備而有所變化。例如,如果作為資料庫系統可能會強調處理器測試,而用於網路服務系統的話可能會突出網路性能。
假設
在這個步驟,工程師設定一個基準目標。假設什麼或者測試需要完成什麼?簡單地進行一個度量測試將得出一些試驗結果,但是沒有方向或明確的目標的話,這些結果可能是無用的。為測試創建一個基本的目標,並且所有的測試方法都圍繞這個目標。例如,工程師可能會設法測試其占用的記憶體以讓應用程式處於最佳運行狀態。他或她可能因此推測,給定“X”記憶體大小可以達到最佳工作負載。這可以立足於以前的研究,供應商提供的基準或其他的來源。確保你的假設是可測試的。也就是說,不要提出一個只是基於數據的而基準測試卻無法證實的假設。
預測
接下來,對伺服器基準測試做一個大體預測。假設該設備將被作為一個專門的套用伺服器。系統管理員能夠預測,為工作負載增加額外的核心,設備性能將提升,同樣,應用程式的性能也將會改善。在某些情況下,工程師甚至可以預測改善的比例,並希望通過基準測試進行驗證。
環境控制
變數設定。例如,可能要給伺服器分配一些核心。此時,管理員每次應只更改一個設定,直到他或她能夠接受在此基礎上的性能變化。工程師可能需要給伺服器設定為6GB的記憶體,並測試其與其他設備相互配合的情況(CPU、影像、硬碟以及相關聯的設備)。設定不同的變數,包括修改處理器設定,但其他設定都處於最初狀態。
測試
變數都設定好之後,現在開始進行測試。從基準線開始進行測試(已知的起點),並有系統地調整伺服器設定。每個測試序列都會有一個結果,記錄結果以便以後引用。在這種情況下,一個測試序列可看做是一次硬體設定更改。每套用一次新的設定,都必須重新進行測試並記錄結果。一旦有足夠的運行周期,工程師應該有一份完整的數據以完成他們的推論。
推論和結論
進行測試並確認應用程式的實際性能以及給定預計資源或設定後的性能。例如,在只有一半數量的預期核心後,確定應用程式的最佳運行效果。從這點起,確定核心與其他當前變數(所需的記憶體大小、當前運行的應用程式數量、軟體升級/服務包等)結合給伺服器提供的最佳性能。注意,任何變數的改變都需要進一步實驗。
測試的局限性
基準測試不能替代好的設計,不管是混合存儲還是全閃陣列,只要能正確補充存儲,終端用戶都會獲得足夠高的IOPS儘管後端磁碟性能可能不夠而造成快取不中等。因此,需要充分發揮每個存儲層級的性能以補償缺陷。
特別是遇到混合存儲的時候,需要考慮的一點即是性能上的短板效應。正因為如此,無需快速訪問的數據應該放在相對穩定一些的後端磁碟上。比如說在一些時候,後端如果使用了15000轉速的磁碟,即便前端快取大小適中也妨礙不大。
如果這樣的話全快閃記憶體陣列則更為容易去衡量及評估因為不再需要考慮多級存儲之間的關係。在這種情況下,需要了解SLC及MLC兩種快閃記憶體之間的區別。雖然MLC較SLC慢,需要知道的是即便如此,其比傳統硬碟還是會快很多。在許多場景下,MLC也許就足以滿足加速的需求。