码迷,mamicode.com
首页 > 其他好文 > 详细

推荐一款神器,助你秒级定位线上问题!

时间:2021-05-25 18:03:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:stack   log   反馈   elf   定位   遇到   atl   bee   进制   

背景

经常做后端服务开发的同学,或多或少都遇到过 CPU 负载特别高的问题。

尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和思路的同学可能登上服务器一通手忙脚乱,定位过程百转千回。

技术图片

对此,也有不少同学曾经整理过相关流程或方法论,类似把大象放进冰箱要几步

传统的方案一般是4步

  1. 1. top oder by with P:1040 // 首先按进程负载排序找到  axLoad(pid)
  2. 2. top -Hp 进程PID:1073    // 找到相关负载 线程PID
  3. 3. printf “0x%x\n”线程PID: 0x431  // 将线程PID转换为 16进制,为后面查找 jstack 日志做准备
  4. 4. jstack  进程PID | vim +/十六进制线程PID -        // 例如:jstack 1040|vim +/0x431 - 

但是对于线上问题定位来说,分秒必争,上面的 4 步还是太繁琐耗时了,有没有可能封装成为一个工具,在有问题的时候一键定位,秒级找到有问题的代码行呢?

当然可以!

工具链的成熟与否不仅体现了一个开发者的运维能力,也体现了开发者的效率意识。

淘宝的oldratlee 同学就将上面的流程封装为了一个工具:

show-busy-java-threads.sh

https://github.com/oldratlee/useful-scripts

可以很方便的定位线上的这类问题,下面我会举两个例子来看实际的效果。

快速安装使用:

  1. source <(curl -fsSL https://raw.githubusercontent.com/oldratlee/useful-scripts/master/test-cases/self-installer.sh)
     
     
     
     
     
    参考:https://blog.csdn.net/qq_42046105/article/details/115343601
     

推荐一款神器,助你秒级定位线上问题!

标签:stack   log   反馈   elf   定位   遇到   atl   bee   进制   

原文地址:https://www.cnblogs.com/xianshiwang/p/14806912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!