虛擬化環境下的性能測試

概要

服務器的虛擬化技術已經非常成熟了,在虛擬化環境中,多個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的,所以不在重複解釋)。


參考資料:《圖解性能優化》


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章