适用场景
国产平台的性能特征与 x86 有差异:单核性能、内存带宽、NUMA 拓扑都不一样。直接照搬 x86 的调优参数常出现「越调越慢」。正确做法是先跑基线,再按平台特征逐项验证。
配置步骤(鲲鹏 / 飞腾平台调优)
# 1) 平台与拓扑
lscpu | head -20
numactl -H
# 2) NUMA 绑定(示例:数据库进程绑到 node0)
numactl --cpunodebind=0 --membind=0 -- <启动命令>
# 3) 中断亲和(网卡中断分散到多核,避免集中在一颗核)
cat /proc/interrupts | head
# 可通过 irqbalance 或手工设置 smp_affinity
# 4) 检查是否有模拟层
file /usr/bin/java
uname -m
# 5) 基线压测(同脚本,新旧平台各跑一次)
# 记录:TPS、P95、CPU 利用率、GC 停顿
关键参数与建议
- 基线先行:同业务在信创平台与旧平台的性能差距要量化(TPS、P95、CPU 利用率)
- NUMA 感知:多路 CPU 平台注意 NUMA 绑定,数据库与 JVM 建议绑核并关闭自动均衡
- 内存:检查内存带宽是否成为瓶颈,避免过度依赖大堆
- JVM:选择适配该架构的 JDK 版本,GC 策略按堆大小与停顿要求选
- 数据库:参数按国产库推荐值起步,重点看连接数、缓冲区、并发度
- 编译与二进制:应用尽量用平台优化版本,避免跑 x86 模拟层
- 测试:压测必须在该平台实测,禁止用 x86 数据推算
- 结论:达不到要求时,评估架构优化(缓存、异步、读写分离)而不是硬调参数
容易踩的坑
- 直接把 x86 的 JVM 参数搬过来,GC 停顿反而变长
- 没有 NUMA 绑定,跨 node 访问内存,性能打折
- 网卡中断全落在一颗核上,CPU 使用率不均
- 应用跑在模拟层,性能只有原生的一半
- 用 x86 压测数据推算信创平台容量
- 调优不记录参数版本,回退时不知道改了什么
验证与巡检
numactl -H | head -12
cat /proc/interrupts | awk '{print $1, $2}' | head
mpstat -P ALL 1 3
# 目标:各核使用率不极端不均、无跨 node 内存热点
- 巡检:NUMA 配置符合建议、中断分布均衡、压测报告为该平台实测
小结
信创性能验收:有该平台实测的压测报告,性能满足业务需求或有明确的架构优化方案,而不是「差不多能用」。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。