初级
指定堆内存
-Xms2G -Xmx5G
用处
指定最小堆内存可以减少jvm自动扩容的时间,否则jvm会一次一次的扩容,耽误时间
指定最大堆内存可以确保每个java进程堆内存只使用这些,避免干预其他进程。
中级
打印加载类
参数
-XX:+TraceClassLoading
用处
当遇到累加载冲突导致的问题时(比如方法找不到,类找不到)可以通过该参数打印每个类加载时的日志,来定位是不是加载错了版本(冲突导致),或是其他原因没加载到。如果加载到了那看看是不是类本身的问题
高级
分析oom
参数
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=./java_pid<pid>.hprof
-XX:OnOutOfMemoryError=
-XX:+UseGCOverheadLimit
用处
当进程oom时,我们需要分析dump日志来分析原因,比如内存泄漏,或者是某些变量突然变大导致的。设置以上参数就可以在oom时自动打印dump日志至指定目录,定位时只需要取日志即可。