Virtualization

如何在 ESXi 中使用多核來賓投影/測量物理主機等待

  • October 8, 2017

我聽說如果您在 ESXi 下有一個具有 N 個虛擬核心的來賓,管理程序會等待主機上的總共 N 個邏輯處理器同時可用,然後再將來賓的工作委派給硬體。因此,建議您應該非常謹慎地考慮將客戶機增加 X 個核心,除非您確實需要處理週期,因為您將導致等待與 X 成比例增加,並且您希望確保添加 vcpus 的收益超過這種增加延遲的成本。

在極端範例中,假設 ESXi 主機 hA 和 hB 具有相同的硬體和配置,並且每個都有一個來賓(分別為 gA 和 gB),並且除了 gA 有 1 個虛擬 cpu 而 gB 有 2 個之外,這些來賓都是相同的。如果您在兩台主機上放置相同的(不可並行化的)工作負載,gA“應該”“更快”地完成任務。

  1. 這個過程等待延遲是真的嗎?可以通過 VMWare 文件確認嗎?
  2. 如果它是真實的(並且從提供的文件中不明顯),是否有方程式可以提前測量來賓 vcpu 增加的預計影響?用於衡量延遲已經產生什麼樣的現實世界影響的工具?

—-如果它完全相關,引發這個問題的現實世界問題是我們有一個 MS SQL Server 2014,它有 4 個核心,白天平均執行 60% 的容量,並且經常達到 100%,我們正在進行內部辯論至於將客戶機增加到 6 核還是 8 核以緩解我們遇到的一些性能問題是否明智。主機有(我不知道型號,只知道規格)雙插槽 Intel hexcore,頻率為 2.6GHz,帶超執行緒 - 所以每台主機有 24 個邏輯核心。

超執行緒在核心數量上撒謊以獲得幾個百分點的提升。你沒有 24 個核心,你有 12 個。不過,如果將這 12 個核心完全用於具有超執行緒的客戶機,我會感覺好一些。

當來賓超過節點的大小時,您將在訪問遠端 CPU 或 RAM 時產生 NUMA 效果。對於那些六核插槽,肯定是 vCPU 8。這些也適用於沒有管理程序的物理伺服器上的作業系統。考慮到 ESXi 和 MS SQL 的擴展性要大得多,可能是可以管理的。只知道收益遞減。

自 ESX 2 以來,沒有使用嚴格的協同調度,即如果存在調度偏差,則停止 VM 的所有 vCPU 。寬鬆的協同調度更多是每個 vCPU 的決定。您可以通過esxtop 中的 %CSTP來衡量 CPU 是否比其他 CPU 取得更多進展。

無論使用哪種調度程序,為了最大吞吐量和最小延遲,都不要超額訂閱 vCPU。這些雙六核讓客人總共擁有 12 個 vCPU。當您有效地擁有一些專用於來賓的 CPU 時,無需等待空閒 CPU。

引用自:https://serverfault.com/questions/877159