配置垃圾回收器

更新时间:
复制为 MD 格式

部分阿里云Elasticsearch(简称ES)实例提供了垃圾回收器的配置功能,如果您的ES实例堆内存较大,建议您将垃圾回收器切换为G1回收器,提高垃圾回收性能。本文介绍如何配置垃圾回收器。

背景信息

阿里云ES 8.x 以下版本默认采用 CMS 垃圾回收器(堆内存使用率达 75% 时触发)。若实例堆内存较大,建议切换为 G1 以优化性能。8.x 及以上版本已默认启用 G1 回收器,且配置不支持修改。

前提条件

实例要求如下:

  • 版本:6.7.0~8.x及以下版本

  • 数据节点内存:大于等于32 GB

    如何查看实例内存

    1. 进入目标实例的基本信息页面

    2. 节点可视化区域查看数据节点规格

    3. 总内存 = 单节点内存 × 数据节点数量

    如果不满足内存要求,可升级实例规格。具体操作,请参见升配集群

操作步骤

  1. 登录 阿里云 Elasticsearch 控制台

  2. 在左侧导航栏,单击Elasticsearch实例

  3. 进入目标实例。

    1. 在顶部菜单栏处,选择资源组和地域。

    2. Elasticsearch实例中单击目标实例 ID。

  4. 在左侧导航栏,选择 配置与管理 > ES集群配置

  5. 基础配置区域,单击垃圾回收器右侧的修改

    • 如果修改按钮为灰色禁用状态,可能原因:

      • 实例数据节点内存不满足≥32 GB 的要求。

      • 实例版本不在此范围:6.7.0~8.x及以下版本。

        此时需先升配实例或确认版本兼容性。

    重要
    • 更改垃圾回收器机制需确保集群处于正常状态,该操作会触发集群滚动重启,重启时长与集群规模、数据量及负载情况等有关系,建议在业务低峰期操作。

    • 如果集群索引存在副本分片且集群负载处于正常水平(CPU 使用率在 60% 左右,堆内存使用率在 50% 左右,load_1m 低于 CPU 核数),一般情况下,在集群变更过程中可持续对外提供服务。

    • 如果集群负载过高且索引没有副本,同时业务中存在大量的写入或查询等场景,在集群变更过程中,业务可能会出现偶发的访问超时现象。建议在客户端访问机制中配置重试机制,以减小对业务的影响。

  6. 修改配置页面,选择G1回收器 ,单击确定

    • 确定后,集群会自动重启。重启成功后,即可完成垃圾回收器的切换。

    • 预计重启时长:小集群约 10-30 分钟,大集群约 30-60 分钟(具体取决于集群规模和数据量)。

    • 滚动重启期间,集群仍可对外提供服务,但可能会出现短暂的响应延迟。

相关文档

切换垃圾回收器的 API 文档:UpdateAdvancedSetting