JVM 启动参数学习笔记三
JVM 启动参数学习笔记三
一、JVM 启动参数——分析诊断
-XX:+-HeapDumpOnOutOfMemoryError 选项,当 OutOfMemoryError 产生,即内存溢出时,自动 Dump 堆内存。
用法:java -XX:+HeapDumpOnOutOfMemoryError -Xmx256m ConsumeHeap
-XX:HeapDumpPath 选项,与 HeapDumpOnOutOfMemoryError 搭配使用,指定内存溢出时 Dump 文件的目录。如果没有指定默认为启动 Java 程序的工作目录。
用法:java -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/ConsumeHeap 自动 Dump 的 hprof 文件会存储到/usr/local 目录下。
-XX:OnError 选项,发生致命错误时(fatal error)执行的脚本。
-XX:OnOutOfMemoryError 选项,抛出 OutOfMemoryError 错误时执行的脚本。
-XX:ErrorFile=filename 选项,致命错误的日志文件名,绝对路径或者相对路径。
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9901,远程调试。
二、JVM 启动参数——JavaAgent
Agent 是 JVM 中的一项黑科技,可以通过无侵入方式来做很多事情,比如注入 AOP 代码,执行统计等等,权限非常大。设置 Agent 的语法如下:
-agentlib:libname=[=options]启用 native 方式的 agent.
-agentpath:pathname[=options]启用 native 方式的 agent.
-javaagent:jarpath[=options]启用外部的 agent 库.
-Xnoagent 则是禁用所有 agent.
JAVA_OPTS="-agentlib:hprof=cpu=sameples,file=cpu.samples.log"
作用是:开启 CPU 使用时间抽样分析。
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/4aeba3963201d1609e186ac7f】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论