硬件和软件问题有时会导致虚拟机性能不佳。这可能会降低虚拟环境的便利性和灵活性。阅读本博客文章,了解在面对缓慢的虚拟机时改善VMware VM性能的方法。发现导致VM性能下降的最常见问题,并了解可能的解决方案。
改善 VM性能原因
让我们看一下进行诊断并改善VM性能的主要原因:
- 虚拟机性能低于另一台主机上相同VM的性能。
- 应用程序运行速度比应有的慢。但是当您将VM迁移到另一台主机时,应用程序的性能是正常的。
- 启动应用程序需要很长时间。
- 运行的应用程序无响应。
- CPU、内存或磁盘使用率为100%。
CPU和内存
硬件资源不足是导致VM性能慢的最常见原因之一。如果您未为VM提供足够的CPU资源,VM内部的软件可能会运行缓慢。要解决此问题,请将VM设置为使用更多CPU核心或添加更多虚拟处理器。另外,如果您的主机机器配备了旧处理器,核心数量少,缓存少,频率低,请考虑升级主机硬件。
当为虚拟机设置内存时,请确保该内存量足够满足虚拟机的需求。同时,主机也需要有足够的内存。如果未为虚拟机提供足够的内存,客户操作系统会频繁使用交换文件,导致整体虚拟机性能下降。如果为虚拟机分配了大量的内存,而未留足够的内存给主机操作系统,主机操作系统会使用交换文件,导致操作系统和应用程序性能下降,同时虚拟机性能也会受到影响。不要给虚拟机分配过多的内存,同时要为主机留出足够的内存。始终提供主机足够的内存。
如果您在虚拟机上运行重型应用程序,相应地调整虚拟机配置并增加更多的 CPU 和内存资源。内存超额配置是指总资源分配超过容量的情况。如果您有一台拥有 8GB RAM 的主机,并且运行了五个配置为每个使用 2GB RAM 的虚拟机,当所有虚拟机都在密集使用内存时,所有虚拟机和主机机器可能会显示出低性能,因为内存被超额配置了。如果有些虚拟机正在运行,但它们负载较轻,内存主要由负载较重的虚拟机使用,因为 ESXi 提高了内存利用率。在测试环境中使用内存超额配置是有意义的。此外,检查内存球技术和该功能的配置,以从虚拟机中回收未使用的内存,以便有效利用物理内存。有时,当虚拟机需要使用磁盘进行交换时,此功能可能会影响虚拟机的性能。
内存超额配置是指总资源分配超过容量的情况。如果您有一台拥有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/