【Java】 CPU/内存 jstack/jstat

大家好,本节主要是讲一下关于线上,我们在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高或者内存高的原因。