Olsond

try to be alive

0%

jvm 内存分析

查看java进程的资源使用情况

$ top
$ ps aux

查看指定java进程的线程运行情况

1
2
3
4
5
6
7
8
9
10
11
$ top -Hp <pid>
$ ps -mp <pid> -o THREAD,tid,time
$ printf %x n #输出n的16进制

$ jstack -l <pid>|grep <tid> -A 30 # pid是进程id,tid是线程id(0x+16进制数) -A 30是输出指定行后30行的数据
$ jstat -gc <pid> #查看gc情况,各代内存使用大小
$ jstat -gcutil <pid> #查看gc情况,各代内存占用比%
$ jmap -heap <pid> #查看jvm的配置以及各区域的使用情况
$ jmap -histo <pid>#查看堆中的各对象占用情况
$ jmap -histo:live <pid> #查看队中活跃对象的占用情况
$ jmap -dump:format=b,file=文件名 <pid> #dump 日志,文件名后缀可以是dump或者jps等