--- title: "Easysearch 2.5.0 发布:升级 JDK 25,写入吞吐提升约 20%" date: 2026-10-16 lastmod: 2026-10-16 description: "Easysearch 2.5.0 正式发布,Bundle 安装包默认内置 JDK 25,继续兼容 JDK 21。geonames 测试中,相比 2.4.0,写入吞吐提升约 20%,常见查询 P99 延迟降低 30%~52%。本文介绍测试结果、部署与管理修复,以及升级时需要同步的 JVM 配置。" tags: ["Easysearch", "产品更新", "JDK 25", "版本升级"] summary: "INFINI Easysearch 2.5.0 正式发布。本次更新支持 JDK 25 并将其作为 bundle 安装包的默认 JDK,并修复部署、启动和管理界面中的多项问题。 在约 1,140 万条文档的 geonames 基准测试中,Easysearch 2.5.0 搭配 GraalVM 25,相比 Easysearch 2.4.0 搭配 GraalVM 21,批量写入吞吐提升约 20%。match_all、term 和 match_phrase 查询的 P99 延迟降低 30%~52%( 测试环境与版本说明)。 写入吞吐提升约 20% # 测试套件使用 geonames,它是 esrally 提供的基准测试,使用包含地名、人口、国家代码和经纬度等字段的数据,覆盖批量写入及多种查询。 在相同集群配置下,Easysearch 2.5.0 搭配 GraalVM 25.0.4,批量写入吞吐从约 12.9 万文档/秒提升到 15.5 万文档/秒。 Easysearch 与内置 JDK 写入吞吐(文档/秒) 吞吐提升 Easysearch 2.4.0 + GraalVM 21.0.9 129,281 基准 Easysearch 2." --- INFINI Easysearch 2.5.0 正式发布。本次更新支持 JDK 25 并将其作为 bundle 安装包的默认 JDK,并修复部署、启动和管理界面中的多项问题。 在约 1,140 万条文档的 geonames 基准测试中,Easysearch 2.5.0 搭配 GraalVM 25,相比 Easysearch 2.4.0 搭配 GraalVM 21,批量写入吞吐提升约 20%。`match_all`、`term` 和 `match_phrase` 查询的 P99 延迟降低 30%~52%([测试环境与版本说明](/blog/2026/easysearch-2-5-0-release/#benchmark-notes))。 ## 写入吞吐提升约 20% 测试套件使用[geonames](https://github.com/elastic/rally-tracks/tree/master/geonames),它是 esrally 提供的基准测试,使用包含地名、人口、国家代码和经纬度等字段的数据,覆盖批量写入及多种查询。 在相同集群配置下,Easysearch 2.5.0 搭配 GraalVM 25.0.4,批量写入吞吐从约 12.9 万文档/秒提升到 15.5 万文档/秒。 | Easysearch 与内置 JDK | 写入吞吐(文档/秒) | 吞吐提升 | | --------------------------------- | ------------------: | -------: | | Easysearch 2.4.0 + GraalVM 21.0.9 | 129,281 | 基准 | | Easysearch 2.5.0 + GraalVM 25.0.4 | 155,124 | +20.0% | 写入过程中,偶发慢请求的耗时也有所降低:各轮最慢 bulk 请求服务时间的中位数,从 2,095.5 ms 降至 230.1 ms,降低约 89%。 详细的测试环境说明见文末。 ## 常见查询的 P99 延迟降低 30%~52% 查询方面,得益于 JDK25 对 GC 等方面的优化,本轮测试的收益主要体现在长尾,也就是少数耗时较长的请求。 下面选取三种常见查询:`match_all` 匹配全部文档,`term` 按国家代码精确查询,`match_phrase` 按地名进行短语查询。查询定义见 [geonames 测试操作](https://github.com/elastic/rally-tracks/blob/master/geonames/operations/default.json)。 | 查询 | Easysearch 2.4.0 + GraalVM 21 的 P99(ms) | Easysearch 2.5.0 + GraalVM 25 的 P99(ms) | 延迟降低 | | ----------------------- | -----------------------------------------: | -----------------------------------------: | -------: | | `match_all` 全量匹配 | 16.1 | 7.8 | 51.6% | | `term` 精确查询 | 12.5 | 7.7 | 38.4% | | `match_phrase` 短语查询 | 12.0 | 8.4 | 30.0% | 详细的测试环境说明见文末。 ## Bundle 包默认内置 JDK 25 Bundle 包是包含 JDK 的安装包。Easysearch 2.5.0 的 Bundle 包默认内置 JDK 25。使用不含 JDK 的安装包时,同样推荐选择 JDK 25。 ## 部署与管理体验修复 本版本还修复了以下问题: - 用户名或密码包含中文时,UI 登录失败。 - 概览页在非 external 模式下错误显示“获取集群准入凭据”入口,现在仅在 Agent 托管的 external 模式显示。 - 审计日志列表为空时,导出提示显示翻译 key。 - 启动失败后进程持续运行,现在以非零状态退出,便于部署工具识别失败。 - Windows 下部分 HTTP 客户端初始化失败,以及关闭 HTTP TLS 时节点加入接口返回 `500`。 此外,面向 LogPilot 集成新增可选的 `ingest-pattern-tagger` 插件,用于在日志写入时识别模式并打标,支持变量抽取,并提供配套的 `pattern_restore` 搜索管道处理器。使用方式见[Pattern 打标处理器文档](https://docs.infinilabs.com/easysearch/main/docs/features/ingest-pipelines/index-processors/pattern-tagger/)。 完整变更见 [Easysearch 2.5.0 发布日志](https://docs.infinilabs.com/easysearch/main/docs/release-notes/easysearch/#250-2026-10-16)。 ## 升级提示 本次升级包含 JVM 配置的不兼容变更。如果保留旧的 `config/jvm.options` 或使用自定义配置目录,请以 2.5.0 发行包的配置为基础进行迁移,不要直接用旧文件覆盖新配置。如若继续使用 JDK 21,也必须同步这些变更,否则节点无法启动。 升级前请备份数据,并在测试环境验证现有插件和业务请求。JDK 选择、JVM 参数替换及配置覆盖检查,请按[升级到 2.5.0:JDK 与 JVM 安全配置](https://docs.infinilabs.com/easysearch/main/docs/upgrade/#%e5%8d%87%e7%ba%a7%e5%88%b0-250jdk-%e4%b8%8e-jvm-%e5%ae%89%e5%85%a8%e9%85%8d%e7%bd%ae)操作。 ## 性能测试环境说明 测试对比 Easysearch 2.4.0(内置 GraalVM 21.0.9)与 Easysearch 2.5.0(内置 GraalVM 25.0.4)。 测试集群使用 3 台虚拟机,每台配置 32 vCPU、32 GiB 内存,部署 3 个 Easysearch 节点。每节点固定 16 GiB 堆,使用默认 G1 垃圾回收器,开启 HTTPS 和安全功能。 数据集为 geonames,共 11,396,503 条文档。索引使用 3 个主分片、0 副本,写入使用 8 个 bulk 客户端。每轮清空测试数据并重新启动 JVM;查询前将每个分片合并为 1 个段,并检查堆大小和段数。 ## 获取新版本 Easysearch 2.5.0 安装包可从[下载页面](https://infinilabs.cn/download/) 获取。新部署推荐选择包含 JDK 25 的 Bundle 包,安装步骤见[快速开始](https://docs.infinilabs.com/easysearch/main/docs/quick-start/)。 {{% load-img "/img/blog/banner/join-easysearch-community.png" "" %}}