这有点牵强,但我想知道是否有人可以解释以下内容:
我有一台运行 Ubuntu Server 8.04 LTS 和 VMware Server 2.0 的 VMware Host Server。主机上的用户 CPU 使用率一直在攀升,直到我重新启动服务器时,它才降到几乎为零 - 然后又开始攀升。自从我将 Server 2003 VM 换成 Server 2008 VM(升级了我的 DC,并迁移到 2008)以来,情况一直如此。不过,我找不到 Windows 服务器的任何问题,也找不到 VM 本身的任何异常高的 CPU 使用率。
我一直在更新主机,所以我经历了大约 3 次内核升级、多次重新编译 VMware,以及在不久前发布最后一个 VMware Server 版本时经历了一个全新的版本。我就是搞不懂这一点。
任何建议都将非常感谢,我现在只是想尝试一些东西!
答案1
我无法回答这个问题,但我可以提供一些额外的轶事证据。我也注意到了这一点,使用 Linux 主机(Debian/Etch 和 Debian/Lenny)。
经过一番摸索,当我第一次注意到这个问题时,我得出结论,问题出在 VMWare 上,而不是客户机本身。在停止特定机器上的虚拟机中的所有服务后,尽管虚拟机中的操作系统什么也没做,但 CPU 使用率仍然很高。在关闭四台虚拟机中的每一台后,每台虚拟机的过高主机 CPU 使用率下降了约 25%(我没有用任何科学方法测量这一点,但肯定没有一台虚拟机似乎施加了大部分负载)。在重新启动虚拟机后,即使虚拟机中的服务处于活动状态,CPU 使用率仍保持在原来的水平,并且负载已经开始随着时间的推移缓慢上升,而明显的有用活动并没有相应增加。
在我注意到的两种情况下,主机操作系统都是 32 位 Linux,客户操作系统也是 32 位 Linux。
我还没见过全部不过,有些情况确实如此。在我的家庭服务器(64 位 Linux 内核,32 位用户空间,运行一个大型和两个小型 32 位 Linux VMS,偶尔运行 Windows VMS 进行测试)和工作中的主开发/测试主机(64 位 Linux(内核和用户空间)主机,主要运行 Windows VM,一些 32 位,一些 64 位)上,这种异常行为似乎不存在。以上所有服务器都运行 VMWare Server 2。
长话短说:这不仅仅是你,也不仅仅是基于 Windows 的客户,但这似乎不是一个持续存在的问题(就我有限的经验而言,许多安排都没有意识到这一点)。但不幸的是,我无法提供任何进一步的帮助,因为我没有时间更详细地研究这个问题。
答案2
首先,我也在 VMware Server 上看到过这种情况 - 无论是在 Windows 还是 Linux 上。根据我的经验,这与运行两个都同时使用 64 位和 32 位虚拟机。
虽然它可能不适合您,但我建议您使用 ESXi - 轻量级的免费版 ESX。
答案3
我在生产服务器上遇到了同样的问题。主机操作系统是 Debian Linux 64 位。客户机是 4 台 Linux 机器和 1 台 Windows XP。所有客户机都是 32 位。当我重新启动主机上的所有 VM 服务时,CPU 调度正常,每个 VM 的主机 CPU 与实际客户机活动相当。然而,几周后 CPU 调度增加,直到或多或少地在正在运行的 VM 上消耗了最大可用 CPU 时间。当时主机上的 CPU 使用率大约是 VM 刚启动时的初始 CPU 使用率的 10 倍。
在我看来,这似乎是主机上的 CPU 调度出现泄漏。泄漏的不是 RAM,而是 CPU 周期 :-)。我如何确定 ESXi 上不会发生这种情况?
托马斯格