linux java cpu 内存 占用过高情况排查

java | 2019-09-13 10:02:39

在优化程序前,我们需要分析linux线上环境java程序cpu或内存占用的情况,来排查一下到底是哪里有问题。

1.首先查看占用内存占用排行

使用top 命令

1.png


2.查看此进程中占用CPU较高的线程排行

ps -mp PID(这里替换) -o THREAD,tid,time|sort -rn|head -n 20

1.png


从这里可以看出线程21154占用内存最高,我们继续。


3.将此线程id转换成16进制,为我们接下来的操作做准备。

printf "%x\n" tid

1.png


4.用jstack查看一下

jstack pid|grep tid-A 30


1.png

看出来这是tomcat的线程。


5.使用jstat命令查看进程的内存情况

jstat -gcutil 14063 2000 10

1.png

登录后即可回复 登录 | 注册
    
关注编程学问公众号