如何监视某一进程的CPU占用率
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何监视某一进程的CPU占用率相关的知识,希望对你有一定的参考价值。
CPU使用率其实就是你运行的程序占用的CPU资源,表示你的机器在某个时间点的运行程序的情况。使用率越高,说明你的机器在这个时间上运行了很多程序,反之较少。使用率的高低与你的CPU强弱有直接关系。现代分时多任务操作系统对 CPU 都是分时间片使用的:比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms,再又是A进程占10ms,B进程占30ms,空闲60ms;如果在一段时间内都是如此,那么这段时间内的占用率为40%。CPU对线程的响应并不是连续的,通常会在一段时间后自动中断线程。未响应的线程增加,就会不断加大CPU的占用。cpu使用率高的原因有很多,但是一般都是由于病毒木马或开机启动项过多所致。高CPU使用率也可能表明应用程序的调整或设计不良。优化应用程序可以降低CPU的使用率。CPU占用率高原因
操作系统或杀毒软件的自动更新
当操作系统或是杀毒软件在网路上检测到有更新模组时,便自动更新了。此时会占用大量CPU。[2]
解决办法:将更新方式由“自动”改为“手动”。不过改变设置后,你要记得时常给系统或杀毒软体更新,否则很容易受到网路攻击。[2]
杀毒软件自动杀毒
如果你将杀毒软体设为自动杀毒为是定期杀毒,到了杀毒时间它将自动运行杀毒程序。即时也将占用大量CPU。[2]
解决办法:将杀毒方式由“自动”或“定时”改为“手动”。不过建议用户还是采用“定时”杀毒。[2]
驱动没有经过认证,造成CPU资源占用100%
大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。[2]
解决办法:建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本,尤其是显卡驱动特别要注意。[2]
电脑感染病毒或是木马
大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。[2]
解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘。经常性更新升级杀毒软体和防火墙,加强防毒意识,掌握正确的防杀毒知识。[2]
查看网络连接
当安装了Windows XP的电脑做服务器的时候,收到端口445上的连接请求时,它将分配记忆体和少量地调配CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的MaxWorkItems设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。[2]
解决办法:我们可以通过修改注册表来解决:在注册表编辑器中依次展开[2] [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出:如果电脑有 512MB以上的内存,键入“1024”;如果电脑内存小于512 MB,键入“256”。[2]
CPU温度过高
当CPU温度过高时,也会使CPU使用率偏高。严重的甚至会自动重启。[2]
解决办法:检查CPU风扇是否正常运转,如果坏了或是老化了要进行更换,或是给CPU风扇加点油(要是没有专用油,一般的植物油也行)。[2]
运行的程序太多
运行的程序太多也会导致CPU使用率高。可以先结束一些暂不用程序[2]
解决办法:同时按下CTRL+ALT+DEL键,调出任务管理器,把暂不用的程序都选择“结束任务”。[2]
一般情况下CPU占了100%的话我们的电脑就会慢下来,而很多时候我们是可以通过做一点点的改动就可以解决,而不必问那些大虾了。
当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较高的比例,如果是某个大程序那还可以原谅,在关闭该程序后只要CPU正常了那就没问题;如果不是,那你就要看看是什么程序了,当你查不出这个进程是什么的时候就去google或者baidu搜。
有时只结束是没用的,在xp下我们可以结合msconfig里的启动项,把一些不用的项给关掉。在2000下可以去下个winpatrol来用。
一些常用的软件,比如浏览器占用了很高的CPU,那么就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容导致CPU使用率飙升,这种时候我们可以选择WINDOWS的兼容选项,右键点该.exe文件选兼容性。
svchost.exe有时是比较头痛的,当你看到你的某个svchost.exe占用很大CPU时你可以去下个aports或者fport来检察其对应的程序路径,也就是什么东西在调用这个svchost.exe,如果不是c:\\Windows\\system32(xp)或c:\\winnt\\system32(2000)下的,那就可疑。升级杀毒软件杀毒吧。
右击文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中,再右键(不是很理解)。非官方:通过在桌面点右键-属性-外观-效果,取消“为菜单和工具提示使用下列过度效果(U)”来解决。还有某些杀毒软件对文件的监控也会有所影响,可以关闭杀毒软件的文件监控;还有就是对网页,插件,邮件的监控也是同样的道理。
一些驱动程序有时也可能出现这样的现象,最好是选择微软认证的或者是官方发布的驱动来装,有时可以适当的升级驱动,不过记得最新的不是最好的。
CPU降温软件,由于软件在运行时会利用所以的CPU空闲时间来进行降温,但Windows不能分辨普通的CPU占用和降温软件的降温指令之间的区别,因此CPU始终显示100%,这个就不必担心了,不影响正常的系统运行。
在处理较大的word文件时由于word的拼写和语法检察会使得CPU累,只要打开word的工具-选项-拼写和语法把”检察拼写和检察语法“勾去掉。
单击avi视频文件后CPU占用率高是因为系统要先扫描该文件,并检察文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾。 参考技术A
启动任务管理器。(桌面鼠标悬停任务栏,右键单击即可显示)
即可显示出进程的cpu占用情况。
参考技术B 任务管理器——>进程如何定位cpu占用率高的java线程
如何定位cpu占用率高的java线程
工具:
1
jstack:jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式。
pidstat :pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
top:或者jps找到java进程PID,或者 或者 ps -Lfp pid
通过%CPU和 TIME,判断占用的线程TID
找到TID,转换成16进制,然后在上面(jstack 进程id > ps.txt)导出的文件中搜索,就可以定位到具体的线程,类。
2、或者:
jstack -l pid > /home/1.tdump
再通过看线程 :pidstat -p pid(java进程ID) -u -d -t -w -h 1 1000
找到TID,转换成16进制,然后在上面(jstack 进程id > 1.tdump)导出的文件中搜索,就可以定位到具体的线程,类。
3、可以下载1.tdump到本地查找
以上是关于如何监视某一进程的CPU占用率的主要内容,如果未能解决你的问题,请参考以下文章