1、jstat命令:
JDK自带的轻量级小工具,主要利用JVM内建的指令对Java应用程序资源和性能进行实时的监控,包括对Heap size和垃圾回收状况监控。
- jstat -class PId:显示加载class的数量,及所占空间等信息,class是在方法区
显示列名
具体描述
Loaded
装载的类的数量
Bytes
装载类所占用的字节数
Unloaded
卸载类的数量
Bytes
卸载类的字节数
Time
装载和卸载类所花费的时间
- jstat -gc <pid>: 可以显示gc的信息,查看gc的次数,及时
显示列名 | 具体描述 |
---|---|
S0C | 年轻代中第一个survivor(幸存区)的容量 (字节) |
S1C | 年轻代中第二个survivor(幸存区)的容量 (字节) |
S0U | 年轻代中第一个survivor(幸存区)目前已使用空间 (字节) |
S1U | 年轻代中第二个survivor(幸存区)目前已使用空间 (字节) |
EC | 年轻代中Eden(伊甸园)的容量 (字节) |
EU | 年轻代中Eden(伊甸园)目前已使用空间 (字节) |
OC | Old代的容量 (字节) |
OU | Old代目前已使用空间 (字节) |
MC | 元空间的容量 (字节) |
MU | 元空间目前已使用空间 |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
YGCT | 从应用程序启动到采样时年轻代中gc所用时间(s) |
FGC | 从应用程序启动到采样时old代(全gc)gc次数 |
FGCT | 从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT | 从应用程序启动到采样时gc用的总时间(s) |
- jstat -gccapacity <pid>:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小
- jstat -gcutil <pid>:统计gc信息,显示信息与上表格类似。
2、jmap命令:主要查看内存中内容
- jmap -heap <pid> 通过-heap选项,打印java堆的配置情况和使用情况,还有使用的GC算法(CMS)
- jmap -finalizerinfo <pid>:通过-finalizerinfo选项,打印那些正在等待执行finalize方法的对象。
- jmap -histo[:live] <pid> :通过histo选项,打印当前java堆中各个对象的数量、大小。
如果添加了live,只会打印活跃的对象。
3、jstack命令:
- jstack pid:查看该进程下的线程堆栈信息。
4、PS命令:
process status:ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
5、top命令:
可以监视系统中不同的进程所使用的资源。它提供实时的系统状态信息,PID、进程属主、优先级、%CPU、%memory