找回密码
立即注册
搜索
发回帖 发新帖

6390

积分

0

好友

781

主题
发表于 13 小时前 | 查看: 5| 回复: 0

国庆假期,我正在老家地里干活,一位国产厂商的行业大佬发来消息:某企要把 Intel 服务器换成国产 CPU,结果碰到了瓶颈。类似的问题在云栈社区的国产化话题里也时常被翻出来讨论。

在地里干活时接到技术需求

我先问了三句:

  • 是国产化替代,还是继续用开源 ES?
  • 什么版本?
  • 有没有官方对接?

对方回复:任务还是基于 Elasticsearch 调优。

根据我的了解,ES 在国产 CPU 上的调优,没大有团队去承接,接了也不敢兜底。

国产CPU运行Elasticsearch性能瓶颈图解

二、问题到底是什么

同一套 ES,换了国产 CPU,写入、检索、并发都不如以前。

别急着说"国产 CPU 不行",这种扣帽子行为咱们不干。这就像换了发动机,但变速箱、油品、驾驶习惯还是按旧车调的。我把问题拆成四层:

  1. 硬件:核多但单核弱,NUMA 复杂。
    有文章指出(链接见参考部分),ARM 服务器核数多,但单线程应用会跑得很慢。再看飞腾 FT2500 的测试:机器有 16 个 NUMA 节点,每节点只有 8 个核,绑核之后 QPS 翻倍,响应时间从 7.5 降到 2.2。这不是 ES 专项测试,但 ES 同样吃内存访问,机理相通。
    https://openeuler.csdn.net/6a0fe831662f9a54cb764d9e.html

  2. JVM:JDK 选错,吃大亏。
    腾讯云有篇文章专门讲 ES 在 ARM 上的第一个大坑,标题就是"不要再乱下载 JDK"。另外,JDK17 带向量化支持,ZGC 也是 NUMA 感知的。
    https://cloud.tencent.com/developer/article/1805906
    https://developer.aliyun.com/article/1646755

  3. ES 自身:版本、线程池、写入姿势。
    有人在鲲鹏上部署时发现,线上用的 7.3.0 旧版本,官网没有对应的 aarch64 包。还有调优文章提醒,processors 参数会强制改变 CPU 核数、突破写线程限制,要慎用,而国产 CPU 核数多、拓扑特殊,这里很容易踩坑。
    写入如果是"细水长流"式的小批量,会产生大量小文件,导致高频 flush 和 merge,在哪个平台都慢。
    https://developer.aliyun.com/article/975727
    https://heartsuit.github.io/2021/05/17/ElasticSearch-Install-on-OpenEuler.html
    https://blog.csdn.net/youanyyou/article/details/124743194
    https://zhuanlan.zhihu.com/p/55092525

  4. 压测方法:对比不公平。
    核数、副本数、refresh_interval、bulk 大小不一致,结论就没意义。

三、互联网上的同类问题

我查了 15 篇公开资料,归纳成五类问题:

问题 表现 常见解法
单核弱 + 核数多 merge、聚合、协调节点成瓶颈 合理拆分片,避免热点分片
NUMA / 中断 并发一高就抖,吞吐不线性 绑核、分节点多实例、软中断绑定
JDK / GC CPU 高但吞吐低 选验证过的 aarch64 JDK,G1/ZGC 对比压测
版本 / 安装包 找不到包、插件不兼容 固定"OS + JDK + ES + 插件"版本矩阵
运维兜底 出故障难定位、没人负责 引入有国产化经验的厂商

最后一类尤其值得注意。有信创用户反馈,信创服务器出故障后修复能力较弱,很多故障无法做根因分析。

另外,ARM 本身并不慢。Elastic 官方基准显示,Azure 上新一代 ARM 虚拟机的索引吞吐比上一代 ARM 虚拟机高 37%。

https://www.elastic.co/search-labs/blog/azure-arm-elasticsearch-performance

关键在具体芯片和调优,不在"ARM"这个标签。

四、整体方案:Easysearch

为什么建议"换底座",而不是"硬调 ES"?

  • 4.1 适配面(厂商口径)
    Easysearch 官方称适配华为、飞腾、海光、龙芯、鲲鹏、兆芯、申威,以及麒麟、统信、欧拉、深度等操作系统。

    Easysearch适配国产CPU架构与操作系统下载页面

  • 4.2 语法兼容(厂商口径)
    官方称兼容 ES 语法,业务代码无需调整。新的细节功能,如向量搜索,也在适配中。
    Easysearch 2.4.0 向量检索,我踩坑踩明白了......

  • 4.3 第三方评测
    2023 年 4 月,Easysearch 通过了中国信通院第一批搜索型数据库产品能力测试。

    Easysearch通过中国信通院搜索型数据库基础能力评测证书

  • 4.4 最关键的一点:责任主体清晰。
    出了性能问题,有人负责排查和兜底。

