tencent cloud

文档反馈

内核版本发布记录

最后更新时间:2022-06-28 09:36:21

在完全兼容开源内核的基础上,腾讯云 Elasticsearch Service(ES)基于多场景大规模的丰富应用经验,围绕集群性能增强、稳定性提升、成本优化等方向,对 ES 内核进行了持续的深度研究和优化,并始终与开源社区保持着密切的交流。本文为大家介绍腾讯云 ES 的关键内核优化工作。

2022年4月发布的重点优化特性:

优化分类 优化策略 支持版本
性能优化 时序索引查询裁剪优化,时间范围检索从大范围遍历优化为边界定点裁剪,高基维时序范围搜索性能提升10倍+。 7.14.2
DSL 查询结果支持列式返回,大幅降低重复 key 冗余,网络带宽占用减少35%,性能提升20%。 7.14.2
节点间数据透传序列化优化,减少冗余的序列化开销,提升查询性能30%。 7.14.2
X-Pack 鉴权性能优化,通过特殊权限处理、缓存、延迟加载等机制消除 CPU 热点,提升查询性能30%+。 7.10.1、7.14.2
查询支持细粒度 block 级别采样优化,提升 Top-k、avg、min、max、histogram 等算子预估查询性能10倍+。 7.14.2
功能优化 查询 preference 参数优化,支持 _shards 和 custom_string 组合使用固定主副分片,确保评分场景查询结果稳定。 7.14.2
Keyword 字段超长内容截断优化,超长内容支持不报异常截断写入。 7.14.2
查询超时底层细粒度控制优化,避免大查询被主动取消或超时(查询需携带 timeout 参数)后继续占用集群资源。 7.10.1、 7.14.2
稳定性优化 修复查询流程中内存限流特定场景内存泄露问题、进一步优化内存限流策略,避免聚合场景打爆内存,提升集群稳定性。 7.14.2
修复节点脱离集群后长时间反复加入、踢出问题,提升集群稳定性。 7.10.1、7.14.2
优化节点、索引维度分片均衡策略,提升节点、索引层面的分片均衡能力,消除负载热点。 7.10.1、7.14.2
优化多盘场景分片搬迁均衡策略,提升多盘场景分片搬迁性能。 6.8.2、7.10.1、7.14.2
优化分片启动、分片失败任务优先级,避免索引长时间不可用。 6.8.2、7.10.1、7.14.2
集群扩展性优化,大幅提升分片数量、节点扩展能力,元数据变更、集群重启性能倍数级提升。 7.14.2
安全优化 修复 Log4j 安全漏洞。 全版本

2021年2月发布的重点优化特性:

优化维度 优化分类 优化策略 支持版本
性能优化 写入性能优化 分片定向路由优化,解决单索引多分片场景写入流程长尾分片问题,写入吞吐提升10%+,CPU 下降20%+。 6.8.2、7.5.1、7.10.1
查询性能优化 对查询结果进行裁剪,代替 filter_path,查询性能提升10%+。 6.8.2、7.5.1、7.10.1
稳定性优化 内存优化 大幅降低高并发写入、大查询导致节点卡死、集群雪崩问题,整体可用性提升至 99.99%。
  • 基于内存资源的 Netty 网络层高并发写入限流。快速回收查询、写入异常的请求所消耗内存,避免异常请求导致内存堆积。优化自研单个请求熔断器,避免单个大查询占用资源过多。
  • 基于 GC 负债管理及时自动重启内存彻底打满的节点。Lucene 文件类型内存映射模型可配置,根据不同的业务场景优化系统内存使用。
  • 6.8.2、7.5.1、7.10.1
    JDK、GC 优化 引入腾讯自研优化的 KONA JDK11,修复已知 JDK bug,提升 FGC 串行回收能力。 切换 G1 垃圾回收器,提升 GC 效率,减少 Old GC 导致的毛刺。 6.8.2、7.5.1、7.10.1
    元数据性能优化 mapping 更新任务优先级优化,解决高并发 mapping 更新任务堵塞导致大量请求堆积打挂节点问题。元数据异步落盘优化,提升元数据同步性能,避免索引创建、mapping 更新频繁超时。 6.8.2、7.5.1、7.10.1
    成本优化 存储优化 引入 zstd 压缩算法,压缩比提升30% - 50%,压缩性能提升30%。 6.8.2、7.5.1、7.10.1

    截至2020年7月腾讯云 ES 团队自启动内核研究至今的重点优化特性:

    优化维度 优化分类 优化策略 支持版本
    性能优化 写入性能优化 Translog 锁机制优化,总体写入性能提升20%。写入去重优化,segment 文件裁剪优化,带主键写入性能提升50%+。 7.5.1、7.10.1
    查询性能优化
  • 聚合性能优化,查询高效剪枝,排序场景 composite 聚合性能提升3 - 7倍。
  • 查询缓存优化,取消开销高、命中率低的数据缓存,实际场景查询毛刺从750ms降至50ms。
  • 合并策略优化,自研基于时序、大小相似性分层合并策略、冷分片自动合并策略,搜索场景查询性能提升40%+。
  • 查询 Fetch 阶段顺序抓取优化,提升缓存命中率,查询结果集较大场景,性能提升10%+。
  • 6.4.3、6.8.2、7.5.1、7.10.1
    稳定性优化 可用性优化
  • 接入层曲线平滑限流。
  • 协调节点汇聚子查询结果反序列化膨胀预估、内存检查。
  • 大聚合查询结果集流式检查,内存达到阈值熔断请求。
  • 自研单个请求熔断器(Single Request Circuit Breaker),避免单个大查询占用资源过多,避免单个大查询占用资源过多影响其它查询。
  • 大幅降低高并发写入、大查询导致节点卡死、集群雪崩问题,整体可用性提升至99.99%。
  • 6.4.3、6.8.2、7.5.1、7.10.1
    均衡策略优化
  • 引入基于索引、节点打散的均衡策略,优化集群新增节点导致分片严重不均问题。
  • 优化多盘(多数据目录)之间分片不均问题。
  • 提升集群扩容场景、多盘场景新建索引分片均衡性,减少人工运维成本。
  • 5.6.4、6.4.3、6.8.2、7.5.1、7.10.1
    滚动重启速度优化
  • 优化节点重启分片复用本地数据逻辑。
  • 精准控制预定延时时间内的分片拷贝恢复。 大集群单节点重启时间从10多分钟降至1分钟。
  • 6.4.3、6.8.2、7.5.1、7.10.1
    在线切主 自研在线切主功能,用户通过 API 指定偏好 master,实现秒级在线切换,典型使用场景:
  • 人工运维时发现当前 master 高负载,在线切换 master 至规格更高、负载低的节点。
  • 滚动重启时,master 节点放到最后重启,重启之前先将 master 角色快速切到别的节点再重启,服务影响从分钟级缩短到秒级。
  • 6.4.3、6.8.2、7.5.1、7.10.1
    成本优化 内存优化
  • 自研堆外 cache,实现 FST Off-Heap 优化。
  • 堆外 cache 保障 FST 回收策略可控。
  • 精准淘汰策略提高 cache 命中率。
  • 零拷贝加多级 cache 保障访问性能。
  • 大幅降低堆内存开销,GC 时长下降10%+,单节点磁盘管理规模可达50TB,读写性能基本不受影响。
  • 6.8.2、7.5.1、7.10.1
    存储优化
  • 自研 ID 字段行存裁剪,时序场景存储开销降低20%+。
  • 5.6.4、6.4.3、6.8.2、7.5.1、7.10.1
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持