硬件虚拟化的主要优势包括逻辑隔离和合理利用资源。在使用 Microsoft Hyper-V 时,监视虚拟机和物理 Hyper-V 服务器的硬件资源使用情况非常重要。分配给虚拟机的资源不足或过多可能会导致虚拟机性能下降,或者影响其他虚拟机和整个环境的性能。本博客文章涵盖了 Hyper-V 监控技巧以及您可以免费使用的原生 Hyper-V 监控工具。
为什么需要 Hyper-V 性能监控?
Hyper-V 资源监控可以帮助您检测瓶颈,并管理资源以优化性能。通过监视 Hyper-V 性能,您可以查看有关资源的统计信息,以帮助您就诸如在当前 Hyper-V 主机上提供更多资源、重新配置 VM 上的软件或将 VM 迁移到另一个 Hyper-V 主机等事项做出决策。请注意,SNMP(简单网络管理协议)已被弃用用于监视 Hyper-V 主机。
如果您检测到 VM 性能较低,请使用以下问题缩小可能的原因范围:
- 在运行在 Hyper-V 主机上的 VM 中分配了足够的资源吗?
- 在 Hyper-V 主机上是否有足够的空闲硬件资源?
- 性能问题是存在于一个 VM 还是多个 VM 中?
幸运的是,Hyper-V具有一些免费的本机工具,可从Hyper-V管理器的GUI开始监视性能和资源消耗。如果您想要在Hyper-V主机之间自动迁移VM以进行负载平衡,那么在集群内部有基本功能可供使用。请注意,如果您使用Hyper-V集群,则需要SCVMM(System Center Virtual Machine Manager)这个付费解决方案,以便自动迁移VM以优化Hyper-V服务器的资源使用情况并进行负载平衡。在SCVMM中也可以监视Hyper-V复制。
不要使用Windows任务管理器监视VM内部的资源
打开任务管理器是查看运行Windows的物理计算机性能和资源使用情况的快速简便方法。但是,不要使用Windows任务管理器监视VM内部的性能。Windows任务管理器不显示虚拟机的CPU和内存的实际使用情况。这是因为任务管理器无法识别机器是否为虚拟机,并且无法知道如何将资源分配给VM。使用任务管理器监视运行中的进程、服务和应用程序,但不要用它来监视VM内部的性能。
在Hyper-V主机上使用性能监视器
在Hyper-V主机上使用性能监视器(perfmon)和适当的计数器来监视处理器、内存、接口、物理磁盘和其他硬件的利用率。性能监视器实用程序在Windows系统上广泛用于性能故障排除。perfmon
在“运行”对话框中运行perfmon或在“计算机管理”窗口中查找“性能监视器”,添加所需的计数器,并在图形用户界面(GUI)中监视统计信息。收集的信息可以显示为图表、图形和图表。
在 Hyper-V 主机上也打开资源监视器可能也很有用(resmon.exe)。
使用 Hyper-V 的计数器
性能监视器可能会为运行在 Hyper-V 主机上的虚拟机提供不正确的信息,因为标准(正常)计数器未针对 VM 监控进行适配。假设运行 Hyper-V 的物理计算机具有四个核心的处理器,并且有两个 VM 驻留在 Hyper-V 主机上。为第一个 VM 提供了四个虚拟处理器。在第一个 VM 上运行一个在四个虚拟处理器上均负载为 100% 的应用程序,并消耗物理 Hyper-V 主机上的所有处理器资源。
与此同时,在该 Hyper-V 主机上启动第二个 VM,其虚拟设备配置相同,并运行相同的应用程序。在两个虚拟机内部,您会看到每个 VM 的处理器均负载为 100% 的信息。然而,与仅运行一个 VM 的第一种情况相比,每个 VM 上的应用程序的速度仅为 50%(如果在 VM 内部打开任务管理器或性能监视器)。如果启用了动态内存,则有关内存的信息显示类似。
在 Hyper-V 主机上使用性能监视器中的 Hyper-V 特定计数器来监视此 Hyper-V 主机上的资源。Hyper-V 计数器显示了用于 Hyper-V 性能监视的最准确信息。
处理器性能
使用此计数器监视Hyper-V主机上的物理处理器性能:Hyper-V Hypervisor逻辑处理器%总运行时间
用于监视虚拟机虚拟处理器性能的计数器:Hyper-V Hypervisor虚拟处理器%客户运行时间
- 当计数器显示运行中的虚拟机的值为75%或更低时,性能最佳。
- A value in the 75 – 85% range is a warning.
- 对于高于85%的值,建议调查高CPU使用率的原因。
用于监视根虚拟处理器利用率的计数器:\Hyper-V Hypervisor根虚拟处理器(*)\%总运行时间
内存利用
有多个用于Hyper-V监视和检查内存使用情况的计数器。
Hyper-V主机上的MemoryAvailable Mbytes计数器用于监视内存使用情况。
- 超过10%的可用RAM – 健康
- 低于10%的可用RAM – 警告
- 可用RAM低于100 MB – 临界
使用MemoryCommitted Bytes计数器来检查虚拟机使用的内存量,以确定应为每个虚拟机分配多少内存。
使用\Hyper-V动态内存平衡器\平均压力计数器来监视动态内存。
- 低于80% – 健康
- 超过80% – 警告
- 100% – 临界
磁盘延迟
使用LogicalDisk(*)\Average Disk Sec\Read or Write计数器来监控磁盘延迟,这对于运行在Hyper-V上的VM的整体性能至关重要。
- <10 ms (0.010 s) – 正常
- >15ms (0.015 s) – 警告
- >25 ms (0.025 s) – 临界
网络
使用\Network Interface (*)\OutputQueue Length计数器来监视网络使用情况,即它测量输出数据包队列中的网络数据包数量。
- 平均值低于1 – 健康
- 平均值高于1 – 警告
- 平均值高于2 – 临界
还应考虑使用以下计数器:
Network Interface(网络适配器名称)\Bytes/sec
Hyper-V虚拟网络适配器(虚拟机名称)\Bytes/sec
为VM提供足够的内存
每台机器都需要足够的内存才能正常工作,否则性能会下降,交换文件将被大量使用(如果已配置),磁盘将被过载。此外,交换文件的速度比RAM慢。如果操作系统和应用程序消耗大约12 GB的物理内存,则应将16 GB的RAM安装到计算机中。对于VM内存分配,使用相同的方法。例如,如果运行在VM上的软件消耗了6 GB的RAM,则为VM提供8 GB的RAM。至少提供额外的20%内存以保证正常工作。建议您额外提供内存作为缓冲。
使用事件查看器监视日志
使用事件查看器监视 Hyper-V 主机和客户 VM 上的日志,对故障排除非常有用。查看和分析诸如系统事件和应用程序事件之类的日志可以帮助确定问题并找到正确的解决方案来修复它们。事件查看器显示与应用程序相关的错误日志,并在操作系统级别工作。要打开事件查看器,您应该首先打开计算机管理。
Hyper-V 日志位于:
事件查看器 > 应用程序和服务日志 > Microsoft > Windows
以下是事件查看器中的 Hyper-V 日志类别:
- Hyper-V-Compute
- Hyper-V-Config
- Hyper-V-Guest-Drivers
- Hyper-V Hypervisor
- Hyper-V-StorageVSP
- Hyper-V-VID
- Hyper-V-VMMS
- Hyper-V-VmSwitch
- Hyper-V-Worker
在计算机管理中,您可以管理 Windows 服务。建议您监视以下 Hyper-V 服务:
- Hyper-V 图像管理服务(vhdsvc)
- Hyper-V 虚拟机管理(vmms)
- Hyper-V 网络管理服务(nvspwmi)
在 PowerShell 中监视资源
您可以在 PowerShell 中监视 Hyper-V 主机和虚拟机的资源。这在非 GUI Windows 操作系统中特别有用。使用特殊的 cmdlet 在 PowerShell 中监视性能。
通过与 Windows 事件日志交互查看 Hyper-V 的操作日志:
Get-WinEvent -LogName Microsoft-Windows-Hyper-V-Hypervisor-Operational | select -First 1 | Format-List *
该命令与 Hyper-V 主机或客户机上的性能计数器对象进行交互,并通过使用 Windows 监控功能从远程或本地计算机直接获取数据:
Get-Counter
获取计数器列表集并对显示结果进行排序:
Get-Counter -ListSet * |
Sort-Object -Property CounterSetName |
Format-Table CounterSetName, CounterSetType -AutoSize
监视在多台计算机上运行的磁盘性能:
$DiskReads = “\LogicalDisk(C:)\Disk Reads/sec”
$DiskReads | Get-Counter -ComputerName Server01, Server02 -MaxSamples 10
您可以使用 PowerShell 为 Hyper-V 性能监视创建自定义脚本。
结论
Hyper-V 监控有助于确定虚拟机性能问题是否与 Hyper-V 主机或客户虚拟机有关。Hyper-V 性能监控可帮助您优化 Hyper-V 主机上的硬件资源使用情况。一些工具,如 Windows 任务管理器,用于监控物理主机的性能,不适合监控运行在 Hyper-V 上的虚拟机的性能。性能监视器包括专门用于监视 Hyper-V 主机和虚拟机资源的 Hyper-V 特定计数器。如果使用 GUI,您可以使用 Hyper-V 管理器、事件查看器和资源监视器,如果使用命令行界面,可以使用 PowerShell 中的特殊命令。
如果本机工具的功能不够,可以尝试使用其他 Hyper-V 监控软件。监控可以帮助您优化 Hyper-V 性能,但在灾难发生时无法保护您免受数据丢失。考虑使用可靠的 Hyper-V 备份软件来保护您的数据。下载 NAKIVO 的免费版,获取多平台支持、勒索软件恢复等功能。
Source:
https://www.nakivo.com/blog/tips-and-tools-for-microsoft-hyper-v-monitoring/