侧边栏壁纸
博主头像
福福不服博主等级

孩子会穿过大雨,去懂人间的道理。

  • 累计撰写 93 篇文章
  • 累计创建 101 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Arthas查询容器内什么代码导致docker容器cpu飙升

Monster
2023-07-02 / 0 评论 / 2 点赞 / 48 阅读 / 2872 字 / 正在检测是否收录...
温馨提示:
请确保在评论和互动中保持礼貌和尊重。避免使用侮辱性、歧视性或攻击性语言。我们鼓励建设性的讨论和意见交流。

Arthas查询容器内什么代码导致docker容器cpu飙升

Arthas 是一款阿里巴巴开源的线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率

这里演示cpu都正常状态,假设某一个49e32eb8a88a的cpu飙升120且持续不下降。

进入飙升的容器

docker exec -it ID sh

下载arthas

wget https://arthas.aliyun.com/arthas-boot.jar

输入ps查询java PID

PID   USER     TIME  COMMAND
    1 root      6:17 java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 /application.jar -Xmx1900m -Xms1900m -Xmn420m -XX:MetaspaceSize=240m -XX:MaxMetaspaceSize=240m -XX:+UseConc
 8072 root      0:00 sh
 8083 root      0:00 ps

查询到java PID 是 1,将下面的第一行PID替换成java PID 1并输入。

pid=PID;\
touch /proc/${pid}/cwd/.attach_pid${pid} && \
  kill -SIGQUIT ${pid} && \
  sleep 2 &&
  ls /proc/${pid}/root/tmp/.java_pid${pid}

然后启用arthas

java -jar arthas-boot.jar

结尾* [1],直接输入一个1会打印下面信息,进入arthas

1
[INFO] arthas home: /root/.arthas/lib/3.6.7/arthas
[INFO] Try to attach process 1
Picked up JAVA_TOOL_OPTIONS: 
[INFO] Attach process 1 success.
[INFO] arthas-client connect 127.0.0.1 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.                           
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'                          
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.                          
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |                         
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'                          

wiki       https://arthas.aliyun.com/doc                                        
tutorials  https://arthas.aliyun.com/doc/arthas-tutorials.html                  
version    3.6.7                                                                
main_class                                                                      
pid        1                                                                    
time       2023-03-08 15:48:02        

使用thread命令 ,查看当前线程信息,查看线程的堆栈

thread -n 个数 ,指定最忙的前 N 个线程并打印堆栈

这里是正常资源下演示的,所以最高的才0.39%。

2
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
  3. QQ打赏

    qrcode qq

评论区