1. 排查元空间内存溢出 :
在JVM中配置 -verbose:class 打印类加载信息。
什么条件触发GC-CMS为例
- 1. eden区满了?会不会触发GC?
- eden区满触发YGC,FGC会出发全代回收,即Eden区也会被回收
- 2. 老年代满了会不会触发GC?
- 会触发FGC
- 3. 直接缓冲区(堆外内存)满了会不会触发?
- 会触发GC
- 4. 元空间满了,会不会触发?
- 会触发FG
2. JVM分配多少内存合适?
- 1. JVM 分配内一般8G。内存太大:1. GC回收时间太长,可能导致STW时间增大。 2. 分析问题时,dump太大,不好定位。
- 2. Tomcat 一般1000线程 8G内存
- 3. 系统要预留20-30% 内存