检查表:测量 Hyper-V 的性能指标

虽然分析安装在 Hyper-V 虚拟机上的客户操作系统性能的大多数原则与分析物理计算机上安装的操作系统的性能相同,但许多收集方法是不同的。 评估在安装在 Hyper-V 虚拟机上的来宾作系统上运行的 BizTalk Server 解决方案的性能时,应将以下部分用作快速参考。

测量磁盘 I/O 性能

使用以下性能监视器计数器来测量安装在 Hyper-V 虚拟机上的客户操作系统的磁盘 I/O 性能:

步骤 参考文献
测量 Hyper-V 主机作系统上的磁盘延迟 – Hyper-V 主机作系统上磁盘性能的最佳初始指示器是使用“\Logical Disk()\Avg. Disk sec/Read”和“\Logical Disk\\Avg. Disk sec/Write”性能监视器计数器获取的。 这些性能监视器计数器测量读取操作和写入操作响应操作系统所需的时间。 作为一般经验法则,平均响应时间大于 15 毫秒被视为亚最佳。 作为一般经验法则,平均响应时间大于 15 毫秒被视为亚最佳。 这基于没有缓存的单个 7200 RPM 磁盘驱动器的典型搜寻时间。 建议使用逻辑磁盘与物理磁盘性能监视器计数器,因为 Windows 应用程序和服务利用表示为驱动器号的逻辑驱动器,其中提供给作系统的物理磁盘(LUN)可以由磁盘阵列中的多个物理磁盘驱动器组成。 使用 \Logical Disk(*)\Avg. Disk sec/Read 或 \Logical Disk(*)\Avg. Disk sec/Write 性能监视器计数器测量 Hyper-V 主机操作系统上的磁盘延迟时,请使用以下原则:

这基于没有缓存的单个 7200 RPM 磁盘驱动器的典型搜寻时间。 建议使用逻辑磁盘与物理磁盘性能监视器计数器,因为 Windows 应用程序和服务利用表示为驱动器号的逻辑驱动器,其中提供给作系统的物理磁盘(LUN)可以由磁盘阵列中的多个物理磁盘驱动器组成。 使用 \Logical Disk(*)\Avg. Disk sec/Read 或 \Logical Disk(*)\Avg. Disk sec/Write 性能监视器计数器测量 Hyper-V 主机操作系统上的磁盘延迟时,请使用以下经验法则:

- 1 毫秒到 15 毫秒 = 正常
- 15 毫秒到 25 毫秒 = 警告或监视器
- 26 毫秒或更高 = 严重,性能将受到不利影响 **注意:
* 非虚拟化环境中安装的物理磁盘比通过 Hyper-V 主机作系统访问的磁盘提供更好的性能。 如果磁盘性能对应用程序的整体性能至关重要,请考虑仅在物理硬件上托管磁盘。

注意: 评估磁盘 I/O 性能时,请确保配置防病毒软件以排除正在评估的任何磁盘分区的扫描。 防病毒扫描引入了对性能和偏斜测试结果产生负面影响的开销。

测量来宾作系统上的磁盘延迟 – 可以使用用于测量 Hyper-V 主机作系统使用的磁盘的响应时间的相同性能监视器计数器来测量来宾作系统使用的磁盘的响应时间。
有关磁盘性能分析的详细信息,请参阅以下资源:

- “在 Hyper-V 中运行 SQL Server 的性能开销”部分,“在 Hyper-V 环境中运行 SQL Server 2008 – 最佳实践和性能注意事项”白皮书
- 排除 Disk-Bound 问题
- SQL Server 预部署 I/O 最佳做法
- “SQL Server 2008 中的性能问题疑难解答”白皮书中的“I/O 瓶颈”部分
- 如何使用 Microsoft 服务器性能顾问 (SPA) 工具识别磁盘性能瓶颈

测量内存性能

使用以下性能监视器计数器来度量可用内存对安装在 Hyper-V 虚拟机上的来宾操作系统性能的影响:

