ALM-43204 Elasticsearch实例进程垃圾回收(GC)时间超过阈值
告警解释
系统每60秒周期性检测Elasticsearch实例进程的垃圾回收(GC)占用时间,当检测到Elasticsearch实例进程的垃圾回收(GC)时间超出阈值时,产生该告警。
平滑次数为1,Elasticsearch实例进程垃圾回收(GC)时间小于或等于阈值时,告警恢复。平滑次数大于1,Elasticsearch实例进程垃圾回收(GC)时间小于或等于阈值的90%时,告警恢复。
告警属性
告警ID |
告警级别 |
告警类型 |
业务类型 |
是否可自动清除 |
---|---|---|---|---|
43204 |
重要(默认阈值为30000ms) 紧急(默认阈值为60000ms) |
业务质量告警 |
Elasticsearch |
是 |
告警参数
类别 |
参数名称 |
参数含义 |
---|---|---|
定位信息 |
来源 |
产生告警的集群名称。 |
服务名 |
产生告警的服务名称。 |
|
角色名 |
产生告警的角色名称。 |
|
主机名 |
产生告警的主机名。 |
|
附加信息 |
Trigger Condition |
系统当前指标取值满足自定义的告警设置条件。 |
对系统的影响
Elasticsearch实例进程的垃圾回收时间过长,可能会影响Elasticsearch的索引数据读写性能变慢,严重情况下会出现请求超时。
可能原因
该节点Elasticsearch实例运行的业务负载高,或者堆内存配置不合理,导致进程GC频繁。
处理步骤
检查实例堆内存配置大小。
- 在FusionInsight Manager首页,选择“运维 > 告警 > 告警 > Elasticsearch进程GC时间超过阈值 > 定位信息”。查看告警上报的实例的IP地址。
- 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > Elasticsearch > 实例”,单击进入产生告警的实例页面,选择图标区域的“定制 > 清除全部 > 垃圾回收 > 实例GC统计时间”,单击“确定”,查看进程的GC时间是否持续大于阈值。
- 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > Elasticsearch”,进入Elasticsearch概述页面,单击左侧“配置”进入配置页面。
- 在配置页面右上方搜索框输入“GC_OPTS”单击页面将列出所有实例的“GC_OPTS”参数的配置项。
- 选中需要修改“GC_OPTS”值的实例,查看该实例值配置框后是否有查看差异化配置图标。
- 单击,在弹出的对话框中单击右侧单击确定保存。
- 将“GC_OPTS”参数值中的“-Xms”和“-Xmx”的值可参考如下说明进行调整。
Elasticsearch实例的GC参数配置建议:
- 建议将50%的内存留给Lucence缓存使用,50%的内存分配给Elasticsearch,对于大内存机器内存分配推荐30GB,不超过31GB,并确保JVM开启了指针压缩,可通过如下命令查询JVM的指针压缩是否开启:
java -server -Xms28G -Xmx28G -XX:+UseConcMarkSweepGC -XX:+UnlockDiagnosticVMOptions -XX:+PrintCompressedOopsMode -version
若返回的Compressed Oops mode是Zero based模式,则说明JVM指针压缩已开启,可增加所分配的内存大小:将28G调整为29G,再次查看指针压缩是否开启,直至分配的内存值是使指针压缩开启的最大值。
若返回的Compressed Oops mode是Non-zero based模式,则说明JVM指针压缩未开启,需要减小所分配的内存大小:将28GB调整为27GB,再次查看指针压缩是否开启,直至分配的内存值是使指针压缩开启的最大值。
- 建议“-Xms”和“-Xmx”设置成相同的值,这样可以避免JVM动态调整堆内存大小时影响性能。
- 如果“机器内存的50%<实例数*30GB”,可根据实际情况分配。
例如:某机器内存大小128GB,该机器上安装了3个Elasticsearch实例,则GC_OPTS参数应为(128GB*0.5)/3=21GB,并确保此时JVM指针压缩已开启。
- 建议将50%的内存留给Lucence缓存使用,50%的内存分配给Elasticsearch,对于大内存机器内存分配推荐30GB,不超过31GB,并确保JVM开启了指针压缩,可通过如下命令查询JVM的指针压缩是否开启:
- 修改完成后单击左上方“保存”在弹出的保存配置页单击“确定”保存配置。
- 在FusionInsight Manager界面,选择“集群 > 待操作集群的名称 > 服务 > Elasticsearch > 实例”,勾选配置状态为“配置过期”的实例,重启受影响的Elasticsearch实例。
- 等待5分钟观察界面告警是否清除。
- 是,操作结束。
- 否,执行11。
收集故障信息。
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。