虛擬機報告不同類型的使用指標,例如服務器負載、內存使用和Steal Time。客戶經常詢問Steal Time——它是什么,為什么會在他們的虛擬機上報告?繼續閱讀,我們將解釋Steal Time的工作原理,以更好地了解它對您的虛擬機意味著什么。
什么是Steal Time?
Steal Time是虛擬機進程在物理CPU上等待其CPU時間的時間百分比。您可以通過在 linux 服務器上運行“top”命令來監控進程和資源使用情況。在使用指標中,Steal Tim被標記為“st”。
了解和解釋虛擬機上的 CPU Steal Time
虛擬環境中的 CPU
在云環境中,管理程序充當物理服務器與其虛擬化環境之間的接口。管理程序內核通過將運行進程調度到服務器的物理內核來管理所有這些任務。為虛擬機、網絡操作和存儲 I/O 請求等進程提供一些CPU時間來處理作業。CPU時間在這些進程之間分配,這會改變優先級并在這些進程之間通過物理內核產生爭用。
%Idle Time
Steal Time也可以在虛擬機上與Idle Time一起顯示。Idle Time是指有管理程序分配的 CPU 時間,但虛擬機沒有使用該時間。在這種情況下,我們可以假設對性能根本沒有影響。
當Idle Time百分比為0 并且存在Steal Time時,我們可以假設虛擬機上的進程有延遲處理。
多租戶云
云平臺由單租戶和多租戶環境組成。CloudStack產品允許您開發和運行多租戶環境,使不同類型的用戶能夠以更低的成本運行他們的云基礎設施。除了不會在我們的優質CloudStack 平臺上過度銷售虛擬內核之外,我們也不會將虛擬機固定到CPU 內核。這允許管理程序將 CPU 時間從所有服務器的物理內核分配給其任何活動進程。
從理論上講,如果虛擬機100%的時間都可以立即訪問其分配的核心,則不會有可見的Steal Time。然而,虛擬機管理程序正在運行許多不同的任務,并不斷執行操作,例如重新調度任務以提高效率和處理從其他系統接收到的數據。所有這些進程都需要來自管理程序CPU 的 CPU 時間,從而導致延遲訪問物理內核并增加虛擬機的Steal Time。
分析服務性能
在現代托管環境中,少量Steal Time通常是不可避免的,尤其是在共享云托管上運行時。Steal Time虛擬機體驗并不總是從虛擬化操作系統外部可見。
如果您看到虛擬機記錄的Steal Time恒定,請嘗試查找與您正在執行的任務的相關性。更重要的是,這種Steal Time如何導致性能損失?您是否注意到應用程序的任何性能損失?如果是這樣,請嘗試測量輸出以根據Steal Time發現整個應用程序流中的延遲。如果您確實看到對您的應用程序的體驗影響,請通知您的托管服務提供商。在許多情況下,他們可以通過將您的虛擬機移動到不同的虛擬機管理程序來找到更合適的環境。