步骤 参考文献
测量 Hyper-V 主机作系统上的可用内存 – Hyper-V 主机作系统可用的物理内存量可以通过监视物理计算机上的“\Memory\Available MBytes”性能监视器计数器来确定。 此计数器报告主机作系统可用的可用物理内存量。 评估主机操作系统可用的物理内存时,请使用以下经验法则:

  • \Memory\Available Mbytes – 可用 MBytes 度量计算机上运行的进程可用的物理内存量,作为计算机上安装的物理内存的百分比。 测量此性能监视器计数器的值时,以下准则适用:

    • 可用内存达到或超过 50% = 健康状态
    • 可用内存的 25% 可用,进行监视
    • 可用内存 10% = 警告
    • 可用可用内存不足 5% = 严重,性能将受到不利影响
  • \Memory\Pages/sec – 此性能监视器计数器测量从磁盘读取或写入页面以解决硬页故障的速率。 若要解决硬页错误,作系统必须将内存的内容交换到磁盘,这会对性能产生负面影响。 高的每秒页数与低可用物理内存之间的关系可能表明物理内存不足。 测量此性能监视器计数器的值时,以下准则适用:

    • 小于 500 = 正常
    • 500 - 1000 = 监视器或警告
    • 大于 1000 = 严重,性能将受到不利影响

测量来宾作系统上的可用内存 – 可以使用用于测量主机作系统可用的内存的相同性能监视器计数器来测量可用于 Hyper-V 主机作系统的内存。
有关可用物理内存对应用程序服务器性能的影响的详细信息,请参阅 Exchange Server 2003 文章“排除 Memory-Bound 问题”。

测量网络性能

Hyper-V 允许来宾计算机共享相同的物理网络适配器。 虽然这有助于整合硬件,但请注意不要使物理适配器饱和。 使用以下方法确保 Hyper-V 虚拟机使用的网络的运行状况:

步骤 参考文献
测试网络延迟 Ping 每个虚拟机,以确保有足够的网络延迟。 在局域网上,预计接收的响应时间少于 1 毫秒。
测试是否有数据包丢失 使用 pathping.exe 实用工具测试虚拟机之间的数据包丢失。 Pathping.exe 测量网络上的数据包丢失,并且自 Windows 2000 Server 以来的所有 Windows 版本都可用。 Pathping.exe 向每个网络节点发送快速的 100 个 ping 请求,并计算返回的数量。 在局域网上,不应丢失来自 pathping.exe 实用工具的 ping 请求。
测试网络文件传输 在虚拟机之间复制 100MB 文件,并测量完成复制所需的时间长度。 在正常的 100Mbit(兆位)网络上,100MB(兆字节)文件应在 10 到 20 秒内复制。 在正常的 1Gbit 网络上,100MB 文件应在大约 3 到 5 秒内复制。 这些参数之外的复制时间表明存在网络问题。 网络传输不佳的一个常见原因是,当网络适配器“自动检测到”10MB半双工网络时,网络适配器无法充分利用可用带宽。
测量 Hyper-V 主机操作系统上的网络使用情况 使用以下性能监视器计数器测量 Hyper-V 主机操作系统上的网络利用率:

\Network Interface\\Bytes Total/sec – 通过将 Bytes Total/sec 乘以 8 将其转换为位,将结果乘以 100,然后除以网络适配器的当前带宽计算网络利用率百分比。 使用以下阈值评估网络带宽利用率:

- 消耗的接口少于 40% = 正常
- 41%-64% 使用的接口 = 监视器或警告
- 接口消耗率为 65-100% = 属于关键状态,性能将受到不利影响

\网络接口\\输出队列长度 – 输出队列 长度测量在网络适配器上等待的线程数。 如果网络适配器上等待的线程数超过 2 个,则网络可能是瓶颈。 常见的原因是网络延迟较高,或网络冲突率较高。 使用以下阈值来评估输出队列长度:

