java jvm args and Command
jps 查询java进程
jsp -l 显示主类,
jsp -v查看jvm启动时的启动的显示参数列表(即开发人员手动配置的),
查看默认的参数列表可以使用
1.jinfo -flag PretenureSizeThreshold pid 查看pid进程中默认设置的PretenureSizeThreshold的值

(说明:PretenureSizeThreshold ,令大于这个设置值的对象直接在老年代分配,如果值为0,该参数不起作用,
对象仍然是先在新生代分配。设置这个参数目的是避免Eden区和2个Survivor区发生大量的内存复制
)
2.java -XX:+PrintFlagsFinal 查看参数默认值也是很好的选择(好像会打印很多东西,很难查找有用信息 加上 grep 筛选)
gcutil 查询垃圾收集的状况(以百分比显示)
java -gcutil pid 1000 10 表示:当前pid进程的gc日志。以1000毫秒的间隔,查询10次
生成堆存储快照 :(我觉得使用第二种方法会方便)
1.使用jmap命令,可以查看使用java堆信息,空间使用率,当前使用的是那种收集器等。
jmap [option] vmid (说明vmid就是pid进程号)
-heap: 显示java堆详细信息,使用的哪种回收器等,只在linux和Solaris平台有效

jhat命令可以分析dump文件(不推荐)

看到“Server is ready”即可以打开浏览器浏览 输入 http://localhost:7000

2.-XX:+HeapDumpOnOutOfMemoryError 参数,可以在虚拟机出现OOM异常后自动生成dump文件(会自动在项目目录下生成)

分析dump文件
jhat命令(不推荐) 分析内存的泄露问题主要会使用到Heap Histogram 和OQL页签功能
分析工具:VisualVM,Eclipse Memory Analyzer。

浙公网安备 33010602011771号