VMware虚拟机性能问题的全面概述

硬件和软件问题有时会导致虚拟机性能不佳。这可能会降低虚拟环境的便利性和灵活性。阅读本博客文章,了解在面对缓慢的虚拟机时改善VMware VM性能的方法。发现导致VM性能下降的最常见问题,并了解可能的解决方案。

改善 VM性能原因

让我们看一下进行诊断并改善VM性能的主要原因:

  • 虚拟机性能低于另一台主机上相同VM的性能。
  • 应用程序运行速度比应有的慢。但是当您将VM迁移到另一台主机时,应用程序的性能是正常的。
  • 启动应用程序需要很长时间。
  • 运行的应用程序无响应。
  • CPU、内存或磁盘使用率为100%。

CPU和内存

硬件资源不足是导致VM性能慢的最常见原因之一。如果您未为VM提供足够的CPU资源,VM内部的软件可能会运行缓慢。要解决此问题,请将VM设置为使用更多CPU核心或添加更多虚拟处理器。另外,如果您的主机机器配备了旧处理器,核心数量少,缓存少,频率低,请考虑升级主机硬件。

当为虚拟机设置内存时,请确保该内存量足够满足虚拟机的需求。同时,主机也需要有足够的内存。如果未为虚拟机提供足够的内存,客户操作系统会频繁使用交换文件,导致整体虚拟机性能下降。如果为虚拟机分配了大量的内存,而未留足够的内存给主机操作系统,主机操作系统会使用交换文件,导致操作系统和应用程序性能下降,同时虚拟机性能也会受到影响。不要给虚拟机分配过多的内存,同时要为主机留出足够的内存。始终提供主机足够的内存。

如果您在虚拟机上运行重型应用程序,相应地调整虚拟机配置并增加更多的 CPU 和内存资源。内存超额配置是指总资源分配超过容量的情况。如果您有一台拥有 8GB RAM 的主机,并且运行了五个配置为每个使用 2GB RAM 的虚拟机,当所有虚拟机都在密集使用内存时,所有虚拟机和主机机器可能会显示出低性能,因为内存被超额配置了。如果有些虚拟机正在运行,但它们负载较轻,内存主要由负载较重的虚拟机使用,因为 ESXi 提高了内存利用率。在测试环境中使用内存超额配置是有意义的。此外,检查内存球技术和该功能的配置,以从虚拟机中回收未使用的内存,以便有效利用物理内存。有时,当虚拟机需要使用磁盘进行交换时,此功能可能会影响虚拟机的性能。

CPU 超额配置。VMware 提供了合理使用资源的技术,允许您为虚拟机分配更多的虚拟处理器,超过主机上的物理 CPU 核心数量。CPU 超额配置参数是分配给虚拟机的虚拟处理器数量与主机上的物理 CPU 核心数量的比率。如果该值为 3:1 – 没有理由担心。如果该值为 5:1,虚拟机性能将下降。如果 CPU 超额配置值为 6:1 或更大,则虚拟机性能会变慢,并且可能会导致许多问题。如何解决 CPU 和内存问题?

内存超额配置是指总资源分配超过容量的情况。如果您有一台拥有8GB内存的主机,并且运行了五个配置为每个使用2GB内存的虚拟机,当所有虚拟机都在密集使用内存时,所有虚拟机和主机机器都可能显示性能低下,因为内存超额配置了(如果所有虚拟机都在密集使用内存)。如果某些虚拟机正在运行,但它们负载较轻,则内存主要由负载较重的虚拟机使用,因为ESXi提高了内存利用率。内存超额配置在测试环境中是有意义的。

另外,检查内存球技术和此功能的配置,以从虚拟机中回收未使用的内存,以实现物理内存的有效利用。有时,当虚拟机需要使用磁盘进行交换时,此功能可能会影响虚拟机性能。

CPU超额配置。VMware提供了合理使用资源的技术,允许您为虚拟机配置更多的虚拟处理器,超过主机上的物理CPU核心数量。CPU超额配置参数是分配给虚拟机的虚拟处理器数量与主机上的物理CPU核心数量的比例。如果值为3:1,则无需担心。如果值为5:1,虚拟机性能会下降。如果CPU超额配置值为6:1或更大,虚拟机性能会变慢,可能会引起许多问题。

如何解决CPU和内存问题?

考虑升级硬件并向您运行虚拟机的物理机添加更多RAM。尽量有足够的内存,防止主机和客户操作系统使用交换文件。避免内存过度分配。

有时CPU电源管理特性可能导致VM性能低下。尝试禁用它们。

检查主机上的空闲CPU和内存资源。

