在完全兼容开源内核的基础上,腾讯云 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%。 |
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 |
查询性能优化 | 6.4.3、6.8.2、7.5.1、7.10.1 | ||
稳定性优化 | 可用性优化 | 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 | ||
滚动重启速度优化 | 6.4.3、6.8.2、7.5.1、7.10.1 | ||
在线切主 | 自研在线切主功能,用户通过 API 指定偏好 master,实现秒级在线切换,典型使用场景:
|
6.4.3、6.8.2、7.5.1、7.10.1 | |
成本优化 | 内存优化 | 6.8.2、7.5.1、7.10.1 | |
存储优化 | 5.6.4、6.4.3、6.8.2、7.5.1、7.10.1 |
本页内容是否解决了您的问题?