在实际使用中经常会有gc overhead异常,其原因是es的内存不足,在进行full gc时资源使用过多,导致心跳检测无法通过,被剔除集群,导致NoNodeAvailableException。
如图:
gc异常.png
在实际使用中,有以下几种处理方法:
1.增大jvm内存,这样使用gc的频次减少,但是full gc的时间更长
2.增加心跳检测的timeout时间,以避免检测节点为故障;
以下设置使用discovery.zen.fd前缀控制故障检测过程 :
设置 | 描述 |
---|---|
ping_interval | 节点被ping的频率。默认为1s。 |
ping_timeout | 等待ping响应的时间,默认为 30s。 |
ping_retries | 多少次ping故障/超时导致一个节点被视为故障。默认为3。 |
3.尽量避免大数据量写入
4.对于数据进行优化
5.避免创建大量索引
网友评论