(1)JVM -Xmx 允許設置的最大內存大小
可以設置的最大JVM內存和JVM版本以及操作系統版本有關,一般Windows下1200-1500M左右,Linux下最大能到2600M;
具體可以使用命令 java -XmxXXXXM -version 來進行測試(如:java -Xmx1024M -version),然後逐漸的增大XXXX的值,如果執行正常就表示指定的內存大小可用,否則會打印錯誤信息
(2)查看jvm 允許通過jinfo工具動態修改的參數
如下參數可以通過jinfo動態修改
- $java -XX:+PrintFlagsFinal | grep manageable
- intx CMSAbortablePrecleanWaitMillis = 100 {manageable}
- intx CMSWaitDuration = 2000 {manageable}
- bool HeapDumpAfterFullGC = false {manageable}
- bool HeapDumpBeforeFullGC = false {manageable}
- bool HeapDumpOnOutOfMemoryError = false {manageable}
- ccstr HeapDumpPath = {manageable}
- bool PrintClassHistogram = false {manageable}
- bool PrintClassHistogramAfterFullGC = false {manageable}
- bool PrintClassHistogramBeforeFullGC = false {manageable}
- bool PrintConcurrentLocks = false {manageable}
- bool PrintGC = false {manageable}
- bool PrintGCDateStamps = false {manageable}
- bool PrintGCDetails = false {manageable}
- bool PrintGCTimeStamps = false {manageable}
使用jinfo工具,+表示向jvm增加參數,-表示取消這個參數
- $ jinfo -flag +HeapDumpBeforeFullGC 15920
- $ jinfo -flag +HeapDumpAfterFullGC 15920