Jjvisualvm
JDK自带的JVM查看信息,功能很强大,可以了解下
image.png
nohup java
-Xms64m #JVM启动时的初始堆大小
-Xmx128m #最大堆大小
-Xmn64m #年轻代的大小,其余的空间是老年代
-XX:MaxMetaspaceSize=128m #
-XX:CompressedClassSpaceSize=64m #使用 -XX:CompressedClassSpaceSize 设置为压缩类空间保留的最大内存。
-Xss256k #线程
-XX:InitialCodeCacheSize=4m #
-XX:ReservedCodeCacheSize=8m # 这是由 JIT(即时)编译器编译为本地代码的本机代码(如JNI)或 Java 方法的空间
-XX:MaxDirectMemorySize=16m
-XX:NativeMemoryTracking=summary #开启内存追踪
-jar app.jar > /dev/app.log &
jps命令参数
## 1000 = pid
jps -l
# 查看堆/方法区/线程等内存占用(必需启动内存追踪)
jcmd 1000 VM.native_memory
# 查看jvm默认值 Xmx Xms GC等
java -XX:+PrintFlagsFinal -version
java -XX:+PrintCommandLineFlags -version
# 查看gc次数/时间
jstat -gcutil 1000 / jstat -gc 1000
# 查看线程栈信息
jstack -l pid
# 可视化查看内存/线程的信息
jvisualvm / jconsole
# 导出dump文件
jmap -dump:format=b,file=heapdump.hprof 1000
使用jvisualvm可打开hprof文件