部分阿里云Elasticsearch(简称ES)实例提供了垃圾回收器的配置功能,如果您的ES实例堆内存较大,建议您将垃圾回收器切换为G1回收器,提高垃圾回收性能。本文介绍如何配置垃圾回收器。
背景信息
阿里云ES 8.x 以下版本默认采用 CMS 垃圾回收器(堆内存使用率达 75% 时触发)。若实例堆内存较大,建议切换为 G1 以优化性能。8.x 及以上版本已默认启用 G1 回收器,且配置不支持修改。
前提条件
实例要求如下:
版本:6.7.0~8.x及以下版本
数据节点内存:大于等于32 GB
如何查看实例内存:
进入目标实例的基本信息页面
在节点可视化区域查看数据节点规格
总内存 = 单节点内存 × 数据节点数量
如果不满足内存要求,可升级实例规格。具体操作,请参见升配集群。
操作步骤
在左侧导航栏,单击Elasticsearch实例。
进入目标实例。
在顶部菜单栏处,选择资源组和地域。
在Elasticsearch实例中单击目标实例 ID。
在左侧导航栏,选择。
在基础配置区域,单击垃圾回收器右侧的修改 。
如果修改按钮为灰色禁用状态,可能原因:
实例数据节点内存不满足≥32 GB 的要求。
实例版本不在此范围:6.7.0~8.x及以下版本。
此时需先升配实例或确认版本兼容性。
重要更改垃圾回收器机制需确保集群处于正常状态,该操作会触发集群滚动重启,重启时长与集群规模、数据量及负载情况等有关系,建议在业务低峰期操作。
如果集群索引存在副本分片且集群负载处于正常水平(CPU 使用率在 60% 左右,堆内存使用率在 50% 左右,load_1m 低于 CPU 核数),一般情况下,在集群变更过程中可持续对外提供服务。
如果集群负载过高且索引没有副本,同时业务中存在大量的写入或查询等场景,在集群变更过程中,业务可能会出现偶发的访问超时现象。建议在客户端访问机制中配置重试机制,以减小对业务的影响。
在修改配置页面,选择G1回收器 ,单击确定 。
确定后,集群会自动重启。重启成功后,即可完成垃圾回收器的切换。
预计重启时长:小集群约 10-30 分钟,大集群约 30-60 分钟(具体取决于集群规模和数据量)。
滚动重启期间,集群仍可对外提供服务,但可能会出现短暂的响应延迟。
相关文档
切换垃圾回收器的 API 文档:UpdateAdvancedSetting