查找CPU使用率过高的线程

1.在编写程序中有时候设置不恰当,休眠时间不够,一般情况下4核的电脑CPU使用率一直大于23%,8核的大于13%就有可能是这种情况

解决方法:

在VS查看并行线程
利用CPU使用工具ProcessExplorer,查看CPU占用率过高的线程
查看线程ID 和 并行线程ID 相同的
然后仔细看那个并行线程的代码

2.

查看代码中是否有死锁的部分,死循环或者是耗时代码,一些需要托管在其它硬件执行的程序

3.其它:

硬件原因:散热不良,驱动问题

病毒爬虫等外界恶意软件:

重复调用一个进程而没有结束:

时间: 2024-08-10 17:19:20

查找CPU使用率过高的线程的相关文章

Oracle查询语句导致CPU使用率过高问题处理

解决此问题的关键在于如何找到造成CPU使用率过高的SQL语句.步骤如下: 1.使用Process Explorer工具查看到Oracle进程,双击Oracle进程,在弹出的属性窗口的Threads选项卡中查看占用CPU较高的线程号(TID). 2.在PL/SQL工具中执行以下SQL语句: --根据sql_id获取对应的Sql语句(sql_text,sql_fulltext)select * from v$sqlarea where sql_id in ( --根据addr获取sql_id sel

服务器CPU使用率过高排查与解决思路

发现服务器的cpu使用率特别高 排查思路: -使用top或者mpstat查看cpu的使用情况# mpstat -P ALL 2 1Linux 2.6.32-358.el6.x86_64 (linux—host) 01/05/2016 _x86_64_ (24 CPU) 04:41:13 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle04:41:15 PM all 0.56 0.00 0.25 0.00 0.00 0.04

服务器CPU使用率过高的处理

最近发现公司服务器搭建的网站访问缓慢,服务器输入命令也反应慢,处理步骤如下: 1.通过top命令查看服务器CPU.内存.IO等使用情况 发现CPU基本在80%以上:内存还好,有富余:CPU平均加载率Load Average也是达到40左右 2.通过vmstat.iostat参看相关参数,确认是CPU占用很高,CPU不够用,当时以为服务器CPU被用完了,但是应用不是很多,两CPU是够用的 3.后来慢慢看进程和服务线程以及端口号占用和包发送,(w.procinfo.ps.uptime.netstat

linux CPU使用率过高或负载过高的处理思路

1.查看系统CPU负载及使用率的命令为:top    vmstat top 命令:查看进程级别的cpu使用情况. vmstat 命令:查看系统级别的cpu使用情况. 下面通过具体的图例来分析: 1.1  top 命令可以查看进程的CPU.内存等资源的使用情况.       在top命令运行过程中可以通过top的内部命令做显示方式的控制. 1- 开启或关闭显示所有cpu使用详细情况 l - 关闭或开启第一部分第一行 top 信息的表示 t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpu

记一次mysql 导致的CPU使用率过高问题

前几天更新完程序,测试功能时,发现应用登录非常慢,以为是应用有问题,但是等待较长一段时间后发现应用登录是ok的.检查应用日志,发现提示数据池已满,无法创建更多的连接.然后赶紧登录数据库检查, 1.top查看发现mysql进程cpu使用率竟然高达1300%多,我勒个去,这是什么鬼! 2.登录mysql查看线程 # show processlist 发现大量的从应用服务器过来的连接,而且全部是Query状态.想着看看慢查询日志有哪些SQL运行时间较长,导致连接一直保持Query状态. 3.开启慢查询

.NET定位CPU使用率过高问题

摘要: 当一个.net应用在生产环境CPU突然居高不下,如何快速准确的定位问题所在,并且对实时业务影响最小化?如何不抓Dump也不用live debug就可以知道你的应用在做什么?如何确认你的应用是由于哪个线程的执行造成的CPU升高,该线程正在执行什么代码? 分析:CPU升高的原因有很多, 1.有时候应用的负载大了,CPU自然会受业务请求的增加和增高: 2.有时候因为GC回收使用了过高的CPU资源: 3.有时候是某个线程执行的代码在某种情况下陷入了死循环: 4.有时候是因为锁争用太激烈,某资源上

代码死循环导致cpu使用率过高

1. top命令查看进程pid  27081 2. ps -mp pid -o THREAD,tid,time  (tid:31128) 3.printf “%x\n” number  #将tid转换成16进制,number代表tid, 输入tid:31128,输出7998 4. jstack pid 27081 #查看问题程序,nid和tid的16进制相同的程序 原文地址:https://www.cnblogs.com/changeEveryDay/p/11658809.html

一次java Cpu占用过高的排查

某一个项目CPU占用率一直很高,经常在40%-50%之间,最近比较闲,就开始了挂查工作. 1.通过 jstack命令输出进程的堆栈信息 jstack 2788 >C:\log.txt 将堆栈信息输出到log.txt "dubbo-remoting-client-heartbeat-thread-1" #46 daemon prio=5 os_prio=0 tid=0x000000005c53e000 nid=0x240c waiting on condition [0x00000

使用自动化shell脚本查找CPU使用的详细线程信息

项目加了些拦截器代码后,CPU报警,显示CPU使用率超过100%: 想要查找到底是哪些代码消耗的资源过多,从网上找到一篇博文,转载如下: http://blog.csdn.net/guixunlong/article/details/8450897 在知道哪个Java进程CPU占用率过高以后: 1.使用命令 jstack PID 命令打印出CPU占用过高进程的线程栈,例如jstack 12012 > 12012.txt 2.使用top -H -p PID 命令查看对应进程是哪个线程占用CPU过高