windows系统本人在jdk的bin目录操作
1、jps 查看系统中的进程
2、jmap:
jmap -histo 进程号>D:/log.txt 查看内存信息、实例个数及占用内存大小,也可以不要后面的路径 在控制台展示
jamp -heap 进程号 查看进程的堆内存
3、top(linux中使用)
top 查看系统中占用CPU较高的进程
top -p 进程号 精确定位到进程 ,按"H"键查看进程中的线程
4、jstack
jstack 进程号 可查看是否有死锁 及 进程情况
jstack 进程号|grep -A 10 [16进制线程号] 3中的"H"按键查看的线程号(PID)转成16进制(有字母的话都是小写),可查看导致CPU升高的方法
通过jvm工具(双击jdk的bin目录下 jvisualvm.exe)也能查看死锁,选中VisualVM 点 线程;
5、jinfo
jinfo -flags 进程号 查看进程的JVM信息
jinfo -sysprops 进程号 查看进程的jdk信息
6、jstat
jstat -gc 进程号 查看系统内存使用及GC压力情况
jstat -gc 进程号 时间(毫秒) 次数 间隔*毫秒刷新、查看*次数 内存信息
如:jstat -gc 21968 1000 100 间隔1000毫秒 执行100次
S0C、S1C:survivor0、1区的内存空间大小
S0U、S1U:survivor0、1区的已使用空间大小
EC、EU:eden 区内存空间和已使用空间
OC、OU:old 区内存空间和已使用空间
MC、MU:元空间的内存空间和已使用空间
CCSC/CCSU:压缩类的内存空间和已使用空间(很少使用)
YGC、YGCT:从系统启动开始执行的young GC次数 及 总花费时间(秒)
FGC、FGCT:从系统启动开始执行的full GC次数 及 总花费时间(秒)
GCT:执行GC的总花费时间(秒)
jvm设置,设置堆内存并且将内存溢出日志 输出到指定目录,使用java的jvm工具(java的bin目录,双击jvisualvm.exe)可以导入dump文件
-Xms1000M -Xmx1000M -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\jvm.dump