美文网首页
docker程序线上排查

docker程序线上排查

作者: 红玫瑰一双眼 | 来源:发表于2022-05-13 16:19 被阅读0次

    安装并启动Arthas

    容器中不存在jar包的情况

    docker exec -it  ${containerId} /bin/bash -c "wget https://arthas.aliyun.com/arthas-boot.jar && java -jar arthas-boot.jar"
    

    容器中已存在jar包的情况

    docker exec -it  ${containerId} /bin/bash -c "java -jar arthas-boot.jar"
    

    常用命令

    -n 很多命令都可以加,都是次数限制

    watch

    下面案列表示查看该方法的参数和返回值或者异常,统计5次,各层参数遍历3层
    '{params,returnObj,throwExp}' 查看参数、返回值、异常
    -x参数或者返回值的显示层数

    watch com.free.as.bus.controller.TestController test1 '{params,returnObj,throwExp}'  -n 5  -x 3 
    

    monitor

    下面案例表示每5s统计一次共统计三次
    -c 统计周期,单位:秒

    monitor -c 5 com.free.as.bus.controller.TestController test1  -n 3
    

    trace

    案例:统计方法耗时大于100毫秒并且不跳过JDK的方法
    '#cost > 100' 耗时大于100毫秒

    trace com.free.as.bus.controller.TestController test1 '#cost > 100' -n 5 --skipJDKMethod false 
    

    tt

    watch指令的托管版,方法调用情况无需实时查看,-n 参数是为了防止方法调用太猛导致jvm撑爆

    tt -t com.free.as.bus.controller.TestController test1 -n 3
    

    thread

    线程问题排查

    thread -b    找出当前阻塞其他线程的线程
    
    thread -n 3  展示当前最忙的前3个线程并打印堆栈
    

    相关文章

      网友评论

          本文标题:docker程序线上排查

          本文链接:https://www.haomeiwen.com/subject/cawkdrtx.html