不适合的情况:

业务强依赖 ES 官方商业特性或最新版本;甲方要求保留 Elastic 官方订阅;兼容边界还没验证。

POC 建议:

同一份数据、同一套脚本,在目标国产 CPU 上分别跑 ES 和 Easysearch。分片、副本、refresh、bulk、并发、JDK 全部对齐,再对比写入、检索、并发和 P99。

五、自己搞:活儿多,还没人兜底

坚持用开源 ES 自己调,大致要做这些事:

  1. 固定 OS、内核、JDK、ES、插件的版本矩阵
  2. 对比不同 JDK 和 GC 组合
  3. 摸清 NUMA 拓扑,决定绑核还是多实例
  4. 调软中断、IO 调度、大页、swap
  5. 校准线程池和 processors
  6. 重做分片和索引策略,防小文件风暴
  7. 重做 refresh、translog、merge、bulk 的基线压测
  8. 验证分词器、插件、监控 Agent 的架构兼容性
  9. 建立与 Intel 基线对齐的公平压测
  10. 建立故障定位流程,做长稳压测
  11. 每次升级,从头再来一遍

再看"兜底"。国内大多团队都说不敢接,因为 ES 内核不是他们的,国产 CPU 的底层行为也不归他们管。

再看 Elastic 在国内的服务方式,公开资料里能看到它和云厂商的合作,包括 2018 年与腾讯云、2017 年与阿里云,以及 2026 年 8 月深化合作、推出腾讯云 ES 企业版。公开资料没有说明 Elastic 原厂是否直接提供国产 CPU 上的调优,但"合作方对接"这种模式,意味着你很难直接找到原厂对这件事负责。

结果往往是:每个环节的厂商都说自己没问题。

六、个人思考

  1. 先问清目标:要"国产化",还是要"变快"?
    如果是合规要求,目标就该是"达到业务 SLA",而不是"追平 Intel"。

  2. 性能差异,大概率是调优经验没迁移,不是 CPU 不行。
    我们过去十年的 ES 经验,大多建立在 x86 上。

  3. 对比要公平。
    核数不等于性能,参数不一致的对比没有意义。

  4. 兜底是真实成本。
    自己调优省下的采购费,会变成排障时间、停机风险和人力。

  5. 对自己的提醒:别把"推荐 Easysearch"写成"人人都该换"。
    更诚实的说法是:核心诉求是国产化合规、并且需要有人兜底,Easysearch 值得进 POC;核心诉求是保留 ES 原生能力,就要认真算自己调优的账。

国产化替换最难的,不是"能不能跑起来",而是"出了问题谁负责"。

参考链接

  1. 腾讯云开发者社区,ES 在国产化 ARM 环境下的第一个大坑 https://cloud.tencent.com/developer/article/1805906
  2. plantegg,飞腾 FT2500 性能测试 https://plantegg.github.io/2021/05/15/%E9%A3%9E%E8%85%BEARM%E8%8A%AF%E7%89%87%28FT2500%29%E7%9A%84%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/
  3. CSDN,飞腾 NUMA 性能调优 https://blog.csdn.net/d1306937299/article/details/128118982
  4. 阿里云开发者社区,极致 ES 调优 https://developer.aliyun.com/article/1646755
  5. 阿里云开发者社区,鲲鹏 openEuler 安装 ES7 https://developer.aliyun.com/article/975727
  6. CSDN,ES 写入优化 https://blog.csdn.net/youanyyou/article/details/124743194
  7. CSDN,龙芯部署 ES https://blog.csdn.net/qq_41324075/article/details/135523604
  8. 信息化观察网,服务器信创技术路线 10 问 https://www.infoobs.com/article/20231204/62897.html
  9. openEuler 社区,信创服务器深度解析 https://openeuler.csdn.net/6a0fe831662f9a54cb764d9e.html
  10. 掘金,Elastic 官方 ARM 性能博文译文 https://juejin.cn/post/7371809217790001206
  11. Elastic × 腾讯云(2018) https://www.elastic.co/about/press/tencent-cloud-elasticsearch-service-a-new-partnership-in-china-and-beyond
  12. Elastic × 腾讯云深化合作(2026) https://www.elastic.co/blog/elastic-and-tencent-cloud
  13. SiliconANGLE,Elastic × 阿里云(2017) https://siliconangle.com/?p=410883
  14. INFINI Easysearch 产品页(厂商) https://infinilabs.cn/products/easysearch/



上一篇:Easysearch 索引与映射设计速查:写代码前先定 text vs keyword 与分片
下一篇:ESP-Claw 芯片上的 AI Agent:ESP32 端侧聊天编程与烧录指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-18 23:26 , Processed in 0.067308 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表