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