线上机器cpu占用率100%问题排查

cpu

cpu占用率高,一方面可能是因为,程序是计算密集性的。比如大量的请求过来,每个请求有大量的正则计算,很计算的关联表排序。
还有代码中有死循环会导致cpu负载飙高

定位问题代码位置的步骤

  1. cpu负载高,首先会通过监控告知到我们
  2. top 指令查处cpu占用率高的进程pid
  3. ps -ef | grep pid 看出来是什么服务
  4. ps -Hp pid -o THREAD,tid,time 查看该进程下哪个线程占用率高
    这步是为了在日志中过滤,线程参数tid
  5. printf "%x\n" 转换tid为16进制(dump日志里边线程号是16进制)
  6. jstack pid | grep tid -A 30 用jvm的线程堆栈信息指令dump日志,在日志中过滤此线程id的相关日志,定位代码位置。

参考引用:http://www.blogjava.net/hankchen/archive/2012/05/09/377735.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容