清单:度量 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 2008 - 最佳做法和性能注意事项”白皮书中的“在 Hyper-V 中运行SQL Server的性能开销”部分 - 排除 Disk-Bound 问题 - SQL Server预部署 I/O 最佳做法 - “排查 SQL Server 2008 中的性能问题”白皮书中的“I/O 瓶颈”部分 - 如何使用 Microsoft Server Performance Advisor (SPA) 工具识别磁盘性能瓶颈 |
测量内存性能
使用以下性能监视器计数器测量可用内存对 Hyper-V 虚拟机上安装的来宾操作系统性能的影响:
步骤 | 参考 |
---|---|
测量 Hyper-V 主机操作系统上的可用内存 - Hyper-V 主机操作系统可用的物理内存量可以通过监视物理计算机上的“\Memory\Available MBytes”性能监视器计数器来确定。 此计数器报告主机操作系统可用的可用物理内存量。 评估可用于主机操作系统的可用物理内存时,请使用以下经验规则:
测量来宾操作系统上的可用内存 – 可用于来宾操作系统的内存可以使用用于测量 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 请求的突发,并计算返回的 ping 数。 在局域网上,来自 pathping.exe 实用工具的 ping 请求不应丢失。 |
测试网络文件传输 | 在虚拟机之间复制一个 100MB 的文件,并测量完成复制所需的时间长度。 在正常的 100Mbit (兆位) 网络上,100MB (兆字节) 文件应在 10 到 20 秒内复制。 在正常的 1Gbit 网络上,100MB 的文件应在大约 3 到 5 秒内复制。 这些参数之外的复制时间表明存在网络问题。 当网络适配器“自动检测到”10MB 半双工网络,从而阻止网络适配器充分利用可用带宽时,会出现网络传输不佳的一个常见原因。 |
测量 Hyper-V 主机操作系统上的网络利用率 | 使用以下性能监视器计数器测量 Hyper-V 主机操作系统上的网络利用率: \Network Interface (*) \Bytes Total/sec – 网络利用率百分比的计算方法是将字节总数/秒乘以 8 将其转换为位,将结果乘以 100,然后除以网络适配器的当前带宽。 使用以下阈值来评估网络带宽利用率: - 使用的接口少于 40% = 正常 - 使用的接口的 41%-64% = 监视器或警告 - 使用的接口的 65-100% = 严重,性能将受到不利影响 \Network Interface (*) \Output Queue Length – 输出队列长度测量网络适配器上等待的线程数。 如果等待网络适配器的线程超过 2 个,则网络可能是瓶颈。 导致这种情况的常见原因是网络延迟不佳和/或网络上的冲突率较高。 使用以下阈值来评估输出队列长度: - 0 = 正常 - 1-2 = 监视或警告 - 大于 2 = 严重,性能将受到不利影响。 确保解决方案中 (物理和虚拟) 的所有计算机的网络适配器都配置为对最大传输单元 (MTU) 使用相同的值。 有关配置 MTU 值的详细信息,请参阅 附录 A:TCP/IP 配置参数。 如果测量输出队列长度为 2 或更多,请考虑将一个或多个物理网络适配器添加到托管虚拟机的物理计算机,并将来宾操作系统使用的网络适配器绑定到这些物理网络适配器。 |
测量来宾操作系统上的网络利用率 | 如果 Hyper-V 根分区上的网络适配器正忙如上面提到的性能监视器计数器所示,请考虑使用“\Hyper-V 虚拟网络 Adapter (*) \Bytes/sec”性能监视器计数器来确定哪些虚拟网络适配器消耗最多的网络利用率。 |
有关网络性能分析的详细信息,请参阅 第 15 章 - 测量 .NET 应用程序性能。
测量处理器性能
使用以下方法评估 Hyper-V 虚拟机上安装的来宾操作系统上的处理器性能:
测量来宾操作系统处理器利用率 - 传统上,可以使用“\Processor (*) \% Processor Time”性能监视器计数器来测量处理器性能。 不过,这不是用于评估来宾操作系统的处理器利用率的准确计数器,因为 Hyper-V 相对于分配给虚拟机的处理器数测量和报告此值。 如果分配给正在运行的虚拟机的处理器数多于物理计算机上实际存在的处理器数,则每个来宾操作系统为“\Processor (*) \% Processor Time”性能监视器计数器返回的值将较低,即使事实上处理器利用率是一个瓶颈。 这是因为虚拟处理器以轮循机制方式利用物理处理器。 每个虚拟处理器将尝试为自己分配一部分整体系统资源,因此在 4 个物理处理器系统中,每个虚拟处理器默认会尝试使用 25% 的系统资源。 如果创建了 8 个虚拟处理器,这意味着虚拟处理器将尝试使用 200% 的服务器 CPU 容量。 在这种情况下,每个虚拟处理器将报告利用率较低,由“\Processor (*) \% Processor Time”性能监视器计数器 (相对于预期) ,虚拟处理器之间的过度上下文切换将导致每个虚拟机的性能不佳。 在这种情况下,请考虑减少分配给主机操作系统上的 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 虚拟机监控程序虚拟处理器 (*) \%来宾运行时间”计数器来确定哪些虚拟处理器正在消耗 CPU,并根据需要从虚拟机取消分配虚拟处理器,以配置虚拟处理器到逻辑处理器的一对一映射。 有关配置虚拟处理器到逻辑处理器的一对一映射的详细信息,请参阅 清单:优化 Hyper-V 上的性能中的“优化处理器性能”部分。 如果 VPTR 较高且 LPTR 较低,请考虑将其他处理器分配给虚拟机(如果有可用的逻辑处理器,并且来宾操作系统是否支持其他处理器)。 如果 VPTR 较高,LPTR 较低,则有可用的逻辑处理器可以分配,但来宾操作系统不支持其他处理器,请考虑通过向物理计算机添加其他虚拟机并将可用处理器分配给这些虚拟机进行横向扩展。 如果 VPTR 和 LPTR 都很高,则配置将推送物理计算机的限制,并应考虑通过向环境添加另一台物理计算机和其他 Hyper-V 虚拟机进行横向扩展。 下面的流程图描述了在 Hyper-V 环境中对处理器性能进行故障排除时应使用的过程。
如果 VPTR 较高且 LPTR 较低,请考虑在有可用的逻辑处理器以及来宾操作系统支持其他处理器的情况下将其他处理器分配给虚拟机。 如果 VPTR 较高,LPTR 较低,则有可用的逻辑处理器可以分配,但来宾操作系统不支持其他处理器,请考虑通过向物理计算机添加其他虚拟机并将可用处理器分配给这些虚拟机进行横向扩展。 如果 VPTR 和 LPTR 都很高,则配置将推送物理计算机的限制,并应考虑通过向环境添加另一台物理计算机和其他 Hyper-V 虚拟机进行横向扩展。 下面的流程图描述了在 Hyper-V 环境中对处理器性能进行故障排除时应使用的过程。
上的 CPU 性能疑难解答排查 Hyper-V 环境中的 CPU 性能问题
注意
来宾操作系统处理器对物理处理器/核心没有设置相关性 – 虚拟机监控程序确定物理资源的使用方式。 在处理器使用率的情况下,虚拟机监控程序以线程的形式将来宾处理器时间安排到物理处理器。 这意味着虚拟机的处理器负载将分散在物理计算机的处理器上。 此外,虚拟机不能超过已配置逻辑处理器数的处理器利用率,例如,如果将单个虚拟机配置为在具有 8 个处理器/核心的物理计算机上使用 2 个逻辑处理器运行,则虚拟机不能超过配置逻辑处理器数的处理器容量 (在本例中为 2 个处理器) 。
使用 Hyper-V 性能监视器计数器测量 Hyper-V 环境的总体处理器利用率 - 为了测量处理器利用率,主机操作系统在逻辑上被视为另一个来宾操作系统。 因此,“\Processor (*) \% Processor Time”监视器计数器仅测量主机操作系统的处理器利用率。 若要测量主机操作系统和所有来宾操作系统的总物理处理器利用率,请使用“\Hyper-V 虚拟机监控程序逻辑处理器 (_Total) \% 总运行时间”性能监视器计数器。 此计数器度量运行主机操作系统和所有来宾操作系统的处理器花费的总时间百分比。
使用以下阈值通过“\Hyper-V 虚拟机监控程序逻辑处理器 (_Total) \% 总运行时间”性能监视器计数器评估 Hyper-V 环境的总体处理器利用率:
消耗不到 60% = 正常
60% - 89% 已使用 = 监视或警告
90% - 100% 消耗 = 严重,性能将受到不利影响
有关处理器利用率的详细信息,请查看以下资源:
调查瓶颈。