线上排查问题的流程

48 阅读1分钟
  1. CPU占用过高排查流程

    1. 利用 top 命令可以查出占 CPU 最高的的进程pid ,如果pid为 28476
      image.png
    2. 然后查看该进程下占用最高的线程id【top -Hp 28476】 image.png
    3. 假设占用率最高的线程 ID 为 28486,将其转换为 16 进制形式 (因为 java native 线程以 16 进制形式输出) 【printf '%x\n' 28486】
      image.png
    4. 利用 jstack 打印出 java 线程调用栈信息【jstack 9876 | grep '0x1af4' -A 50 --color】,这样就可以更好定位问题
  2. 内存占用过高排查流程

    1. 查找进程id: 【top -d 2 -c】
    2. 查看JVM堆内存分配情况:jmap -heap pid
    3. 查看占用内存比较多的对象 jmap -histo pid | head -n 100
    4. 查看占用内存比较多的存活对象 jmap -histo:live pid | head -n 100