CPU高负载的排查办法

今天线上一个tomcat进程cpu负载100%。按以下步骤查出原因。

1.执行top -c命令,找到cpu最高的进程的id

2.执行top -H -p pid,这个命令就能显示刚刚找到的进程的所有线程的资源消耗情况。找到CPU负载高的线程tid 8627, 把这个数字转换成16进制,21B3。

3.执行jstack -l pid,拿到进程的线程dump文件。这个命令会打出这个进程的所有线程的运行堆栈。

4.用记事本打开这个文件,搜索“21B3”,就是搜一下16进制显示的线程id。搜到后,下面的堆栈就是这个线程打出来的。排查问题从这里深入。

今天最后排查出来的结果是“VM THREAD”把进程的资源耗尽。那只能说明是jvm在耗cpu。很容易想到是疯狂的GC,按关键字 “overhead” 搜一下系统日志, 发现 “GC Overhead”日志。问题明了了。jvm在疯狂的Full GC,而且有个大对象始终根节点路径可达,无法释放。

时间: 2024-10-22 17:18:46

CPU高负载的排查办法的相关文章

记一次php高负载问题排查经历

在最近一次项目中,后台跑了deamon来处理任务.之前一直没什么问题,在一次增加任务处理时间等监控上报后,deamon的机器出现高负载,平均在20以上,任务出现积压. 第一步先使用strace查看系统调用情况: strace -tt -T -c -p 31420 strace -c发现,系统时间主要耗费在rt_sigprocmask上,该函数是系统的信号屏蔽函数,一般使用在信号处理程序中,对信号进行屏蔽,保证信号处理程序不被打断.rt_sigprocmask为linux的系统调用函数,不对外直接

cpu高负载解决思路

服务器上tomcat启动之后,使用top查看cpu使用率,竟然达到200%,虽然服务器配置有8核,但是业务量一大,扛不住滴.于是,通过以下方法排查问题: 1.查看占用cpu高的进程数: 根据top命令,发现PID为14586的Java进程占用CPU高达200%,出现故障. 通过ps aux | grep PID命令,可以进一步确定是tomcat进程出现了问题.但是,怎么精确到问题所在呢? 首先显示线程列表: ps -mp pid -o THREAD,tid,time 找到耗时最高的线程id为:1

PHP-FPM高负载的解决办法

=================== 优化设置 ========================= When you running a highload website with PHP-FPM via FastCGI, the following tips may be useful to you : )如果您高负载网站使用PHP-FPM管理FastCGI,这些技巧也许对您有用:)1. Compile PHP’s modules as less as possible, the simpl

Linux系统CPU高负载处理

公司在阿里云的Linux服务器CPU负载高达90几,太吓人了,现在把处理的过程记录如下:1 通过top定位到耗费CPU资源较多的进程,假设进程名为"abc",PID为1112 定位到进程目录下 cd /proc/111 ll exe3 如果发现不是正常的应用,可以直接删除对应的可执行文件4 如果exe没有指向的可执行文件,则:ps -el | grep 111 查看其进程状态,如果是D或Z,则kill无法将其杀死,因此需要找到其父进程,并将父进程杀死(如果父进程确实不需要的话): 查看

hashMap的get()方法,错用并发造成cpu和负载高

一次线上问题的解决 线上发现服务cpu使用达到98%,负载高达200多,64核心cpu,下面介绍解决过程: 1.top命令查出占用cpu高的进程pid 2.使用jstack -l pid >dump.txt 获取dump文件 3.使用top -H查询出消耗资源的线程号tid(十进制线程id),转换为16进制 4.cat dump.txt | grep -10 tid(16进制) 查询出该进程号上下10行,定位问题并解决问题 ====================================

java程序启动时cpu和负载高探索

这两天协助运维定位1个监控程序CPU占用率达到150%的问题,过程曲折,结论简单,很有意思:) 首先我们来看一下cpu高时候截图: 可以看到红色框中的监控程序CPU占用率都很高,但其实这些监控程序的实现很简单:发送1个http请求,收到响应后简单判断一下响应码,然后打印监控结果,打印完成就退出了.每次监控都会重新由daemon程序拉起运行. 这么简单的业务占用这么高的cpu,怎么感觉都不太可能,于是拿到监控程序的源码开始定位. 第一个想到的是VisualVm.JConsole等工具,但由于程序很

关于csrss.exe和winlogon.exe进程多、占用CPU高的解决办法

原地址 http://blog.sina.com.cn/s/blog_912e77480101nuif.html 最近VPS的CPU一直处在100%左右,后台管理上去经常打不开,后来发现上远程都要好半天才反映过来,看到任务管理器有多个winlogon.exe进程和占用CPU高,百度查了下,说是有人在破解远程,最后按教程修改3389端口和改密码,重启后CPU直接降下来了,winlogon.exe进程也只有一个,一切恢复正常. 我太懒了,之前知道winlogon.exe进程多,但没这几天严重,今天查

淘宝网采用什么技术架构来实现网站高负载的

2012-11-15 12:30 佚名 转载 字号:T | T 下面就结合淘宝目前的一些底层技术框架以及自己的一些感触来说说如何构建一个可 伸缩,高性能,高可用性的分布式互联网应用. AD: WOT2014:用户标签系统与用户数据化运营培训专场 时间过得很快,来淘宝已经两个月了,在这两个月的时间里,自己也感受颇深.下面就结合淘宝目前的一些底层技术框架以及自己的一些感触来说说如何构建一个可 伸缩,高性能,高可用性的分布式互联网应用. 相关专题:淘宝双11背后高并发技术讨论 一 应用无状态(淘宝se

Expert 诊断优化系列------------------你的CPU高么?

现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是搜遍百度各种方法尝试个遍,可能错过诊断问题的最佳时机又可能尝试一堆方法最后无奈放弃. 怎么样让琐事缠身的程序维护人员,用最快的方式解决数据库出现的问题?怎么让我们程序员的痛苦降低到最小...每天喝喝茶水,看看新闻平安度过一天呢?本系列重要通过Expert for sqlserver工具讲解下数据库遇