← 返回文章列表
信创 4 分钟阅读 炬鲸团队

在鲲鹏 + 麒麟 + 达梦环境部署炬鲸 OBSERVE 的实践

记录在鲲鹏 ARM 服务器、麒麟 V10 和达梦数据库组成的信创环境里部署炬鲸 OBSERVE 的完整过程,涵盖依赖替换、达梦适配、性能调优和踩坑清单,供同类国产化项目直接参考。

环境与版本

服务器是鲲鹏 920(64 核 ARM64),操作系统麒麟 V10 SP3,数据库达梦 DM8,中间件换成东方通。从 x86 换到 ARM 意味着所有镜像和二进制都要重新验证,不能直接沿用之前的 x86 部署包。开工前先确认三件事:所有依赖是否有 aarch64 版本、数据库驱动是否兼容、监控探针是否支持 ARM。

基础依赖替换

  • JDK 换成毕昇 JDK(华为基于 OpenJDK 的 ARM 优化版),压测中 GC 停顿比通用 OpenJDK 低约 20%;
  • 容器运行时用麒麟自带的 iSulad 或兼容 Docker 的 containerd,先确认内核支持 overlay2 存储驱动;
  • 时间同步统一走 NTP,ARM 服务器的时钟漂移对 trace 时间轴影响明显,务必校准后再上线。

镜像这一块要提前处理:很多第三方组件只发 x86 镜像,需要自己在 ARM 上重新构建。建议用 buildx 打 multi-arch 镜像,统一推到内网 Harbor,避免生产环境现场拉取失败。

达梦数据库适配

OBSERVE 的元数据默认落在 MySQL,切换到达梦需要替换 JDBC 驱动并调整 SQL 方言。达梦的 MySQL 兼容模式(COMPATIBLE_MODE=4)支持较好,建议开启并关闭大小写敏感:

-- 建库时指定兼容模式
CREATE DATABASE observe CASE_SENSITIVE=0 COMPATIBLE_MODE=4;

迁移分四步:先用达梦自带的 DTS 工具把 MySQL 的表结构和数据迁过来,再逐一核对字段类型映射,然后替换应用里的连接串和驱动,最后跑一遍全量回归。重点核对三点:

  1. 分页:达梦支持 LIMIT,但复杂子查询里的 LIMIT 要改成 ROWNUM 或 TOP;
  2. 字段类型:原来的 TEXT / JSON 要改成 CLOB / VARCHAR2,长度按日志元数据实际需要设定;
  3. 索引:达梦的中文全文检索要用自带的 CONTEXT 索引,先建好再灌数据,否则后续重建索引非常耗时。

性能调优

ARM 上压测暴露两个瓶颈。第一,麒麟默认的 swap 策略过于激进,建议把 swappiness 调到 10;第二,达梦的磁盘预读和页大小需要调整——arm64 默认 4K 页,开启 64K 大页后写入吞吐提升约 30%。

# 麒麟 V10 调 swappiness
echo "vm.swappiness=10" >> /etc/sysctl.conf && sysctl -p

大页配置要配合内核启动参数和达梦的 HUGE_PAGE 参数一起改,改完重启验证生效,不要只改一半。另外达梦建议开启异步 IO(AIO)并调大 redo 日志缓冲,对写入密集的可观测场景帮助明显。

踩坑清单

  1. 国产镜像仓库拉取慢,提前把镜像导入内网 Harbor 再分发;
  2. 达梦 JDBC 驱动版本必须与 DM8 小版本匹配,否则偶发连接泄漏;
  3. 麒麟默认开启 SELinux,记得放行 collector 的 4317 / 4318 端口;
  4. 验收前跑一轮全链路压测,重点看 trace 采样率和日志落盘延迟,别只测功能。