Easysearch 2.0.0 性能测试

news/2025/12/7 12:02:30/文章来源:https://www.cnblogs.com/infinilabs/p/19317896

概述

Easysearch 2.0.0 正式版带来了显著的性能提升和优化改进。通过与上一个稳定版本 1.15.6 的全面对比测试,我们使用 esrally 基准测试工具在 append-no-conflicts 场景下进行了深入的性能评估。测试结果表明,2.0.0 版本在索引性能、查询延迟、内存管理等核心指标上都实现了突破性改进。

核心性能提升

1. 索引性能更加稳定

写入效率提升 12.81%

Easysearch 2.0.0 索引性能表现更加稳定:

  • 累计索引 CPU 时间(所有主分片):从 225.1 分钟缩短至 196.3 分钟,减少 28.8 分钟(-12.81%
  • 索引吞吐量
    • 平均吞吐量从 180,868 docs/s 提升至 190,712 docs/s(+5.44%
    • 最大吞吐量从 198,184 docs/s 提升至 220,460 docs/s(+11.24%
    • 最小吞吐量从 164,263 docs/s 提升至 178,961 docs/s(+8.95%

累计索引 CPU 时间的减少,表明 2.0.0 版本在索引操作上更加高效,CPU 利用率更优。这意味着在相同硬件条件下,Easysearch 2.0.0 能够更快地完成数据摄入任务,对于需要处理大规模数据写入的场景具有重要意义。

Indexing Throughput (docs/s) - Higher is Better

v1.15.6
180,868
v2.0.0
190,712

2. Refresh 和 Flush 耗时缩短

Refresh 和 Flush 性能大幅改善

在 Elasticsearch/Easysearch 中,Refresh 和 Flush 操作对写入性能有直接影响。2.0.0 版本在这两个关键操作上实现了重大优化:

Refresh 性能提升 54.46%

  • 累计刷新时间:从 9.14 分钟降至 4.16 分钟
  • 中位刷新时间:减少 61.86%(从 0.133 分钟降至 0.051 分钟)
  • 最大刷新时间:减少 65.62%(从 1.12 分钟降至 0.39 分钟)

Flush 性能提升 40%

  • 累计刷盘时间:从 12.57 分钟降至 7.54 分钟
  • 中位刷盘时间:减少 57.57%
  • 最大刷盘时间:减少 31.93%

Cumulative Refresh Time (min) - Lower is Better

v1.15.6
9.14 min
v2.0.0
4.16 min

Cumulative Flush Time (min) - Lower is Better

v1.15.6
12.57 min
v2.0.0
7.54 min

这些优化使得 Easysearch 2.0.0 能够更高效地将数据持久化到磁盘,同时减少对写入操作的阻塞。

3. 垃圾回收(GC)性能优化

GC 效率显著提升

  • Young GC 次数:从 525 次降至 426 次,减少 18.86%
  • Young GC 时间:从 16.547 秒降至 15.985 秒,减少 3.40%
  • Old GC:两个版本均无 Old GC 发生,内存管理健康

更少的 GC 次数意味着:

  • 应用程序 STW(Stop-The-World)暂停更少
  • 更稳定的查询响应时间
  • 更好的系统吞吐量

查询性能提升

1. 基础查询延迟降低

多类型查询性能全面提升

查询类型 延迟指标 改进幅度
Default 查询 50 分位延迟 -11.40% (19.97ms → 17.69ms)
99 分位延迟 -15.23% (25.66ms → 21.75ms)
Term 查询 50 分位延迟 -19.88% (4049ms → 3244ms)
90 分位延迟 -18.73% (4137ms → 3362ms)
Range 查询 50 分位延迟 -31.71% (42.19ms → 28.81ms)
100 分位延迟 -64.68% (111.42ms → 39.35ms)

Query Latency Improvements (ms) - Lower is Better

Default Query (50th percentile)
v1.15.6
19.97ms
v2.0.0
17.69ms
Term Query (50th percentile)
v1.15.6
4049ms
v2.0.0
3244ms
Range Query (50th percentile)
v1.15.6
42.19ms
v2.0.0
28.81ms

2. 排序查询性能飞跃

时间戳排序查询优化高达 97%

Easysearch 2.0.0 在排序查询场景下实现了令人瞩目的性能突破:

降序排序(desc_sort_timestamp)

  • 50 分位延迟:从 516.07ms 降至 98.89ms(-80.84%
  • 90 分位延迟:从 544.84ms 降至 123.59ms(-77.32%
  • 99 分位延迟:从 603.14ms 降至 139.93ms(-76.80%

升序排序 + After 分页(asc_sort_with_after_timestamp)

  • 50 分位延迟:从 1272.58ms 降至 33.56ms(-97.36%
  • 90 分位延迟:从 1386.92ms 降至 37.25ms(-97.31%
  • 99 分位延迟:从 1474.98ms 降至 38.11ms(-97.42%

Sort Query Latency (ms) - Lower is Better

Desc Sort
v1.15.6
516ms
v2.0.0
99ms
Asc Sort + After
v1.15.6
1272ms
v2.0.0
 33ms

Force Merge 后的排序查询

在强制合并为单段后,排序查询性能更加出色:

降序排序(force-merge-1-seg)

  • 50 分位延迟:从 131,617ms 降至 115.01ms(-99.91%
  • 这一改进相当于从 2 分钟以上降至 0.1 秒!

升序 + After 分页(force-merge-1-seg)

  • 50 分位延迟:从 1387.01ms 降至 132.42ms(-90.45%
  • 90 分位延迟:从 1509.03ms 降至 159.05ms(-89.46%

3. 聚合查询性能提升

hourly_agg 聚合查询优化

  • 50 分位延迟:从 4192.57ms 降至 3866.07ms(-7.79%
  • 90 分位延迟:从 4303.51ms 降至 4053.80ms(-5.80%
  • 99 分位延迟:从 4475.32ms 降至 4269.91ms(-4.59%

4. Scroll 查询性能改进

大数据量遍历场景优化

  • 50 分位延迟:从 6511.65ms 降至 4623.87ms(-28.99%
  • 90 分位延迟:从 6881.70ms 降至 5972.79ms(-13.21%
  • 平均吞吐量:从 24.192 pages/s 提升至 24.485 pages/s(+1.21%

Scroll Query Latency (ms) - Lower is Better

50th Percentile
v1.15.6
6511.65ms
v2.0.0
4623.87ms
90th Percentile
v1.15.6
6881.70ms
v2.0.0
5972.79ms

5. 高百分位延迟大幅改善

极端场景下的稳定性提升

在衡量系统稳定性的高百分位延迟指标上,2.0.0 版本表现卓越:

场景 99.9 分位延迟改进 99.99 分位延迟改进 100 分位延迟改进
index-append -43.40% -65.35% -70.91%
(3364ms → 1904ms) (9618ms → 3333ms) (13427ms → 3906ms)

这意味着即使在最坏的情况下,2.0.0 版本也能提供更加稳定和可预测的性能表现。

范围查询性能提升

200s-in-range 和 400s-in-range 查询优化

  • 200s-in-range

    • 50 分位延迟降低 15.60%
    • 吞吐量提升 1.20%
  • 400s-in-range

    • 50 分位延迟降低 8.44%
    • 吞吐量提升 0.23%

存储优化

磁盘空间使用更高效

  • 存储大小:从 19.51 GB 降至 19.14 GB(-1.93%
  • 段数量:从 43 个增至 50 个(+16.28%)

虽然段数量略有增加,但总存储空间仍然减少,说明数据压缩和存储效率得到了提升。

Merge 策略调整

合并操作的权衡

需要注意的是,2.0.0 版本在 Merge 方面有以下变化:

  • Merge 次数从 184 次增至 192 次(+4.35%)
  • Merge 限流时间从 9.53 分钟增至 11.17 分钟(+17.20%

这是为了平衡写入性能和查询性能所做的策略调整。用户可以根据实际场景需求,通过以下参数进行优化:

{"index.merge.scheduler.max_thread_count": "1","index.merge.policy.max_merged_segment": "5gb"
}

技术架构改进

1. 段数据结构优化

通过将段元数据从堆内存迁移到堆外内存,Easysearch 2.0.0 实现了:

  • 更低的 JVM 堆压力
  • 更少的 GC 频率
  • 更稳定的内存使用模式
  • 更好的大数据集支持能力

2. 查询缓存优化

排序查询性能的巨大提升表明 2.0.0 版本可能在以下方面进行了优化:

  • 改进的 Doc Values 访问机制
  • 优化的排序算法
  • 更高效的分页实现
  • 智能的查询结果缓存

3. I/O 优化

Refresh 和 Flush 时间的大幅减少说明:

  • 改进了磁盘 I/O 调度策略
  • 优化了文件系统操作
  • 可能引入了更高效的批量写入机制

适用场景

Easysearch 2.0.0 的性能提升使其在以下场景中表现更加出色:

1. 大规模日志与事件流处理

  • 更高的写入吞吐量(+11.24% 峰值)
  • 更低的索引延迟
  • 适合 APM、日志分析、安全监控等场景

2. 时序数据存储与分析

  • 时间戳排序查询性能提升高达 97%
  • 适合 IoT、监控指标、金融交易数据等场景

3. 全文搜索应用

  • 多类型查询延迟降低 10-30%
  • 高并发场景下更稳定的响应时间
  • 适合电商搜索、内容管理系统等场景

4. 实时分析与 Dashboard

  • 聚合查询性能提升 5-8%
  • 更低的极端延迟,用户体验更好
  • 适合实时报表、业务 BI 等场景

5. 大数据量遍历与导出

  • Scroll 查询延迟降低 29%
  • 适合数据迁移、全量导出等场景

升级建议

兼容性

Easysearch 2.0.0 与 1.15.6 在 API 层面保持兼容,但建议:

  1. 测试环境验证:先在测试环境进行充分验证
  2. 配置审查:检查 Merge 相关配置是否需要调整
  3. 监控指标:升级后密切关注 GC、内存、延迟等指标
  4. 滚动升级:生产环境建议采用滚动升级方式

性能测试环境

本次测试使用 esrally 基准测试工具,测试配置如下:

  • 测试场景:append-no-conflicts
  • 测试时间
    • Baseline (1.15.6): 2025-11-14
    • Contender (2.0.0): 2025-11-21
  • 部署方式:External(独立部署)
  • CPU 绑定:使用 taskset 绑定 Easysearch 进程 0 到 15 cpu
  • JVM 配置-Xms16g -Xmx16g

总结

Easysearch 2.0.0 版本在性能方面取得了全面提升:

  • 索引性能提升 12.81%
  • 查询延迟降低 10-97%(不同场景)
  • 内存使用优化 100%(堆内段数据)
  • GC 频率降低 18.86%
  • Refresh 性能提升 54.46%
  • Flush 性能提升 40%
  • 高百分位延迟改善 43-70%

这些改进使得 Easysearch 2.0.0 成为一个更加高效、稳定和可靠的搜索与分析引擎,特别适合处理大规模数据和实时查询场景。无论是日志分析、时序数据处理,还是全文搜索应用,2.0.0 版本都能提供更优秀的性能表现。

我们强烈建议用户升级到 Easysearch 2.0.0,以获得这些显著的性能提升和更好的使用体验。


关于 Easysearch

INFINI Easysearch 是一个分布式的搜索型数据库,实现非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引查询、多语种支持、聚合分析等。Easysearch 可以完美替代 Elasticsearch,同时添加和完善多项企业级功能。Easysearch 助您拥有简洁、高效、易用的搜索体验。

  • 官网: https://easysearch.cn
  • 文档: https://docs.infinilabs.com/easysearch/main

作者:张磊,极限科技(INFINI Labs)搜索引擎研发负责人,对 Elasticsearch 和 Lucene 源码比较熟悉,目前主要负责公司的 Easysearch 产品的研发以及客户服务工作。
原文:https://infinilabs.cn/blog/2025/easysearch-2.0.0-performance-improvements/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABC435

过了三个题之后代码都不想写了,然后直接摆烂到比赛结束,掉大分。 C 竞选最乱搞做法。 对于第 \(i\) 个多米诺骨牌,可以影响到的区间的右端点是 \(a_i=\min\left\{a_i+i-1,n\right\}\)。定义一个 \(p\) 表示目前倒下…

散修带你入门鸿蒙应用开发基础:启程篇(上) - 鸿蒙

走进鸿蒙开发的世界 本阶段目标了解系统定位:掌握鸿蒙“面向全场景的分布式操作系统”核心定义,厘清“全场景”“分布式”的具体内涵,明确与传统单设备系统的设计理念差异。 熟知技术架构:熟悉鸿蒙四层架构(应用层…

PowerShell TOTP 身份验证器

简介双因素认证(2FA)已经成为如今最常见的安全机制,而基于时间的一次性密码(TOTP: Time-based One-Time Password)则是其中最广泛使用的技术之一。 我们平时使用的 Google Authenticator、Microsoft Authenticato…

分库分表是同一个实例内的多个不同库/不同表吗

“分库分表”绝不是简单地在 同一个 MySQL 实例 里放多个库和表。那不叫分库分表,那叫 玩具分库分表,没有任何意义。 下面我把场景讲透,让你彻底理解 分库、分表、为什么不能在同一个实例、生产怎么搞。✅ 1. 分库分…

基于STM32标准库的FreeRTOS移植与任务创建 - 详解

基于STM32标准库的FreeRTOS移植与任务创建 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

Launch X431 PRO Elite: Full System CAN FD Active Tester OBD2 Scanner for Euro/American Cars

Solve Modern Automotive Diagnostics Head-On with the Launch X431 PRO Elite Diagnostic Frustration? In the world of European and American automotive repair, time is critical—and outdated tools waste i…

linux 中gzip、bzip2、xz压缩、解压缩

001、gzip[root@PC1 test]# ls a.txt [root@PC1 test]# ll -h total 39M -rw-r--r--. 1 root root 39M Dec 7 11:28 a.txt [root@PC1 test]# gzip -c a.txt > a.txt.gz ## 压缩 [root@PC1 test]# ll -h…

2025 最新工业机器人应用服务商 / 厂家 TOP5 评测!科技赋能 + 全生命周期服务权威榜单发布,重构智能制造生态

随着工业机器人应用成为制造业智能化升级的核心驱动力,市场对专业服务商的需求持续攀升。本榜单基于技术创新力、行业适配性、服务效能、全生命周期管理四大维度,结合行业实践案例与技术白皮书数据反馈,权威解析202…

【Java EE进阶 --- SpringBoot】统一特性处理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Launch X431 PRO3 V+ Elite: Bi-Directional, ECU Coding Topology Mapping for Euro/Amer Vehicles

The Future of Automotive Diagnostics: Launch X431 PRO3 V+ Elite Delivers Precision, Speed, and Versatility Modern Vehicles Demand Modern Solutions Today’s European and American cars are more complex t…

linux单用户模式

linux单用户模式1.救援模式 可以用来修改系统配置文件,修改密码等 #方法一:开机时按e进入内核选项,在内核Linux16行把ro改成rw,行末删除到quite前追加rd.break,然后ctrl+x进入 #方法二:开机时按e进入内核选项,在…

20232405 2025-2026-1 《网络与系统攻防技术》实验八实验报告

20232405 2025-2026-1 《网络与系统攻防技术》实验八实验报告1. 实践内容(1)编写含有表单的前端代码,启用Apache,访问对应网页(2)在前端代码的基础上编写JavaScript验证用户名、密码,登陆后回显用户名,并尝试注…

实用指南:最小作用量原理MATLAB仿真

实用指南:最小作用量原理&MATLAB仿真2025-12-07 11:42 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bloc…

2025液体钙权威品牌推荐,首选inne液体钙

液体钙因吸收高效、胃肠刺激小、服用便捷等优势,已成为全年龄段补钙的首选剂型。但市场上产品良莠不齐,有的钙源难吸收,有的配方单一,有的添加成分不安全。本榜单聚焦“精准分龄+科学配方”双重维度,筛选出真正高…

吉他自学笔记

今天开始自学吉他 唱名音名对应表

为全球宝宝选对营养:央视关注+进博亮相,德国安心之选inne

关于inne是假洋牌吗的疑问,答案其实早已被品牌扎实的背景与市场实践所印证——inne是源自德国的正统高端儿童营养品牌,绝非所谓“假洋牌”。其德国身份有着明确的资质支撑,inne总部位于德国科研重镇萨尔布吕肯,核心…

惊艳进博,新品圈粉全球,德国国民品牌inne因你守护儿童健康

在全球儿童营养领域,源自德国的inne因你品牌始终以“科学实证”为核心标签,凭借严谨的科研态度与极致的产品品质,从德国超10000家药房的国民选择,成长为全球家庭信赖的营养伙伴。品牌深耕营养领域多年,始终秉承“…

2025 年 12 月数粒机厂家权威推荐榜:覆盖防爆/高速/高精度/智能/视觉全自动等新型设备,制药食品农业电子多行业定制化解决方案深度解析

2025 年 12 月数粒机厂家权威推荐榜:覆盖防爆/高速/高精度/智能/视觉全自动等新型设备,制药食品农业电子多行业定制化解决方案深度解析 在工业自动化与智能制造浪潮的持续推动下,数粒机作为物料精确计量的核心设备,…

2025 年 12 月数粒机厂家权威推荐榜:覆盖防爆/高速/高精度/智能/视觉全自动等新型设备,制药食品农业电子多行业定制化解决方案深度解析

2025 年 12 月数粒机厂家权威推荐榜:覆盖防爆/高速/高精度/智能/视觉全自动等新型设备,制药食品农业电子多行业定制化解决方案深度解析 在工业自动化与智能制造浪潮的持续推动下,数粒机作为物料精确计量的核心设备,…

儿童营养选对不踩坑!德国 inne以硬核品质展现品牌价值

在儿童营养市场中,“inne是哪个国家的品牌”“inne是不是假洋牌”是不少家长关心的问题。事实上,inne是源自德国、深耕本土多年的专业儿童营养品牌,其德国基因与市场根基,足以击碎“假洋牌”的不实猜测。作为德国知…