什么时候持续 100% 的 CPU 利用率不必担心?

什么时候持续 100% 的 CPU 利用率不必担心?

请帮助完善我们商店中正在进行的讨论。

请考虑以下场景。有一个 Microsoft VPC 正在运行多个应用程序和服务(Windows 2003 服务器)。该服务器有两个或三个关键角色。CPU 利用率时常持续达到 100%。其中一个罪魁祸首是遗留应用程序,目前唯一真正的解决方案是重新启动服务。此后,CPU 利用率会恢复到合理水平(平均 60-80%)。然而,较少见的是,当服务器的 CPU 利用率为 100% 时,另一个服务似乎正在使用大部分资源,即解析日志的安全应用程序。当 CPU 达到上限时,我们的运营团队会立即重新启动该服务。我们的安全团队指出,这毫无意义,因为此服务以 BelowNormal 优先级运行,因此实际上它不会剥夺任何其他进程的 CPU。安全部门认为,在这些情况下,100% 的 CPU 使用率实际上不应被视为关键情况。如果 BelowNormal 优先级进程正在使用大部分 CPU,那么实际上根本没有 CPU 不足。另一方面,运营部门对 100% CPU 利用率是否真的是一种没有不良后果的情况持怀疑态度,并且不想忽略它。谁是对的?是安全部门说没什么可担心的,还是运营部门说我们应该做点什么?

答案1

在这种情况下,您需要超越任务管理器并查看 CPU 使用率百分比。这并不能告诉您是否有什么东西对性能产生了不利影响。对于这种情况,下一步是使用性能监视器查看系统\处理器队列长度。这会告诉您进程是否正在等待 CPU 空闲,这可能会影响性能。这类似于您在 Unix 中的 top 或 load 命令中看到的内容。

本文对解决这些问题时要查看的性能指标进行了很好的描述。它最初适用于 NT4,但仍适用于较新的版本。

这里有一个更新文章来自 Windows 性能团队讨论如何解决 CPU 性能问题。

答案2

您如何测量 CPU%?如果这是虚拟机,Perfmon 可能并不总是提供准确的结果。峰值是否可能与主机上的活动有关?病毒扫描、自动更新程序和许多其他因素都可能影响客户虚拟机,并使其从虚拟机的角度来看看起来像是 100% CPU,但它可能是更小的 CPU 切片的 100%。

答案3

处理大量日志数据应该会占用大量 CPU。如果没有,那么您的进程很可能是 IO 受限的。只要处理完成后计量表下降(并且机器在占用大量 CPU 时能够合理地响应其他任务),就无需担心。

相关内容