项目中的jvm问题

53 阅读1分钟

cpu占用率100%

  1. 查看linux系统cpu占用100%的进程id

top

  1. 查看cpu占用率100%的进程的具体线程cpu占用情况
    top -Hp 进程id
    这样就可以看到所有该进程id中的所有线程的cpu占用情况。这里如果有线程cpu占用率在80%以上,那么问题,就应该是这个线程导致的,这个时候,要记录下这里的线程id
  1. 线程id转换为16进制,因为jstack的参数是16进制的数据

printf "0x%x\n" <线程TID>

  1. 查看问题代码的位置

jstack <步骤3返回的结果> | grep -A 20

启动java程序时,当程序运行出现oom,生成dump文件

java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./oom.dump -jar <jar_file_path>