使用JVisualVM分析OOM
在idea中設定vm option為:
-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
當出現oom時生成堆dump檔案。
使用jvisualvm執行如下程式:
public class OOMTest {
static class OOMObject {
// int size_1M = 1024 * 1024;
// Byte[] bytes = new Byte[size_1M];
}
public static void main(String[] args) throws InterruptedException {
Thread.sleep(1000 * 10);
List<OOMObject> list = new ArrayList<>();
while (true) {
// Thread.sleep(100);
list.add(new OOMObject());
System.out.println(list.size());
}
}
}
程式執行後,idea控制檯列印出:
540209
540210
540211
540212
540213
540214
540215
540216
540217
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid41805.hprof ...
Heap dump file created [21011140 bytes in 0.195 secs]
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2245)
at java.util.Arrays.copyOf(Arrays.java:2219)
at java.util.ArrayList.grow(ArrayList.java:242)
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:216)
at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:208)
at java.util.ArrayList.add(ArrayList.java:440)
at com.hao.laker.study.gc.OOMTest.main(OOMTest.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Process finished with exit code 1
將dump檔案使用jvisualvm開啟,分析如下:
相關文章
- OOM分析之問題一)OOM
- OOM分析之問題定位(二)OOM
- 十一、論jvisualvm使用的重要性LVM
- 使用jvisualvm來遠端觀察Java程式LVMJava
- 一次線上OOM問題分析OOM
- 使用jvisualvm監控Java程式(本地和遠端)LVMJava
- OOMOOM
- 使用Netty模擬發生OOMNettyOOM
- jvisualvm監控tomcatLVMTomcat
- JVM調優之JConsole和JVisualVM工具使用JVMLVM
- oom killerOOM
- 10種常見OOM分析——手把手教你寫bugOOM
- OOM(Out Of Memory)OOM
- inmemory OOM了OOM
- jmeter學習指南之OOM和監聽器使用JMeterOOM
- 有效避免OOM--合理使用軟引用和弱引用OOM
- OOM--OUT OF MEMORYOOM
- AIX OOM問題AIOOM
- JVM調優——JVM監控工具jvisualvm的使用及GC外掛安裝JVMLVMGC
- 關於android 使用bitmap的OOM心得和解決方案AndroidOOM
- Linux OOM 機制LinuxOOM
- tikv oom排查過程OOM
- hive job oom問題HiveOOM
- GPDB-疑難雜症-使用資源組入庫OOMOOM
- jvisualvm.exe監控工具安裝外掛LVM
- 原來OOM的罪魁禍首是C程式碼---android out of memory(OOM)OOMC程式Android
- Mysql中使用流式查詢避免資料量過大導致OOMMySqlOOM
- Trino Master OOM 排查記錄ASTOOM
- 深入理解JVM之OOMJVMOOM
- 如何防止 Elasticsearch 服務 OOM ?ElasticsearchOOM
- IgniteFAQ-9-DataRegion OOMOOM
- OOM(Out Of Memory)是什麼?OOM
- jvisualvm遠端監控Linux下的tomcatLVMLinuxTomcat
- 使用 jvisualvm 遠端監控服務 JVM (jmx+jstatd)方法(k8s容器版)LVMJVMJSK8S
- iOS開發實踐-OOM治理iOSOOM
- CentOS 配置OOM監控報警CentOSOOM
- OOM的起點到終點OOM
- JVM讀書筆記之OOMJVM筆記OOM