任务管理器中的CPU Time到底是什么?

问题描述 投票:0回答:4

我有一些托管在 Windows 服务中的 WCF 服务。昨天我查看任务管理器,发现我的 Windows 服务进程的 CPU 时间超过 5 小时,而大多数其他进程的 CPU 时间为 0。

这是什么意思?

我应该担心 CPU 时间超过 5 小时吗?

wcf windows-services cpu
4个回答
19
投票

CPU 时间 表示进程自启动以来已使用了多少处理时间(Windows 也以相同的方式定义它,如 Microsoft Learn 中这篇针对 Windows 2000 的文章 中所述)。

基本上是通过以下方式计算的:

进程的 CPU 时间 = 进程正常运行时间 * 进程的 CPU 利用率

例如,如果进程运行了5个小时,CPU时间为5小时,则意味着该进程已经使用了100%的CPU资源。这可能是好事也可能是坏事,具体取决于您是想保持较低的资源消耗,还是想利用系统的全部功能。

如果进程使用了 50% 的 CPU 资源并运行了 10 小时,则 CPU 时间将为 5 小时。


3
投票

CPU 时间反映了程序花费在 CPU 中执行指令与等待 IO 或其他资源的时间。您应该担心 5 个小时以上吗?

我想不会,需要考虑的一些事情是:

  1. 此进程运行了多长时间?

  2. 您对可能会窃取 CPU 的进程或其他进程的性能有任何问题吗?

  3. 你们还有哪些其他流程?这些活动进程是您期望使用 CPU 的吗?作为 80 个进程的参考,我有大约 20 个进程使用了超过 1 秒的 CPU 时间。

编辑

WCF 服务可能会从其他服务中窃取 CPU,您需要监视它们以确保它们的性能符合您的预期。您还可以根据总 CPU 使用情况了解情况。例如,如果您只看到 CPU 使用了 25%,那么您的其他服务应该不会受到影响;但是,如果您的跑步率超过 75%,那么它们可能会受到影响。

在监控时,请确保随着时间的推移进行监控,以便您可以了解性能趋势,这将帮助您隔离问题。例如,您的服务运行良好,但部署后它慢慢开始占用越来越多的 CPU(假设每周 10%)。除非您对 CPU 使用情况进行趋势分析,否则您可能有一天醒来会发现您的服务运行缓慢,这可能是在部署几周后。


1
投票

如果您关心进程使用了多少 CPU 时间,您应该使用 perfmon 来跟踪进程在较长时间内的 CPU 使用情况,以确定是否存在问题。


0
投票

任务管理器中的CPU Time到底是什么?

答案很简单:

自启动以来进程使用的总处理器时间(以秒为单位)。

© www.soinside.com 2019 - 2024. All rights reserved.