近期打算整理一系列线上问题排查的文章,也做备忘用吧,虽然问题排查都有印象了,但是真遇到线上问题难免紧张,万一步骤弄错了就耽误时间了
CPU飙高问题一般通过以下几个步骤来排查
先来看看步骤1,定位cpu占比高的Java进程比较简单,可以直接通过top命令或ps命令,但由于top命令比较简单,不像ps命令有过多的参数,所以大多数会优先使用top命令。其实现在线上大多是每个服务都有单独的容器了,所以CPU飙高大部分是你的服务有问题(少数情况下有一些插件异常导致的CPU过高,也需要排查少部分情况,做到严谨)
详细描述
一:找到最耗CPU的进程
执行top -c,显示进程运行信息列表
输入P,进程按照CPU使用率排序
如图所示,最耗CPU的进程PID为32761
二:找到最耗CPU的线城
top -Hp 32761 显示一个进程的线城运行信息列表
输入P,线程按照CPU使用率排序,这里没图了&#x