任务管理器中的CPU时间到底是什么时候?

13 cpu wcf windows-services

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

那是什么意思?

我应该担心CPU时间是5个多小时吗?

coo*_*ird 16

CPU时间表示该进程自进程启动以来已处理的处理时间(在Windows中:链接到Technet文章.)

它主要通过以下方式计算:

CPU Time of Process = Process Uptime * CPU Utilization of Process
Run Code Online (Sandbox Code Playgroud)

例如,如果进程已运行5小时且CPU时间为5小时,则表示该进程一直在利用CPU的100%资源.这可能是好事还是坏事,这取决于您是想要保持较低的资源消耗,还是想要利用系统的全部功能.

如果进程使用50%的CPU资源并运行10小时,那么CPU时间将为5小时.


Jos*_*rke 3

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

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

  1. 这个过程已经运行了多长时间?

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

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

编辑

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

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

  • 您在已运行 504 小时的进程上有 5 小时的 CPU 时间(3 周 * 7 天/周 * 24 小时/天)。简单来说,平均而言,您的进程始终使用 1% 的 CPU。当然,实际情况并非如此,有时您的服务使用的 CPU 接近 0%,而有时则使用量相当多。我想说这没什么好担心的,但如果您担心的话,您应该使用“perfmon”来跟踪进程一段时间内的 CPU 使用情况,以确定是否有问题。 (3认同)