在ESXi上,运行此命令行中的命令,以检查您的服务器是否过载:

esxtop

检查平均负载参数。

1.0 – 表示CPU被完全利用

0.5 – 表示CPU被利用了一半(50%)

2.0 – 表示CPU过载两倍,你必须采取措施

按这些键来改变视图:c – CPU指标(默认显示),m – 内存,n – 网络,d – 磁盘。按空格键更新显示的值(值每5秒自动更新)。按h寻求帮助,按q退出。

如果您使用 VMware Workstation,可以考虑将虚拟机存储在外部SATA(eSata)或USB 3.0磁盘上,考虑上述建议。在关闭虚拟机之前,请勿断开外部磁盘连接。在生产环境中,请使用非增长或预分配的粗磁盘。对于首次写入操作,急切清零的粗磁盘速度更快。如果您使用HDD存储虚拟机,请对物理磁盘驱动器或阵列进行碎片整理,并在虚拟机设置中对虚拟磁盘进行碎片整理。使用分区来减少磁盘碎片。在一个分区上安装操作系统,在另一个分区上存储应用程序使用的文件(例如数据库)。

检查HBA(主机总线适配器)的固件是否最新。在服务器上更新HBA的固件。

检查磁盘健康状态。执行磁盘和文件系统的诊断。如果磁盘损坏,请立即更换磁盘。

检查接口(SAS,SATA)线缆。

磁盘加密会因开销而降低性能。如果加密对虚拟机不重要,请将VM文件移到非加密存储,或关闭磁盘加密。使用提供更高性能和可靠性的独立(硬件)RAID控制器。

确保虚拟机内部的磁盘有足够的空闲空间。磁盘空间不足会导致性能下降,因为操作系统和应用程序无法写入临时文件。

存储系统性能低会导致存储在该存储系统上的虚拟机性能低。存储延迟对虚拟机性能至关重要。尝试使用固态硬盘(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 和存储 DRS。减少在同一 LUN 或数据存储上运行的虚拟机数量。

快照

虚拟磁盘快照会降低虚拟磁盘性能。每个快照会产生一个额外的虚拟磁盘的增量VMDK文件。采用写时复制机制。每个增量VMDK文件包含与父VMDK文件的数据差异(变更日志),当虚拟机与虚拟磁盘交互时,虚拟机会读取所有这些数据。因此,数据会从同一物理磁盘上的多个虚拟磁盘文件中读取,从而降低虚拟机性能。出于同样的原因,不要在VMware Workstation中为虚拟机使用分割VMDK文件(此选项是为不支持大于4GB文件的旧文件系统而创建的)。随着快照数量的增加,磁盘负载会增加。快照通常用于临时目的(例如,在备份作业期间复制数据或在虚拟机内安装或测试应用程序时)。尽快删除或提交快照。

在VMware Workstation中,您应该关闭虚拟机,关闭VMware Workstation,并运行一个命令,其中您定义现有主VMDK文件的路径和新虚拟磁盘文件的路径:

“C:\Program Files (x86)\username\VMware Workstation\vmware-vdiskmanager.exe” -r

“D:\VMs\VM-folder\vm-name.vmdk” -t 0 “D:\VMs\VM-folder\NewDisk.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)\VMware\VMware Workstation\vmware-vdiskmanager.exe” -r splitdisk.vmdk -t 0 mergeddisk.vmdk

将性能敏感数据存储在更快的磁盘上。

VMware Tools

确保在客户操作系统上安装了VMware Tools。 VMware Tools是一组用于提高虚拟机性能和用户体验的驱动程序和实用程序。安装VMware Tools后,图形性能会提高。鼠标同步,无卡顿。使用VMware Tools,您可以在全屏模式下以更高性能使用虚拟机。检查是否安装了VMware Tools。

在Windows中,单击位于时钟旁边的托盘中的VMware Tools图标,或转到C:\Program Files\VMware\VMware Tools\(这是默认目录)并运行以下命令:

VMwareToolboxCmd.exe -v

在Linux中,在控制台中运行以下命令:

vmware-toolbox-cmd -v

通过在ESXi命令行中读取VM日志来检查VM客户机上VMware Tools的版本:

grep toolbox /vmfs/volumes/datastore/vm_name/vmware.log

或者

grep build- /vmfs/volumes/datastore/vm_name/vmware.log

在 VMware vSphere 客户端中,检查运行在 VM 上的客户操作系统是否安装了 VMware Tools。有关 VMware Tools 的信息会显示在 VM 的 摘要 选项卡中(状态和版本)。

网络问题

