我有一些托管在Windows服务中的WCF服务。昨天我查看了任务管理器,发现我的Windows服务进程的CPU时间超过5小时,而其他大多数进程都是0。
这是什么意思?
我应该担心CPU时间是5个小时吗?
答案 0 :(得分:16)
CPU time表示自流程启动以来流程使用了多长时间(在Windows中:链接到Technet article。)
基本上由:
计算CPU Time of Process = Process Uptime * CPU Utilization of Process
例如,如果进程已运行5小时且CPU时间为5小时,则表示该进程一直在利用CPU的100%资源。这可能是好事还是坏事,这取决于你是想保持较低的资源消耗,还是想利用系统的全部功能。
如果进程使用50%的CPU资源并运行10小时,则CPU时间将为5小时。
答案 1 :(得分:3)
CPU时间反映了程序在CPU中执行指令所花费的时间与等待IO或其他资源的时间有关。您是否应该关注它超过5个小时?
我猜不会,有些事情需要考虑:
此过程运行了多长时间?
对于可能会从中窃取CPU的过程或其他进程的性能,您是否有任何问题?
您还有哪些其他流程?您期望使用CPU的这些活动进程吗?作为80个过程的参考,我有大约20个过程使用超过1秒的CPU时间。
修改强>
WCF服务可能正在从其他服务中窃取CPU,您需要监视它们以确保其性能符合您的预期。您还可以根据总CPU使用情况获得一些感觉。例如,如果您只看到25%的CPU使用,那么您的其他服务不应受到影响;但是,如果你的跑步率超过75%,那么他们可能会受到影响。
在监控方面,请确保随着时间的推移进行监控,以便了解性能趋势,并帮助您发现问题。例如,您的服务运行正常,但在部署后,它慢慢开始占用越来越多的CPU(假设每周10%)。除非您趋向于使用CPU,否则您可能有一天会醒来并看到您的服务运行缓慢,这可能是部署后几周。
答案 2 :(得分:1)
如果您担心进程使用了多少CPU时间,则应使用perfmon在较长时间内跟踪进程的CPU使用情况,以确定是否存在问题。
答案 3 :(得分:0)
任务管理器中的CPU时间究竟是什么?
答案很简单:
进程自启动以来使用的总处理器时间(以秒为单位)。