如何正確配置 ESX VM 以有效地使用超執行緒?
我有一個具體的問題,我無法在 VMware 的官方文件或這個平台上的其他一些非常有用的執行緒中找到答案,所以這裡是:
我有一台使用 ESX 6.0 和 2 個插槽的主機,每個都有 6 個帶 HT 的核心。所以總的來說,我在該硬體上有 12 個核心和 24 個執行緒。
它正在執行 10 個虛擬機。我已經分配了 34 個核心(我知道這很糟糕,但現在無法更改)。但是,我在使用 1 個分配了 8 個核心 (2 x 4) 的 VM 時遇到了嚴重問題。
我知道超執行緒是如何工作的,並且在理想的工作負載中,HT-Core 的性能大約是“真實”核心的 50%。
所以這是我的問題:我是否會受益於使用 CPU 親和性來確保該伺服器具有 8 個“真實”(=更快)核心,而不是讓 VMware 處理核心?
你的問題不是HT。50% HT 提升是一個沒有任何依據的數字。通常,根據程式碼和工作負載,它可以對一些多執行緒應用程序提高 5-20%。關鍵是你在分配核心時不應該指望這一點。
在 VMWare 的情況下,CPU 被認為是真正的核心,而邏輯處理器被認為是 HT 部分。
例子:
Intel(R) Xeon(R) CPU E5-2620 v4 有 8 個核心和 16 個執行緒。使用雙插槽配置的戴爾伺服器將具有 2 個這樣的處理器,即 16 個核心和 32 個邏輯處理器(又名執行緒)。因此 ESXi 主機將顯示:16 CPU x Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
這正是您的情況所發生的情況:您有 2 個 CPU,每個 CPU 有 6 個核心,這意味著 ESXi 將使用 12 個核心(和 24 個邏輯處理器)。
在您的情況下的問題:34 個核心明顯超過 12 個,甚至超過 24 個。只要您沒有多個客人最大限度地使用他們分配的 CPU,這很好。
分配 2 個核心和 4 個插槽並不好,因為您有 2 個插槽。ESXi 可以處理轉換,但您最好分配 4 個 CPU 核心和 2 個插槽。如果您確實需要該 8 核客戶機的處理能力,那麼您應該在分配 CPU 時使用預留選項。這將確保其他客人不會從您的 CPU 密集型客人那裡竊取 CPU 功率。