JVM线上故障初步简易排查

线上故障主要包括cpu 磁盘 内存 网络等问题 

依次排查

1.cpu

1) 先用ps找到进程pid
2) top -H -p pid 找到cpu占用高的线程
3)printf '%x\n' pid 获得16进制的nid
4) jstack pid |grep 'nid' -C5 -color 显示堆栈信息
   关注WAITING TIMED_WAITING BLOCKED的信息

 

2.磁盘

df -hl查看磁盘状态

 

3.内存

free 检查内存情况

如果内存过多 通过第一步骤找到的异常来分析:
Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread
线程代码有问题  可能线程池忘记shutdown

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
堆内存溢出 代码有问题 可能是io未清 或去调大Xmx

Caused by: java.lang.OutOfMemoryError: Meta space
元区内存溢出 还是代码问题 也可以通过XX:MaxPermSize来进行调整

Exception in thread "main" java.lang.StackOverflowError
栈内存溢出 先排查代码 调大内存Xss

 

posted @ 2021-02-18 22:03  小白小白小白小白  阅读(111)  评论(0编辑  收藏  举报