代码死循环导致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

时间: 2024-10-21 02:59:34

代码死循环导致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

Hession反序列化导致CPU占用飙高

背景 今天发布一个线上服务,暂且称之为O,发布完后,依赖O服务的2个服务C和W大量Time报警,并且这两个服务的CPU占用都飙到了40%左右,平时只有10%的样子. 这时去看O服务的监控,Time并没有升高,QPS反倒降了一半.同时C和W服务器日志中出现了大量的WARNING,信息如下: java.lang.ClassNotFoundException: com.我是不可描述的信息.PropertyAo Dec 02, 2016 6:24:33 PM com.alibaba.com.caucho

服务器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

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

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

查找CPU使用率过高的线程

1.在编写程序中有时候设置不恰当,休眠时间不够,一般情况下4核的电脑CPU使用率一直大于23%,8核的大于13%就有可能是这种情况 解决方法: 在VS查看并行线程利用CPU使用工具ProcessExplorer,查看CPU占用率过高的线程查看线程ID 和 并行线程ID 相同的然后仔细看那个并行线程的代码 2. 查看代码中是否有死锁的部分,死循环或者是耗时代码,一些需要托管在其它硬件执行的程序 3.其它: 硬件原因:散热不良,驱动问题 病毒爬虫等外界恶意软件: 重复调用一个进程而没有结束:

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

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

为什么空循环进程会导致CPU占有率很高?

最近在写一个时间戳系统记录系统中各个模块一些重要的时间节点.获取内核上报的时间戳是通过进程轮询的方式,但是发现该进程在实际运行中CPU占用率很高,其中就是一个死循环在读取设备文件,本以为是由于读系统调用太频繁的原因. 于是又写一个测试程序,其中仅仅是个空循环.结果发现该程序的CPU占用率居然在90%多! 针对这个问题我有2个疑问,对这些疑问的理解也记录在此,与大家分享. 1 linux系统是时间片调度算法,微观上所有可运行进程都是串行,不管进程中作何操作,该进程的时间片一到就切换到下一进程,那为

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

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

iOS之block mark (self removeFromSuperview 导致CPU使用率高达百分之百)

因为自己之前在block中需要递归调用自己本身,而没有用weak.导致在[self removeFromSuperview]方法时,CPU使用率一只高达百分之百..block一直持有self... fix: __weak 当前类 *weakSelf = self; [weakSelf 递归调用的方法]; 这样在remove时就不会一直持有self