L8.院士
6390
0
781
国庆假期,我正在老家地里干活,一位国产厂商的行业大佬发来消息:某企要把 Intel 服务器换成国产 CPU,结果碰到了瓶颈。类似的问题在云栈社区的国产化话题里也时常被翻出来讨论。
我先问了三句:
对方回复:任务还是基于 Elasticsearch 调优。
根据我的了解,ES 在国产 CPU 上的调优,没大有团队去承接,接了也不敢兜底。
同一套 ES,换了国产 CPU,写入、检索、并发都不如以前。
别急着说"国产 CPU 不行",这种扣帽子行为咱们不干。这就像换了发动机,但变速箱、油品、驾驶习惯还是按旧车调的。我把问题拆成四层:
硬件:核多但单核弱,NUMA 复杂。 有文章指出(链接见参考部分),ARM 服务器核数多,但单线程应用会跑得很慢。再看飞腾 FT2500 的测试:机器有 16 个 NUMA 节点,每节点只有 8 个核,绑核之后 QPS 翻倍,响应时间从 7.5 降到 2.2。这不是 ES 专项测试,但 ES 同样吃内存访问,机理相通。 https://openeuler.csdn.net/6a0fe831662f9a54cb764d9e.html
JVM:JDK 选错,吃大亏。 腾讯云有篇文章专门讲 ES 在 ARM 上的第一个大坑,标题就是"不要再乱下载 JDK"。另外,JDK17 带向量化支持,ZGC 也是 NUMA 感知的。 https://cloud.tencent.com/developer/article/1805906 https://developer.aliyun.com/article/1646755
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
processors
压测方法:对比不公平。 核数、副本数、refresh_interval、bulk 大小不一致,结论就没意义。
我查了 15 篇公开资料,归纳成五类问题:
最后一类尤其值得注意。有信创用户反馈,信创服务器出故障后修复能力较弱,很多故障无法做根因分析。
另外,ARM 本身并不慢。Elastic 官方基准显示,Azure 上新一代 ARM 虚拟机的索引吞吐比上一代 ARM 虚拟机高 37%。
https://www.elastic.co/search-labs/blog/azure-arm-elasticsearch-performance
关键在具体芯片和调优,不在"ARM"这个标签。
为什么建议"换底座",而不是"硬调 ES"?
4.1 适配面(厂商口径) Easysearch 官方称适配华为、飞腾、海光、龙芯、鲲鹏、兆芯、申威,以及麒麟、统信、欧拉、深度等操作系统。
4.2 语法兼容(厂商口径) 官方称兼容 ES 语法,业务代码无需调整。新的细节功能,如向量搜索,也在适配中。 Easysearch 2.4.0 向量检索,我踩坑踩明白了......
4.3 第三方评测 2023 年 4 月,Easysearch 通过了中国信通院第一批搜索型数据库产品能力测试。
4.4 最关键的一点:责任主体清晰。 出了性能问题,有人负责排查和兜底。
不适合的情况:
业务强依赖 ES 官方商业特性或最新版本;甲方要求保留 Elastic 官方订阅;兼容边界还没验证。
POC 建议:
同一份数据、同一套脚本,在目标国产 CPU 上分别跑 ES 和 Easysearch。分片、副本、refresh、bulk、并发、JDK 全部对齐,再对比写入、检索、并发和 P99。
坚持用开源 ES 自己调,大致要做这些事:
再看"兜底"。国内大多团队都说不敢接,因为 ES 内核不是他们的,国产 CPU 的底层行为也不归他们管。
再看 Elastic 在国内的服务方式,公开资料里能看到它和云厂商的合作,包括 2018 年与腾讯云、2017 年与阿里云,以及 2026 年 8 月深化合作、推出腾讯云 ES 企业版。公开资料没有说明 Elastic 原厂是否直接提供国产 CPU 上的调优,但"合作方对接"这种模式,意味着你很难直接找到原厂对这件事负责。
结果往往是:每个环节的厂商都说自己没问题。
先问清目标:要"国产化",还是要"变快"? 如果是合规要求,目标就该是"达到业务 SLA",而不是"追平 Intel"。
性能差异,大概率是调优经验没迁移,不是 CPU 不行。 我们过去十年的 ES 经验,大多建立在 x86 上。
对比要公平。 核数不等于性能,参数不一致的对比没有意义。
兜底是真实成本。 自己调优省下的采购费,会变成排障时间、停机风险和人力。
对自己的提醒:别把"推荐 Easysearch"写成"人人都该换"。 更诚实的说法是:核心诉求是国产化合规、并且需要有人兜底,Easysearch 值得进 POC;核心诉求是保留 ES 原生能力,就要认真算自己调优的账。
国产化替换最难的,不是"能不能跑起来",而是"出了问题谁负责"。
收藏0回复 显示全部楼层 举报
发表回复 回帖后跳转到最后一页
手机版|小黑屋|网站地图|云栈社区 ( 苏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 云栈社区.