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