大家好,本节主要是讲一下关于线上,我们在linux进行java应用程序针对内存或者CPU增高的原因进行排查的一些实战。
查看java的pid
<code>top /<code>
查看pid下的占用高的tid
<code>top -Hp pid /<code>
打印tid16进制
<code>printf "%x\n" tid /<code>
查看栈 输出到xx.log
<code>jstack pid|grep -A 2000 tid的16进制 > xx.log/<code>
查看gc 打印每2000ms输出一次,共10次
<code>jstat -gcutil pid 2000 10 /<code>
查看堆
<code>jmap pid jmap -heap pid # 推荐使用该命令,可以直接观看到运行过程中的变量增长情况 jmap -histo:live pid # 上述命令,如果打印数据过多,建议加一个 | more ,即可完成分屏查看 ... /<code>
通过以上的这些操作过程基本可以定位一些CPU高或者内存高的原因。