如何確定 ESX 映像的實際虛擬 CPU 配置?
我們在 ESX 客戶端上存在嚴重的性能問題,但我無法直接查看伺服器配置,但我想了解他們是否正確設置。
執行 CPU-Z 會顯示兩個處理器,每個處理器都有一個核心,而我有 Yorkfield 處理器,因此預計會出現四個核心。這是虛擬 CPU 在 CPU-Z 中顯示的方式嗎?
如何從客戶端確定 ESX 是如何配置的?我了解 ESX 可以啟用 HT。我的系統大量使用 SMP,所以它應該會受益。據我所知,ESX 配置了兩個 vCPU。我對數據的讀取是否正確?
編輯:阻塞 CPU 基本上有兩個原因。首先,應用程序並不完美,我們正在努力。其次,我們沒有足夠的 CPU 能力。該圖像來自類似的本機機器,現在位於虛擬機上。性能應該相似,但不是。通常我們可以處理每個本機系統 500 多個會話。在這個系統上,窒息開始大約 280 個會話。我知道責怪 CPU 配置有點短視,但是經過兩天的密集監控和分析,一切都真正開始指向那個方向(記憶體、磁碟 IO、數據庫連接和網路都表現良好)。
如果您在具有兩個 vCPU 的 VM 上獲得 280 個會話,並且在使用所有 4 個核心的同一物理機器上獲得 500+ 個會話,那麼您將接近使用該 VM 配置的裸機性能。重新配置 VM 以使用 4 個 vCPU,如果 ESX 主機上沒有其他任何東西消耗大量資源,性能應該會接近。但是,對於在 4 核單 CPU 主機上執行的 4-vCPU VM 而言,Hypervisor 成本將佔用總容量的一小部分,這可能非常重要。ESX 管理程序僅在可以同時調度所有 4 個 vCPU 時才會調度您的 VM,因此任何其他執行(管理程序、服務控制台、其他 VM)將導致所有 4 個 vCPU 在這樣的設置上停止。如果您可以在兩個雙 vCPU 虛擬機上執行應用程序,則在此設置中
每個 VMware vCPU 都相當於多核系統上的一個核,這就是 VMware 瓜分處理器資源的方式。Yorkfield 是 Core2 Quad,絕對不支持 HT——它有 4 個物理核心,沒有 HT 核心。
在 VM 中執行的 CPU-Z 只會報告呈現給 VM 的 vCPU 的數量,儘管它會正確辨識底層 CPU。根據 ESX 版本和 VM 的配置方式,它可以將這些顯示為雙核單處理器或兩個單獨的處理器,但這對性能沒有影響,它只是一種用於促進某些許可情況的顯示選擇。
編輯以提供更準確和最新的數據:
上面提出的嚴格的共同安排點有點像紅鯡魚。自 ESX V3 以來,ESX 一直在使用一種寬鬆的協同調度機制,該機制允許一些餘地(vCPU 核心之間的時鐘漂移),並且在後續版本中得到了改進。
通常情況下,呈現與物理核心一樣多的 vCPU 的 VM 在負載下調度的問題仍然比具有較少 vCPU 的 VM 更困難,但它並不像我原來的答案中那樣引人注目。可以在此 VMware 白皮書中找到有關其實際工作原理的非常詳細的說明。