如果您的 ESXi 主机连接到 SAN(存储区域网络)或 NAS(网络附加存储)等存储设备,请确保网络速度足够,并且网络没有过载。

您应该在 vSphere 中为 ESXi 主机使用单独的管理 网络vMotion 网络 和存储网络,以获得更高的性能。

在使用 虚拟交换机 的 ESXi 主机上配置 NIC Teaming(链路聚合)。

如果现有的网络带宽无法满足要求,请考虑进行网络升级。例如,使用 5-Gbit 或 10-Gbit 网络适配器、交换机和路由器,而不是现有的 1-Gbit 设备。

防病毒软件

确保主机上的防病毒软件不扫描虚拟磁盘文件,因为扫描这些文件会降低虚拟机的性能。您可以在虚拟机目录中排除VMDK文件免受防病毒扫描。

检查主机操作系统和客户操作系统的运行状况。确保没有病毒或其他恶意软件或勒索软件

考虑使用专门针对VMware vShield在ESXi主机上工作的防病毒解决方案,而不是在每个VM的客户操作系统上安装防病毒软件。这种方法可以实现更好的性能,并且对于大型虚拟环境是合理的。如果使用vShield,请正确配置该软件,因为配置不正确会降低虚拟机的性能。

与Hyper-V相关的问题

如果您使用支持在 Windows 主机上安装 Hyper-V 功能 的 VMware Workstation 15.5 或更新版本来运行 VMware 虚拟机,则虚拟机性能可能会变慢。当安装了 Hyper-V 角色时,Hyper-V 直接使用 CPU 虚拟化功能,如 Intel VT-x 或 AMD-V,而这些功能对于必须在特权模式下运行的 VMware Workstation 与虚拟机监视器(VMM)不可用。由于兼容性原因,VMware Workstation 的 VMM 在用户模式或 ULM 模式(而非特权模式)下运行,因为当这些功能被 Hyper-V 使用时,VMM 无法访问 CPU 的硬件虚拟化功能。在这种情况下,VMM 使用 Microsoft 的 WHP APIs 作为 VMM 与 CPU 之间的额外层,并降低了 VMware 虚拟机的性能。

卸载主机 Windows 机器上的 Hyper-V 和相关功能,如基于虚拟化的安全性。之后,VMware Workstation 的 VMM 将在特权模式下运行,并直接与 CPU 虚拟化功能配合高性能地工作。这个解决方案将有助于解决 VMware 虚拟机性能慢的问题。

虚拟机性能监控

VM性能监控是一种广泛使用的方法,用于检测超负荷和相关性能问题。VM性能监控有助于您排除故障的原因。请记住,在主机级别而不是在虚拟机操作系统内部监视VM性能。虚拟机操作系统不知道虚拟化功能,例如动态资源分配,可能显示不正确的数据。VMware在主机级别上提供计数器。这些计数器提供正确的信息,并用于VM性能监控。了解有关如何在VM内部收集性能信息,VMware开发了特定于虚拟机的计数器库,允许您使用Windows客户端中的Perfmon实用程序查看有关VM性能的正确信息。VMware Tools必须安装在客户操作系统上才能进行VM性能监控。

要在VMware vSphere Client中检查已消耗的硬件资源,请选择一个虚拟机,打开监视选项卡,然后选择性能 > 概述或性能 > 高级以查看图表和其他信息。在概述页面上,您可以实时查看CPU、内存、网络和存储的利用情况(剩余空间、已用空间和输入/输出性能),以及前一天、一周、一个月、一年或自定义间隔的情况。在此页面上选择这些选项在两个下拉菜单中(周期查看)。

点击利用率监视选项卡上,以查看有关虚拟机CPU利用率、虚拟机内存和客户内存的额外信息。

同样,在vSphere Client中,您可以选择一个ESXi主机或集群,实时监控所使用和可用的资源,并进行选定时间段的监控。

结论

本博文解释了在讨论虚拟机性能问题时需要注意的主要要点,并提供了改善虚拟机性能的建议。您应该拥有足够性能的硬件,避免内存过度分配,并正确配置软件。使用虚拟机性能监控来检测虚拟机性能缓慢的原因。

磁盘损坏是导致虚拟机性能缓慢最危险的问题,因为除了虚拟机性能差之外,还可能丢失数据。为了避免数据丢失,定期进行VMware数据备份。使用NAKIVO Backup & Replication进行VMware备份,这是一款支持VMware vSphere 7.0的通用数据保护解决方案,提供许多有用的功能来提高备份速度和可靠性。

Source:
https://www.nakivo.com/blog/a-full-overview-of-vmware-virtual-machine-performance-problems/