记录炬鲸 OBSERVE 在飞腾、鲲鹏 ARM64 架构及统信 UOS、麒麟 V10 上的适配过程,涵盖编译、依赖替换、性能验证和兼容性清单,并给出迁移落地建议。
信创环境的难点在于软硬件组合多、差异大。我们把炬鲸 OBSERVE 完整跑在了飞腾、鲲鹏(ARM64)搭配统信 UOS、银河麒麟 V10 的组合上,下面是适配过程的记录,供有同样需求的团队参考。
炬鲸 OBSERVE 的存储层基于 C++ 编写,采集端用 Go,前端是纯静态资源。适配 ARM64 的第一件事是把所有二进制重新编译,并确认第三方库在 ARM 上有官方或可靠移植。国产 OS 的 glibc、OpenSSL 版本普遍偏旧,编译时要用目标平台同版本的依赖,而不是在 x86 机器上交叉编译后直接拷贝——后者经常出现运行时 ABI 不一致的诡异崩溃。
统一用目标平台原生编译,避免交叉编译带来的 ABI 不一致:
cmake -DCMAKE_BUILD_TYPE=Release -DTARGET_ARCH=aarch64 ..
make -j$(nproc)
对国产 OS 上缺失或版本过低的库,逐项替换为国产或自编译版本:压缩用 zstd、加密用国密 SM 系列(通过 OpenSSL 的国密扩展或 GmSSL)。替换后跑完整的单元测试和压测,确认无回归。建议为每个依赖记录版本号和替换原因,形成一份可复现的构建清单,方便后续升级和审计。
在鲲鹏 920(64 核)上做压测,单机日志写入吞吐稳定在每秒数十万条,查询延迟与 x86 环境相当。CPU 占用和内存曲线平稳,说明 ARM 上的优化没有偷懒。验证重点放在多核并发下的写入放大和索引构建时间,这两项最容易在 ARM 上出问题;同时对比 x86 与 ARM 下相同数据集的查询结果,确认结果一致而非只是"能跑"。
落地前建议核对下面几项:
信创迁移不要一步到位,建议先选一个低风险业务试点,跑通采集、存储、查询全链路,再做全量切换。迁移期间新旧环境并行,用双写对比数据一致性,确认稳定后再下线旧环境。团队里最好有人长期跟国产 OS 的补丁节奏,国产发行版的更新频率和兼容性变化比主流发行版更频繁,早跟进能少踩很多坑。