目前遇到了elasticsearch间隔30到40天就会进行FGC(Full Garbage Collection全堆范围的垃圾回收)的问题.
现象:在30多天的时间范围内swap使用率慢慢攀升,当使用率达到触发FGC时,elasticsearch的性能急剧下降,处于勉强可用的状态, 说明jvm平时就使用到了swap,然而内存commit率并不高,可以调低swap的使用权重.
查询swap默认权重:
cat /proc/sys/vm/swappiness
swappiness,Linux内核参数,控制换出运行时内存的相对权重。swappiness参数值可设置范围在0到100之间。 低参数值会让内核尽量少用交换,更高参数值会使内核更多的去使用交换空间。默认值为60(参考网络资料:当剩余物理内存低于40%(40=100-60)时,开始使用交换空间)。