我有一个 Windows 2008 R2 Hyper-V 服务器和几个客户机的设置。昨天我注意到其中一个客户机变得非常慢(例如,浏览文件夹时明显滞后)。我决定尝试重新启动,同时应用所有新的 Windows 更新。结果发现,这花了很长时间……现在服务器正在启动,正在执行“Windows 更新的注册表更新步骤”,但这需要很长时间(或至少很长时间)。
Hyper-V 管理器报告 CPU 约占 25-50%该机器的使用情况,但在主机操作系统的任务管理器中上面写着 1-5%??(主要由虚拟机工作进程消耗)。这对我来说毫无意义。客户机的 CPU 储备和限制为 50%,现在我已将其提升至 100%(没有区别)。服务器之前运行平稳,据我所知操作系统/软件没有任何变化。主机也已重新启动并安装了所有 Windows 更新。主机本身运行平稳。
主机上还运行着一台 Windows XP 开发人员客户机。该机器运行良好。如果我在其上启动 VS.NET,启动时 CPU 使用率将在 5-40% 左右,主机操作系统 CPU 消耗大致与客户机相同(正如您所期望的那样)。
有人知道这可能是什么原因造成的吗?
主机操作系统:Windows 2008 R2 Hyper-V(标准版)
客户操作系统:Windows 2008(标准版)
硬件:HP ML350 G5
答案1
我根本不指望父分区的 CPU 使用率能够跟踪到客户机。
在虚拟化环境中,客户机 CPU 使用率是准确的,只要客户机能够感知到它。Hyper-V 中的“主机”实际上并不是主机,虽然它在任务管理器中报告的 RAM 数量是真实的,但我认为您会发现 CPU 数字特定于主机本身。
看这个答案(这与我的看法一致)。
在出现此性能缓慢问题之前,主机有什么变化吗?(安装了新的图形驱动程序?)
虚拟机的存储介质有什么变化吗?听起来它可能与 IO 有关。
如果没有任何变化,但有些东西发生了变化 - 防病毒软件是否会干扰 VM 或其 VHD?
最后,我发现父分区上的 ResMon.exe 可以告诉我虚拟机对 VHD 的磁盘 IO 的操作,这是另一种可行的方法。