linux 分析进程占用CPU过高】的更多相关文章

重点是查看进程的线程中,哪个线程占用cpu过高,然后用gdb附加到进程,调试线程,看是否有死循环或者死锁等问题,步骤如下: 1 先用ps + grep找出该死的进程pid,比如 1706 2 top -H -p 1706,(top然后shift+H可以看出某个线程,左上角有提示:thread on 则为可查看线程)所有该进程的线程都列出来, 看看哪个线程pid占用最多,记下对应的线程号,如:1723 gdb attach 到进程号码(1706) (仍然在gdb中) info threads 结果…
很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因. 1.找出占用CPU最高的10个进程 ps aux | sort -k3nr | head -n 10 或查看占用内存最高的10个进程 ps aux | sort -k4nr | head -n 10 或者使用 top ,按 1 显示CPU列表,再按 shift+p 以CPU排序 top 2.对进程进行跟踪查看 查看进程打开的文件 lsof -p 进程PID 查看进程在处理的文件 ll /proc/进程PID…
上午收到报警,某台机器上的CPU负载过高,通过逐步的排查,解决了问题,下面记录一下整个排查的过程. 首先,登录上对应的机器,通过top命令找到占用CPU过高的进程ID,也就是PID,为29126, 然后通过ps命令和grep命令找到PID为29126对应的服务,具体命令如下: 结果如下: 找到对应的服务之后,可以直接查看服务打印的日志,没有发现任何异常,所以只能通过jdk提供的JVM工具来排查问题. 先通过jdk自带的工具jstack保存一下JVM进程对应的栈信息,具体的命令是: jstack…
由于使用的华为云的CDN加速,结果发现我的阿里云服务器突然卡顿,网页打开极慢.登陆华为云CDN管理后台发现最高带宽占用30M,流量短时间内达到10GB以上,这么大的流量我的服务器肯定扛不住啊.于是还跟华为云进行了一个撕逼,然后果断弃了华为云. 但是更换了其他CDN或者WAF之后,CPU占用依然居高不下,网上找了很多办法都不管用. 看了下是 PHP CGI 进程占用CPU最多,而且经过检测发现是 浏览器内核检测 网站的 PHP CGI 占用最高,其他的很少.然而看第三方网站统计,并没有很大的访问量…
1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu.   2.查找线程 使用top -H -p <pid>查看线程占用情况   3.查找java的堆栈信息 将线程id转换成十六进制 #printf %x 15664 #3d30   然后再使用jstack查询线程的堆栈信息 语法:jstack <pid> | grep -a 线程id(十六进制)   jstack <pid> | grep -a 3d30   这样就…
“WMI Provider Host“占用了过多CPU资源导致系统卡顿,该如何解决这个问题呢? 解决方法: 可以尝试关闭Windows防火墙服务来解决这个问题. 1.按住win+R,输入services.msc,回车. 2.在服务里面找到Windows Firewall,双击,在启动类型中选择“禁止”. 3.重启Win10系统,然后测试问题是否得到解决.…
Simon最近为公司服务器操碎了心 , 先是mysqld进程占用CPU过高 , 导致服务器性能变低 ,网站打开太慢.通过增加max_connections及table_cache解决了问题 ,随后发现memcache的CPU占用一直在50%左右 , 这种情况可不正常. 分析应该是memcache的内存大小还是默认配置,已经满足不了当前的大数据量的需要了,大量的新缓存需要进入,同时大量的旧缓存又需要被淘汰出来,一进一出导致CPU占用过多.进入注册表,找到:HKEY_LOCAL_MACHINE\SY…
1.系统的CPU使用率,不仅包括进程用户态和内核态的运行,还包括中断处理,等待IO以及内核线程等等.所以,当你发现系统的CPU使用率很高的时候,不一定能找到相对应的高CPU使用率的进程 2.案例分析,排查定位不容易发现的高消耗CPU的进程 (1).案例准备工作:两台装有linux系统的虚拟机,一台用作web服务器,一台用作web服务器的客户端 (2).预先安装docker,sysstat,perf,ab等工具,ab装在客户端机器上,其他的安装在web服务器端 (3).在第一台机器(web服务器)…
#!/bin/bash #输入占用CPU较高的进程号 pid=$ if [ -z $pid ] then echo "PID is NULL" exit fi #找到该进程中占用较高的前30个线程号 >mytmp.out #获取线程信息 while read line do tid=`echo $line | awk '{print $8}'` echo $tid if [ "${tid}" = "-" ] then echo "…
问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析: 1,程序属于CPU密集型,和开发沟通过,排除此类情况. 2,程序代码有问题,出现死循环,可能性极大. 问题解决: 1,开发那边无法排查代码某个模块有问题,从日志上也无法分析得出. 2,记得原来通过strace跟踪的方法解决了一台PHP服务器CPU占用高的问题,但是通过这种方法无效,经过google搜索,发现可以通过下面的方法进行解决,…