虛擬化環境下的效能測試

testingbang發表於2019-10-17

概要

伺服器的虛擬化技術已經非常成熟了,在虛擬化環境中,多個vm執行在一臺伺服器上,因此可以更加有效地共享資源,有利於消減成本。但是如果資源被共享過度則會發生競爭,可能導致效能下降。所以,平衡資源效率和效能就很重要了。

什麼是伺服器虛擬化

伺服器虛擬化是指一臺物理伺服器上執行多臺虛擬伺服器,也就是我們常說的虛機vm。透過在各個vm中分別執行os,即可在一臺物理伺服器上執行多個應用。

在虛擬化環境中,物理伺服器上的cpu與記憶體等資源都將由多個vm共享。各個os都會以為自己是一個獨立的物理伺服器上執行,所以vm是完全獨立執行的,不會影響其他vm。

虛擬化技術中的過載使用

虛擬化環境最大的優勢就是可以有效使用資源。在物理機可以承受的範圍內給vm分配cpu和記憶體。如果在物理伺服器上建立多個vm,使得分配的cpu和記憶體的總量超過物理伺服器本身的搭載量,就可以實現更高的資源使用率。這就叫做過載使用。

虛擬化環境下效能測試的相關知識

效能分析工具

和正常的效能測試中使用方法、注意事項並無差異,不在多說

CPU的效能管理

從物理伺服器角度來看

首先,需要確認物理伺服器的cpu使用率到底高不高。如果不搞,就需要確認個別vm的情況。


在cpu的效能問題中,針對物理伺服器需要確認的就是cpu的競爭,換句話說就是邏輯cpu是否被爭搶。常見的兩種狀態為等待被分配的cpu(指vm的虛擬cpu向邏輯cpu提出分配要求,但實際上由於其他vm正在使用當中,因此無法被分配,處於等待狀態)和等待多個cpu同步處理(指被分配了多個虛擬cpu的vm為了進行同步處理而請求了邏輯cpu的分配,但由於一部分邏輯cpu正在被其他vm使用,因此無法被分配而進入等待狀態)


如果存在等待時間較長的趨勢,就有可能是vm發生了效能問題。在物件物理伺服器上,如果單位時間的等待時間佔10%~20%左右,就可能是vm發生了問題。注意這個比例只是參考,因為不同應用程式的特性不同也會產生差異。


從vm的角度來看

在物理伺服器的cpu使用率不高的情況下,可以認為效能問題在於vm本身。vm本身有問題的情況可以考慮到2個原因:虛擬化的開銷和vm內部的問題。一般透過使用硬體輔助虛擬化功能可以減少開銷。


vm內部的問題是指由於cpu的資源不足,應用的設計問題或設定不完善導致無法充分發揮效能狀態。在這種情況下,和在物理環境中一樣,需要考慮增加資源或者對應用進行調優等。而如果只有特定的vm出現了問題,可能是因為vm的設定中對cpu進行了限制。解除限制即可。

記憶體的效能管理

和cpu的情況一樣,影響記憶體效能的因素可以說是虛擬化帶來的額外開銷與過載使用引起的資源競爭


從物理伺服器角度來看

一樣,也是先確認物理伺服器的記憶體使用率是否過高。如果不高的話就對個別的vm記憶體使用率進行確認。如果物理伺服器的記憶體使用率過高,則接著確認記憶體的過載使用情況,有可能就是它導致效能下降的。


從vm的角度來看

如果物理伺服器的記憶體使用率比較低,也沒出現過載使用的話,可以初步判定效能問題是vm自身導致的。同樣,如果是需要考慮2種原因:虛擬化的開銷(透過硬體輔助虛擬化功能可以額外減少這個開銷)和vm內部的問題(同cpu的,所以不在重複解釋)。


參考資料:《圖解效能最佳化》


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2660302/,如需轉載,請註明出處,否則將追究法律責任。

相關文章