虚拟机上 taskmgr.exe 进程 CPU 负载过高的可能原因是什么?

虚拟机上 taskmgr.exe 进程 CPU 负载过高的可能原因是什么?

在一台存在严重性能问题的 VMware 虚拟机上,我可以看到 TASKMGR.EXE(任务管理器)进程的 CPU 负载平均持续超过 20%。在此服务器上运行的应用程序负载较低,平均约为 4% 到 10%。VM 运行 Windows 2003 Server Standard,分配了 3.75 GB 的 RAM。我怀疑任务管理器 CPU 负载与 VMWare 服务器上的其他 VM 实例有关,但在内部 ESXi 系统上看不到类似的值(有问题的 VM 在客户 IT 中运行)。

答案1

我遇到了类似的症状,不是在虚拟机上,而是在 Win7 笔记本电脑上。Taskmgr.exe 和其他进程(如 Winmerge.exe)占用了 13% 的 CPU(8 分之一)。重启可以暂时缓解这个问题,所以我经常这样做。

经过长时间的调查,我发现 Webroot Secure Anywere(用于病毒和其他类型保护的软件)WRSA.exe 是罪魁祸首。一旦我终止该进程,一切都会像变魔术一样再次快速运行!目前还不确定要使用什么来代替 Webroot 进行保护。

答案2

好吧,如果你退出任务管理器会怎么样?:-)

每次我看到任务管理器负载值荒谬时,结果都是由于内存不足导致 VM 主机上出现交换。检查主机上的内存统计信息,尤其是分配和使用内存的值以及使用的交换。

答案3

应首先在物理服务器上评估虚拟化服务器的性能,然后再在虚拟机上评估。

在虚拟机内部,时间计算并不准确,特别是当您过度使用 VCPU 时。

此外,系统时间中 CPU 所花的时间也会严重影响性能。即使总 CPU 使用率不到 15%,10% 也会导致虚拟机的响应时间加倍。

检查您是否没有过度使用内存,并且主机服务器没有交换。这会使您的性能下降。确保安装了 VMware 工具并且半虚拟化(直接 I/O、baloon)驱动程序正在运行。

答案4

我在 vSphere 5.1 上使用 2003 标准虚拟机时遇到了类似的问题。最初,我配置了一个非常简单的虚拟机(4GB vRAM、20GB vDisk),带有 1 个插槽和 2 个核心。在空闲时,虚拟机 CPU 始终处于 30-50% 的范围内,即使没有安装任何程序并且它完全是最新的等等

我尝试了不同的 CPU 配置,当我将 vCores 的数量从 1 个插槽和 2 个核心更改为 1 个插槽和 4 个核心(并重新启动)时,一切都平静下来 - 空闲率为 99%。

我对 vCPU 方法论了解不够,无法提供解释,但也许这会对某些人有所帮助

主机本身是带有 2 x 16 核 AMD 的 DL385 Gen8。

相关内容