VMware 虛擬機器效能問題完整解析
硬體和軟體問題有時會導致虛擬機器(VM)效能不佳,這可能會降低虛擬環境的便利性與靈活性。閱讀這篇部落格文章,了解當虛擬機器運行緩慢時,如何提升 VMware 虛擬機器的效能。探索導致虛擬機器效能下降的最常見問題,並了解可能的解決方案。
改善虛擬機器效能的原因
讓我們來看看執行診斷並改善虛擬機器效能的主要原因:
- 虛擬機器的效能比在另一部主機上執行的相同虛擬機器慢。
- 應用程式的執行速度比預期慢。不過,將虛擬機器遷移至另一部主機後,應用程式的效能便恢復正常。
- 應用程式需要很長時間才能啟動。
- 正在執行的應用程式沒有回應。
- CPU、記憶體或磁碟使用率達到 100%。
CPU 和記憶體
硬體資源不足是造成虛擬機器效能緩慢的最常見原因之一。如果未提供足夠的 CPU 資源給虛擬機器,虛擬機器內的軟體可能會執行緩慢且延遲。若要修正此問題,請設定虛擬機器使用更多 CPU 核心,或新增更多虛擬處理器。此外,如果主機的處理器較舊,而且核心數量少、快取較小且頻率較低,請考慮升級主機的硬體。
設定虛擬機器的 RAM 容量時,請確認提供的 RAM 足以供虛擬機器使用。同時,主機也必須有足夠的 RAM。如果未提供足夠的記憶體給虛擬機器,客體作業系統 (OS) 會頻繁使用暫存檔,導致整體虛擬機器效能緩慢。如果為虛擬機器提供大量記憶體,卻沒有為主機作業系統保留足夠的記憶體,主機作業系統就會使用暫存檔,導致作業系統和應用程式的效能降低。此外,在這種情況下,虛擬機器效能也會降低。請勿為虛擬機器指派過多記憶體,同時也要為主機保留一些記憶體。請務必提供足夠的記憶體給主機。
請閱讀作業系統和應用程式的系統需求。讓我們來看一個例子。您的主機有 8 GB 記憶體,並執行 ESXi 7.0 或搭載 VMware 工作站 的 Windows 10。一部 Windows Server 2019 虛擬機器正在這部主機上執行。如果您為 Windows Server 2019 虛擬機器配置 4 GB RAM,主機作業系統便會剩下 4 GB RAM。這足以讓主機作業系統和客體作業系統正常運作 (不執行其他會耗用資源的應用程式)。比例為 1:2 (4 GB/8 GB),而 1/2-1=-0.5 是目前的 MEM overcommit avg 值。如果您為執行 Windows Server 2019 的虛擬機器提供 2 GB RAM,虛擬機器的效能就會變慢。
若您為 Windows Server 2019 虛擬機器 (VM) 配置 6 GB 記憶體,主機的記憶體容量將不足,導致實體機器與虛擬機器皆運行緩慢。
若您在虛擬機器上執行資料庫等資源密集型應用程式,請調整虛擬機器設定,並據此增加 CPU 與記憶體資源。
記憶體超額分配 實體機器 是指資源總分配量超過實際容量的狀況。 若您擁有一台配備 8 GB RAM 的主機,並在該主機上運行五台各配置 2 GB RAM 的虛擬機器,由於記憶體已超額配置(若所有虛擬機器皆處於高記憶體使用率狀態),所有虛擬機器及主機的效能都可能下降。若部分虛擬機器正在運行但負載較輕,由於 ESXi 會優化記憶體利用率,因此記憶體主要會被高負載的虛擬機器佔用。在測試環境中,記憶體超額配置是合理的。
此外,請檢查記憶體氣球特點及其設定,以從虛擬機器回收未使用記憶體,從而有效利用實體記憶體。有時,當虛擬機器需要使用磁碟作為交換空間時,此特點可能會影響虛擬機器的效能。
命令列 CPU 超額配置 esxtop。VMware 提供了合理資源使用的技術,讓您能為虛擬機器配置的虛擬處理器數量超過主機上的實體 CPU 核心數。 CPU 超額配置參數是指分配給虛擬機的虛擬處理器數量與主機上實體 CPU 核心數量的比例。若該值為 3:1,則無需擔心;若為 5:1,虛擬機效能將下降;若 CPU 超額配置值達到 6:1 或更高,虛擬機運作將顯著變慢,並可能引發諸多問題。
如何解決 CPU 與記憶體問題?
請考慮升級硬體並為 (您用來執行虛擬機的主機)增加更多記憶體。請確保記憶體容量充足,以防止主機和來賓作業系統使用暫存檔。避免記憶體超額配置。
有時 CPU 電源管理特點可能會導致虛擬機效能低下。請嘗試停用這些特點。
1.0 – 表示 CPU 已完全利用
0.5 – 表示 CPU 利用率為一半 (50%)
2.0 – 表示 CPU 負載超標兩倍,必須採取措施
按下以下鍵盤組合可切換檢視模式: c – CPU 指標(預設顯示), m – 記憶體, n – 網路, d – 磁碟。按空白鍵即可更新顯示的值(這些值每 5 秒會自動更新)。按 h 可取得說明,按 q 可結束。
請檢查 MEM overcommit avg 參數,以檢查 ESXi 上的記憶體使用情況。 MEM overcommit avg 值如下:要求的記憶體與可用記憶體的比率減去 1。此參數的建議值為 0 或更低。
如果您使用安裝在 Linux 或 Windows 上的 VMware Workstation 執行虛擬機器,請使用作業系統上提供的標準系統監控工具。
請檢查客體作業系統上的 CPU/記憶體使用情況。某些應用程式可能無法正常運作,並耗用所有 CPU(CPU 核心)資源。請檢查正在執行的處理程序,找出佔用 CPU 的處理程序。請檢查主機上實體處理器的溫度,因為溫度過高(超過 80 °C)會造成效能問題,並對處理器構成風險(處理器可能會損壞)。
升級硬體──在主機上安裝更強大的 CPU 或更多處理器。請檢查虛擬機器組態。如果虛擬機器的虛擬處理器數量超過所需數量,請減少虛擬機器的虛擬處理器數量,為主機釋出資源。
在 VMware vSphere 中,您可以使用 DRS 叢集(分散式資源排程器),將虛擬機器從超載的 ESXi 主機遷移至具有可用硬體資源的 ESXi 主機。
磁碟問題
儲存系統的效能低落,會導致將虛擬磁碟儲存在該儲存系統上的虛擬機器效能低落。儲存延遲對虛擬機器效能至關重要。請嘗試使用 SSD(固態硬碟)儲存虛擬機器。如果無法使用 SSD,請使用轉速為 7200 RPM 或 10000 RPM 的 HDD(硬碟機)。轉速為 5400 RPM 的硬碟機效能極低。建議使用採用 SAS 介面的磁碟。
如果您使用 VMware Workstation,可依照上述建議,將虛擬機器儲存在外接 SATA(eSata)或 USB 3.0 磁碟上。請勿在虛擬機器關閉電源之前中斷外接磁碟的連線。
在生產環境中,請使用不可擴充或預先配置的厚置備磁碟。完整歸零的 厚實的配置 磁碟在首次寫入作業時速度較快。
如果您使用 HDD 儲存虛擬機器,請對此實體磁碟機或磁碟陣列進行重組,並在虛擬機器設定中對虛擬磁碟進行重組。使用分割區以減少磁碟碎片。 在其中一個分割區安裝作業系統,並將應用程式使用的檔案(例如資料庫)儲存於另一個分割區。
檢查 HBA(主機匯流排適配器)的韌體是否為最新版本。 在伺服器上更新 HBA 的韌體。
檢查磁碟健康狀態。執行磁碟與檔案系統的診斷。若磁碟已損壞,請立即更換。
檢查介面(SAS、SATA)連接線。
磁碟加密會因開銷而降低效能。若加密對虛擬機器並非關鍵需求,請將虛擬機器檔案移至未加密的儲存空間,或關閉磁碟加密功能。
使用獨立(硬體)RAID 控制器,以獲得更高的效能與可靠性。
請確保虛擬機器內的磁碟有足夠的可用空間。磁碟空間不足會導致效能下降,因為作業系統和應用程式無法寫入暫存檔。
您可以將虛擬機器遷移至未過載的另一顆磁碟或磁碟陣列。在 VMware vSphere 中,請考慮使用 DRS 和 Storage DRS。減少在同一 LUN 或資料存放區上運行的虛擬機器數量。
快照
虛擬磁碟快照 會降低虛擬磁碟的效能。 每個快照都會產生一個虛擬磁碟的增量 VMDK 檔案。此機制採用”寫入時複製”(Copy-on-Write)機制。每個增量 VMDK 檔案包含與父 VMDK 檔案相比的資料差異(變更日誌),而虛擬機器在與虛擬機器磁碟互動時,會讀取所有這些資料。結果,資料會從同一物理磁碟上的多個虛擬磁碟檔案中讀取,這會降低虛擬機器的效能。 基於同樣的原因,請勿在 VMware Workstation 中為虛擬機器使用分割 VMDK 檔案(此選項是為不支援大於 4 GB 檔案的舊式檔案系統所設計)。隨著快照數量增加,磁碟負載也會隨之增加。 快照 通常僅用於臨時目的(例如,在備份作業期間複製資料,或在虛擬機器內安裝或測試應用程式)。 請儘快刪除或提交快照。
在 VMware Workstation 中,您應先關閉虛擬機器、關閉 VMware Workstation,然後執行以下命令,並在其中指定現有主 VMDK 檔案的路徑以及新虛擬磁碟檔案的路徑:
"C:Program Files (x86)usernameVMware Workstationvmware-vdiskmanager.exe" -r
"D:VMsVM-foldervm-name.vmdk" -t 0 "D:VMsVM-folderNewDisk.vmdk"
接著重新設定虛擬機器以使用新的虛擬磁碟,或建立新的虛擬機器,並設定其使用新的整合式虛擬磁碟。
在 ESXi 上,請執行以下指令以移除快照:
vmware-cmd path_to_vmx_file removesnapshots
或
vim-cmd vmsvc/snapshot.removeall VMID
您可透過此指令查看 VMID:
vim-cmd vmsvc/getallvms
若已使用分割的 VMDK 檔案,請將其合併。 請在安裝了 VMware Workstation 的 Windows 電腦上執行以下指令:
"C:Program Files (x86)VMwareVMware Workstationvmware-vdiskmanager.exe" -r splitdisk.vmdk -t 0 mergeddisk.vmdk
將對效能敏感的資料儲存於速度較快的磁碟上。
VMware Tools
請確保客體作業系統已安裝 VMware Tools。 VMware 工具 是一組用於提升虛擬機器效能與使用者體驗的驅動程式和工具集。安裝 VMware Tools 後,圖形效能將得到提升。滑鼠動作會同步,且運作時不會出現延遲。透過 VMware Tools,您可以以全螢幕模式運行虛擬機器,並獲得更高的效能。 檢查 VMware Tools 是否已安裝。
在 Windows 中,請點擊系統托盤中時鐘附近的 VMware Tools 圖示,或前往 C:Program FilesVMwareVMware Tools (此為預設目錄)並執行以下指令:
VMwareToolboxCmd.exe -v
在 Linux 中,請在終端機中執行以下指令:
vmware-toolbox-cmd -v
透過在 ESXi 命令列中讀取虛擬機器日誌,檢查虛擬機器客體系統上的 VMware Tools 版本:
grep toolbox /vmfs/volumes/datastore/vm_name/vmware.log
或
grep build- /vmfs/volumes/datastore/vm_name/vmware.log
在 VMware vSphere Client 中,檢查虛擬機器上運行的客體作業系統是否已安裝 VMware Tools。 有關 VMware Tools 的資訊(狀態與版本)會顯示在虛擬機的” Summary “分頁中。
網路問題
若您的 ESXi 主機連接到 SAN(儲存區域網路)或 NAS (網路附加儲存裝置)等儲存裝置,請確保網路速度足夠且網路未過載。
為確保高效能,您應在 vSphere 中使用獨立的 ESXi 管理網路 網路、 vMotion 網路以及儲存網路。
針對使用 虛擬交換器的 ESXi 主機,請設定 NIC 綑紮(鏈路聚合)。
若現有網路頻寬不足以滿足需求,請考慮進行網路升級。 例如,可將現有的 1 Gbit 設備替換為 5 Gbit 或 10 Gbit 的網路介面卡、交換器及路由器。
防毒軟體
請確保主機上的防毒軟體不會掃描虛擬磁碟檔案,因為掃描這些檔案會降低虛擬機器 (VM) 的效能。您可以將虛擬機器目錄中的 VMDK 檔案排除在防毒掃描範圍之外。
檢查主機作業系統及來賓作業系統上運作的作業系統健康狀態。確保沒有病毒或其他惡意軟體,或 勒索軟體。
建議在 ESXi 主機上使用與 VMware vShield 協同運作的專用防毒解決方案,而非在每台虛擬機的來賓作業系統上安裝防毒軟體。此方法可提升效能,對於大型虛擬環境而言更為合理。若使用 vShield,請正確配置此軟體,因為錯誤的配置可能會降低虛擬機的效能。
Hyper-V 相關問題
如果您使用 VMware Workstation 15.5 或更新版本,且該版本支援在 Windows 主機上安裝 Hyper-V 特點 時執行 VMware 虛擬機器,VMware 虛擬機器的效能可能會較慢。安裝 Hyper-V 角色時,Hyper-V 會直接使用 CPU 虛擬化特點,例如 Intel VT-x 或 AMD-V;當這些特點由 Hyper-V 使用時,VMware Workstation 的虛擬機器監視器(VMM)就無法使用,而 VMM 必須在特權模式下執行。為了確保相容性,VMware Workstation 的 VMM 會以使用者模式或 ULM 模式(而非特權模式)執行,因為 Hyper-V 使用 CPU 硬體虛擬化特點時,VMM 無法存取這些特點。在此情況下,VMM 會使用 Microsoft 的 WHP API,這些 API 會在 VMM 與 CPU 之間增加一層,並降低 VMware 虛擬機器的效能。
請從 Windows 主機電腦解除安裝 Hyper-V 及相關功能,例如虛擬化型安全性。之後,VMware Workstation 的 VMM 會以特權模式執行,並直接使用 CPU 虛擬化特點,以提供高效能。此解決方案有助於修正 VMware 虛擬機器效能緩慢的問題。
虛擬機器效能監控
虛擬機器效能監控是偵測負載過高及相關效能問題的常用方法。虛擬機器效能監控有助於您排除問題原因。請記得在主機層級監控虛擬機器效能,而不是在客體作業系統內監控。客體作業系統不瞭解動態資源分配等虛擬化特點,因此可能會顯示不正確的資料。VMware 在主機層級提供計數器。這些計數器會提供正確資訊,並用於虛擬機器效能監控。為了讓您瞭解如何在虛擬機器內收集效能資訊,VMware 開發了虛擬機器專用的計數器程式庫,讓您在 Windows 客體作業系統中使用 Perfmon 公用程式檢視正確的虛擬機器效能資訊。若要監控虛擬機器效能,必須在客體作業系統上安裝 VMware Tools。
若要在 VMware vSphere Client 中檢查已使用的硬體資源,請選取一部虛擬機器,開啟”監控”索引標籤,然後選取 Performance > Overview or Performance > Advanced 以檢視圖表和其他資訊。在 Overview 頁面上,您可以即時檢視 CPU、記憶體、網路和儲存體的使用率(可用空間、已使用空間及輸入/輸出效能),也可以檢視前一天、前一週、前一個月、前一年或自訂期間的使用率。請在此頁面上的兩個下拉式功能表中選取這些選項( 期間 和 檢視 )。 
在”Utilization“索引標籤中按一下 Monitor,即可查看虛擬機器 CPU、虛擬機器記憶體及客體記憶體使用情況的其他資訊。
同樣地,您可以在 vSphere Client 中選取 ESXi 主機或 叢集,並即時監控已使用和可用的資源,也可以監控所選期間內的資源使用情況。
結論
本文說明了討論虛擬機器效能問題時需要注意的要點,以及有助於提升虛擬機器效能的建議。您應確保硬體能提供足夠的效能、避免記憶體超額配置,並正確設定軟體。使用虛擬機器效能監控來找出虛擬機器效能緩慢的原因。
磁碟損壞是造成虛擬機器效能緩慢的最嚴重問題,因為除了虛擬機器效能不佳之外,您也可能會遺失資料。若要避免資料遺失,請定期執行 VMware 資料備份。使用 NAKIVO Backup & Replication 進行 VMware 備份 – 這是一項通用的資料保護解決方案,支援 VMware vSphere 7.0,並提供許多實用功能,以提升備份速度和可靠性。