- 0 = 正常
- 1-2 = 监视器或警告
- 大于 2 = 严重,性能将受到不利影响。

确保解决方案中所有计算机的网络适配器(物理和虚拟)都配置为对最大传输单元(MTU)使用相同的值。 有关配置 MTU 值的详细信息,请参阅 附录 A:TCP/IP 配置参数

如果测量输出队列长度为 2 或更多,请考虑将一个或多个物理网络适配器添加到托管虚拟机的物理计算机,并将来宾作系统使用的网络适配器绑定到这些物理网络适配器。
测量虚拟机来宾操作系统上的网络利用率 如果 Hyper-V 根分区上的网络适配器如上述性能监视器计数器所示正忙,请考虑使用“\Hyper-V 虚拟网络适配器(*)\Bytes/sec”性能监视器计数器来确定哪些虚拟网络适配器消耗了最多的网络利用率。

有关网络性能分析的详细信息,请参阅 第 15 章 - 测量 .NET 应用程序性能

测量处理器性能

使用以下方法评估安装在 Hyper-V 虚拟机上的客户操作系统的处理器性能:

  • 度量来宾操作系统处理器利用率 - 传统上,可以使用“\Processor(*)\% Processor Time”性能监视器计数器来测量处理器性能。 这并不是一个用于准确评估客体操作系统处理器利用率的计数器,因为 Hyper-V 是相对于分配给虚拟机的处理器数量来度量和报告此值的。 如果分配给运行虚拟机的处理器数量超过物理计算机上实际存在的处理器数量,则每个来宾操作系统返回的“\Processor(*)\% 处理器时间”性能监视器计数器的值将较低,尽管实际上处理器利用率是瓶颈。 之所以发生这种情况,是因为虚拟处理器以轮循机制方式利用物理处理器。 每个虚拟处理器将尝试并分配整个系统资源的一部分,因此在 4 个物理处理器系统中,每个虚拟处理器默认会尝试利用 25 个系统资源%。 如果创建了 8 个虚拟处理器,这意味着这些虚拟处理器将共同尝试利用服务器 CPU 容量的 200%。 在这种情况下,每个虚拟处理器根据性能监视器计数器“\Processor(*)\% 处理器时间”显示低使用率(相对于期望水平),而虚拟处理器之间过度的上下文切换将导致每个虚拟机的性能不佳。 在此方案中,请考虑减少分配给主机作系统上 Hyper-V 虚拟机的虚拟处理器数。Hyper-V 提供虚拟机监控程序性能对象来监视逻辑处理器和虚拟处理器的性能。 逻辑处理器直接关联到物理计算机上安装的处理器或内核数。 例如,在物理计算机上安装的 2 个四核处理器将关联到 8 个逻辑处理器。 虚拟处理器是虚拟机实际使用的内容,根分区和子分区中的所有执行都在虚拟处理器中发生。

    Hyper-V 提供虚拟机监控程序性能对象来监视逻辑处理器和虚拟处理器的性能。 逻辑处理器直接关联到物理计算机上安装的处理器或内核数。 例如,在物理计算机上安装的 2 个四核处理器将关联到 8 个逻辑处理器。 虚拟处理器是虚拟机实际使用的内容,根分区和子分区中的所有执行都在虚拟处理器中发生。

    若要准确测量来宾操作系统的处理器利用率,请在 Hyper-V 主机操作系统上使用“Hyper-V 管理程序逻辑处理器(_Total)% 总运行时间”性能监视器计数器。 使用以下阈值通过“Hyper-V 虚拟机监控程序逻辑处理器(_Total)% 总运行时间”性能监视器计数器评估来宾操作系统的处理器利用率:

    • 消耗的% 小于 60 = 健康

    • 60% - 已使用 89% = 监视器或警告

    • 90% - 100% 消耗 = 关键,性能将受到不利影响

      若要对 Hyper-V 环境中的来宾操作系统的处理器性能进行故障排除,最好是努力保持主机操作系统报告的“\Hyper-V 虚拟机监控程序逻辑处理器(_Total)\% 总运行时间”(LPTR)和“\Hyper-V 虚拟机监控程序虚拟处理器(_Total)\% 总运行时间”(VPTR)值之间的平衡。 如果 LPTR 较高且 VPTR 较低,则验证分配给虚拟机的处理器是否少于物理计算机上可用的处理器数。 使用“\Hyper-V 虚拟机监控程序虚拟处理器(*)\%Guest 运行时间”计数器来确定哪些虚拟处理器正在占用 CPU,并根据需要从虚拟机中取消分配虚拟处理器,以便配置虚拟处理器与逻辑处理器的一对一映射。 有关配置虚拟处理器到逻辑处理器的一对一映射的详细信息,请参阅清单中的“优化处理器性能”部分 :优化 Hyper-V 上的性能。 如果 VPTR 较高且 LPTR 较低,则考虑向虚拟机分配其他处理器(如果有可用的逻辑处理器),以及来宾作系统是否支持其他处理器。 如果 VPTR 较高,LPTR 较低,则有可用的逻辑处理器要分配,但来宾作系统不支持其他处理器,请考虑通过向物理计算机添加其他虚拟机并将可用处理器分配给这些虚拟机来横向扩展。 如果 VPTR 和 LPTR 都很高,这表示配置导致物理计算机达到极限,应该考虑通过添加另一台物理计算机和额外的 Hyper-V 虚拟机到环境中来扩展规模。 下面的流程图描述了在 Hyper-V 环境中对处理器性能进行故障排除时应使用的过程。

      如果 VPTR 较高且 LPTR 较低,请考虑将其他处理器分配给虚拟机(如果有可用的逻辑处理器),以及来宾作系统是否支持其他处理器。 如果 VPTR 较高,LPTR 较低,则有可用的逻辑处理器要分配,但来宾作系统不支持其他处理器,请考虑通过向物理计算机添加其他虚拟机并将可用处理器分配给这些虚拟机来横向扩展。 如果 VPTR 和 LPTR 都很高,则说明配置已经达到物理计算机的极限,应考虑通过添加另一台物理计算机和其他 Hyper-V 虚拟机到环境中来进行容量扩展。 下面的流程图描述了在 Hyper-V 环境中对处理器性能进行故障排除时应使用的过程。

      在 Hyper-V 环境中排除 的 CPU 性能问题 在 Hyper-V 环境中排除 CPU 性能问题

    注释

    来宾操作系统处理器没有与物理处理器/核心的集关联 – 虚拟机监控程序确定如何使用物理资源。 对于处理器利用率,虚拟机监控程序以线程的形式将来宾处理器时间安排到物理处理器。 这意味着虚拟机的处理器负载将分散在物理计算机的处理器中。 此外,虚拟机不能超过配置的逻辑处理器数的处理器利用率,例如,如果将单个虚拟机配置为在具有 8 个处理器/核心的物理计算机上使用 2 个逻辑处理器运行,则虚拟机不能超过配置的逻辑处理器数量的处理器容量(在本例中为 2 个处理器)。

  • 使用 Hyper-V 性能监视器计数器衡量 Hyper-V 环境的总体处理器利用率 - 为了测量处理器利用率,主机作系统在逻辑上被视为另一个来宾作系统。 因此,“\\Processor(*)\\% 处理器时间”监视器仅度量主机操作系统的处理器利用率。 若要测量主机操作系统和所有来宾操作系统的物理处理器总利用率,请使用“\Hyper-V 管理程序逻辑处理器(_Total)\% 总运行时间”性能监视器计数器。 此计数器测量处理器在运行宿主操作系统和所有虚拟机操作系统上花费的总时间百分比。

    通过“\Hyper-V Hypervisor Logical Processor(_Total)\% 总运行时间”性能监视器计数器,评估以下阈值以全面了解 Hyper-V 环境的处理器利用率。