这段时间开发环境Es新接了一个平台做测试,结果导致频繁gc,隔三岔五整个服务就会挂掉。
从最新日志里可以看到
eden space使用率98%,这就是服务宕机的原因。
先回顾一下eden space是什么,为什么eden space使用率98%的情况下from space, to space使用率这么低。
从上图可以看到,jvm中内存分区可以分为heap区和非heap区域。
heap区域包括:
- old space
- eden
- from space
- to space
非heap区域包括:
- permanent space
- code cache
- jvm stack
- local method stack
排查gc问题我们需要关注heap区域。
eden, from, to总体又称为年轻代,而from, to又组成Survivor幸存者区。那么大体来说jvm堆内存的区域划分为:
- 老年代
- 新生代
- Eden
- Survivor
- From
- To
一般情况下,新创建的对象都会被分配到Eden区(一些大