- jps
启动一个web应用程序,用jps查看其进程id
- Jmap
1) jmap -histo pid #可以用来查看内存信息,实例个数以及占用内存大小
num:序号
instances:实例数量
bytes:占用空间大小
class name:类名称,[C is a char[],[S is a short[],[I is a int[],[B is a byte[],[[I is a int[][]
2)jmap -heap pid #查看堆信息
3)jmap ‐dump:format=b,file=eureka.hprof pid #生成堆dump
待补充..
也可以设置内存溢出自动导出dump文件(内存很大的时候,可能会导不出来)
1. -XX:+HeapDumpOnOutOfMemoryError
2. -XX:HeapDumpPath=./ (路径)
可以用jvisualvm命令工具导入该dump文件分析
- Jstack
用jstack加进程id查找死锁
jstack找出占用cpu最高的线程堆栈信息
待补充..
- Jinfo
查看正在运行的Java应用程序的扩展参数
查看jvm的参数
查看java系统参数
- jstat
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:
jstat [-命令选项] [vmid] [间隔时间(毫秒)] [查询次数]
1)jstat -gc pid #垃圾回收统计,可以评估程序内存使用及GC压力整体情况
2)堆内存统计
3)新生代垃圾回收统计
4)新生代内存统计
5)老年代垃圾回收统计
6)老年代内存统计
7)元数据空间统计
- jvisualvm工具
可以用jvisualvm命令工具导入dump文件进行分析
可以用jvisualvm自动检测死锁
远程连接jvisualvm
待补充..
- JVM运行情况预估
待补充..