首批通过分布式安全可靠测评,为关键业务系统打造
国产信创海光 4 号芯片物理服务器装机推荐设置及必要检查
更新时间:2026-07-01 08:26
适用芯片类型
Hygon C86 7490 64-core Processor(单颗 64c2路2超线程=256c,双路开启了 HT 超线程)。
Hygon C86 7490 64-core Processor(单颗 64c4路2超线程=512c,4 路开启了 HT 超线程)。
Hygon C86 7493 56-core Processor(单颗 56c2路2超线程=224c,2 路开启了 HT 超线程)。
Hygon C86-4G (OPN: 7492C)(单颗 56c2路2超线程=224c,双路开启了 HT 超线程)。
Hygon C86 7470 48-core Processor(单颗 48c2路2超线程=192c,2 路开启了 HT 超线程)。
Hygon C86 7480 64-core Processor(单颗 64c2路2超线程=256c,双路开启了 HT 超线程)。
Hygon C86-4G/H (OPN:7447V)(单颗 96c2路2超线程=384c,双路开启了 HT 超线程)。
BIOS 操作说明
服务器启动时可以按
Esc或Del或F4键进入BIOS界面Press F4 or DEL to enter Setup。如果想要查看
BIOS中的隐藏配置项,可以在键盘上按Ctrl加F11键。F1键:查看帮助(F1:General Help)。F3键:恢复默认值(F3:Optimized Defaults)。
BIOS相关设置
说明:不同主机机型的 BIOS 界面可能会存在差异,下面的设置路径和界面仅供参考。
开启超线程 SMT: Chipset
>CORE Common Options>SMT Mode>Enabled。开启 Core Performance Boost 核心性能提升(CBP): Chipset
>CORE Common Options>Core Performance Boost>Auto。关闭 P-State Control: Chipset
>CORE Common Options>Fix P-State>P0(关闭 P-State 控制,这样就只工作在 P0 模式,P0 是最大频率状态)。关闭 C-state Control: Chipset
>CORE Common Options>CPU C-state Control>Disabled。关闭 DF C-state Control: Chipset
>DF Common Options>DF C-state Control>Disabled。BIOS 中关闭预取(CPU Prefetcher): Prefetcher settings
>L1 * HW Prefetcher/L2 * HW Prefetcher > Disabled。

- 开启 NUMA: Chipset
>DF Common Options>Memory interleaving>Die(使用 Die 交织的 NUMA 策略)。
说明:如果数据库进程、线程做了 Numaware 感知(比如 OceanBase 内核参数开启了 _enable_numa_aware),NUMA 开启的策略建议设置为 Channel interleaving(对应默认的 Auto 选项),否则选 Die interleaving(系统会被识别为 2 个 NUMA Nodes)。
- 开启 IOMMU: Chipset
>NBIO Common Options>IOMMU>Enabled。
注意:在部分机型的主板上(如浪潮英政服务器 CS5280H3),如果将 Performance Mode 设置为高性能模式的话,会自动联动关闭 IOMMU,IOMMU 关闭的话就会出现 255 以上的 CPU Core 离线和不支持 x2apic 的问题,严重影响整机性能。如果打开高性能模式后,IOMMU 选项就会自动消失并连带关闭,这个也是之前设置高性能模式后 lscpu 显示最后一个 CPU Core Offline 以及整机性能较差的原因。正确的配置方法应该是将高性能模式切换为自定义模式,同时设置 P-State 为 P0。
关闭 SVM 虚拟化功能: Chipset
>CORE Common Options>SVM Control>Disabled。关闭 SR-IOV: Advanced
>PCI Configuration>Global SR-IOV Support>Disabled。
OS 内核相关设置
待操作系统安装好之后以用户设置内核启动参数:
增加内核参数 "nohz=off"
==># grubby --update-kernel=ALL --args="nohz=off"。增加内核参数 "idle=nomwait"
==># grubby --update-kernel=ALL --args="idle=nomwait"。增加内核参数 "iommu.passthrough=1"
==># grubby --update-kernel=ALL --args="iommu.passthrough=1"。关闭透明大页内存: 增加内核参数 "transparent_hugepage=never"
==># grubby --update-kernel=ALL --args="transparent_hugepage=never"。
如果压测时发现系统硬件时钟源出现了从 tsc 跳变为 hpet 的情况,可以再额外配置下:
- 增加内核参数 "clocksource=tsc tsc=reliable tsc=nowatchdog"
==># grubby --update-kernel=ALL --args="clocksource=tsc tsc=reliable tsc=nowatchdog"。
最后重启机器生效。
【重要】如何检查上面的改动是否符合预期
检查本机时间和系统时钟源是否均正常
[root@observer1 ~]# timedatectl
Local time: Thu 2025-11-13 22:50:01 CST
Universal time: Thu 2025-11-13 14:50:01 UTC
RTC time: Thu 2025-11-13 14:50:01
Time zone: Asia/Shanghai (CST, *0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
[root@observer1 ~]# date -R
Thu, 13 Nov 2025 22:50:05 *0800
[root@observer1 ~]# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc
如果 cat /proc/kallsyms | grep -i m4h 命令的执行结果为空,则代表当前操作系统的内核未包含针对海光 4 号芯片的 4 号补丁,导致内核很多调用紊乱,包括 lscpu 命令的输出结果可能都是不正确的,严重影响整机的性能,需联系海光技术支持进行操作系统的升级。
备注
根据海光服务器厂家反馈,目前只有如下的 OS 版本中包含了针对 Hygon 4 号芯片的 4 号补丁。
| OS 版本 |
|---|
| Anolis OS 8.9 (Kernel-5.10) |
| BigCloud Enterprise Linux V21.10 U4(x86_64) |
| CentOS 8.3 (64 bit) |
| NingOS V3 1.0 |
| openEuler 22.03 LTS SP3 |
| openEuler 24.03 LTS |
| Rocky Linux 9.3 |
| 凝思安全操作系统 V6.0.99 |
| 红旗 Asianux 服务器操作系统 V8.8 (Kernel-5.10) |
| 统信 UOS 服务器版 V20 (1070a) (Kernel-4.19) |
| 统信 UOS 服务器版 V20 (1070e) (Kernel-4.19) |
| 银河麒麟高级服务器操作系统 V10 SP3 Halberd (2403) |
| 银河麒麟高级服务器操作系统 V10 SP3 Lance(kernel 版本需 >= 4.19.90-52.47) |
| Kylin Linux Advanced Server V11 (Swan25) |
| 中科方德 NFSChina Server release 4.0.240408 (RTM3 OEM-S) |
| 更多 OS 版本持续更新中... |
检查 x2apic 是否被启用
海光 4 号机型上 IOMMU 需要打开一下,不能关闭:OS 内核如果已经合入了 4 号补丁,需要检查下 IOMMU,海光 4 号(如 Hygon 7490)的 x2apic 的实现依赖 IOMMU,支持 256 及以上核需要打开 IOMMU,否则会导致第 256 个及以上的 CPU Cores 在 lscpu 的结果中显示为 Off-line。
执行 dmesg -T | grep -i -e iommu -e x2apic,看一下有无类似如下日志信息:
Enable/Disable IOMMU,Warning:If system has more than 256 cores, disable iommu will cause x2apic be disabled in OS
示例如下:
[root@ob85 ~]# dmesg -T | grep -i -e iommu -e x2apic
[Sun Oct 26 14:22:03 2025] x2apic: enabled by BIOS, switching to x2apic ops
[Sun Oct 26 14:22:03 2025] Setting APIC routing to cluster x2apic.
[Sun Oct 26 14:22:03 2025] ACPI: X2APIC_NMI (uid[0xffffffff] high edge lint[0x1])
[Sun Oct 26 14:22:03 2025] x2apic: IRQ remapping doesn't support X2APIC mode
[Sun Oct 26 14:22:03 2025] x2apic disabled
上述示例中出现 x2apic disabled,则说明没有正常启用 x2apic,需要启动 x2apic。

海光 7490 服务器上正常启用 x2apic 后的输出如下结果:
[root@ob85 ~]# dmesg -T | grep -i -e iommu -e x2apic
[Mon Jan 19 23:31:58 2026] x2apic: enabled by BIOS, switching to x2apic ops
[Mon Jan 19 23:31:58 2026] Setting APIC routing to cluster x2apic.
[Mon Jan 19 23:31:58 2026] ACPI: X2APIC_NMI (uid[0xffffffff] high level lint[0x1])
[Mon Jan 19 23:32:09 2026] AMD-Vi: IOMMU performance counters supported
[Mon Jan 19 23:32:09 2026] AMD-Vi: IOMMU performance counters supported
[Mon Jan 19 23:32:09 2026] AMD-Vi: IOMMU performance counters supported
[Mon Jan 19 23:32:09 2026] AMD-Vi: IOMMU performance counters supported
[Mon Jan 19 23:32:09 2026] AMD-Vi: IOMMU performance counters supported
[Mon Jan 19 23:32:09 2026] AMD-Vi: IOMMU performance counters supported
[Mon Jan 19 23:32:09 2026] AMD-Vi: IOMMU performance counters supported
[Mon Jan 19 23:32:09 2026] AMD-Vi: IOMMU performance counters supported
[Mon Jan 19 23:32:09 2026] iommu: Adding device 0000:00:01.0 to group 0
[Mon Jan 19 23:32:09 2026] iommu: Adding device 0000:00:01.7 to group 1
[Mon Jan 19 23:32:09 2026] iommu: Adding device 0000:00:02.0 to group 2
[Mon Jan 19 23:32:09 2026] iommu: Adding device 0000:00:03.0 to group 3
...
...
[Mon Jan 19 23:32:09 2026] iommu: Adding device 0000:e1:00.0 to group 141
[Mon Jan 19 23:32:09 2026] iommu: Adding device 0000:e1:00.2 to group 142
[Mon Jan 19 23:32:09 2026] iommu: Adding device 0000:e2:00.0 to group 143
[Mon Jan 19 23:32:09 2026] iommu: Adding device 0000:e2:00.1 to group 144
[Mon Jan 19 23:32:09 2026] AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
[Mon Jan 19 23:32:09 2026] PPR X2APIC NX GT IA GA PC GA_vAPIC
[Mon Jan 19 23:32:09 2026] AMD-Vi: Found IOMMU at 0000:20:00.2 cap 0x40
[Mon Jan 19 23:32:09 2026] PPR X2APIC NX GT IA GA PC GA_vAPIC
[Mon Jan 19 23:32:09 2026] AMD-Vi: Found IOMMU at 0000:40:00.2 cap 0x40
[Mon Jan 19 23:32:09 2026] PPR X2APIC NX GT IA GA PC GA_vAPIC
[Mon Jan 19 23:32:09 2026] AMD-Vi: Found IOMMU at 0000:60:00.2 cap 0x40
[Mon Jan 19 23:32:09 2026] PPR X2APIC NX GT IA GA PC GA_vAPIC
[Mon Jan 19 23:32:09 2026] AMD-Vi: Found IOMMU at 0000:80:00.2 cap 0x40
[Mon Jan 19 23:32:09 2026] PPR X2APIC NX GT IA GA PC GA_vAPIC
[Mon Jan 19 23:32:09 2026] AMD-Vi: Found IOMMU at 0000:a0:00.2 cap 0x40
[Mon Jan 19 23:32:09 2026] PPR X2APIC NX GT IA GA PC GA_vAPIC
[Mon Jan 19 23:32:09 2026] AMD-Vi: Found IOMMU at 0000:c0:00.2 cap 0x40
[Mon Jan 19 23:32:09 2026] PPR X2APIC NX GT IA GA PC GA_vAPIC
[Mon Jan 19 23:32:09 2026] AMD-Vi: Found IOMMU at 0000:e0:00.2 cap 0x40
[Mon Jan 19 23:32:09 2026] PPR X2APIC NX GT IA GA PC GA_vAPIC
[Mon Jan 19 23:32:09 2026] AMD-Vi: X2APIC enabled
[Mon Jan 19 23:32:09 2026] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).
[Mon Jan 19 23:32:09 2026] perf/amd_iommu: Detected AMD IOMMU #1 (2 banks, 4 counters/bank).
[Mon Jan 19 23:32:09 2026] perf/amd_iommu: Detected AMD IOMMU #2 (2 banks, 4 counters/bank).
[Mon Jan 19 23:32:09 2026] perf/amd_iommu: Detected AMD IOMMU #3 (2 banks, 4 counters/bank).
[Mon Jan 19 23:32:09 2026] perf/amd_iommu: Detected AMD IOMMU #4 (2 banks, 4 counters/bank).
[Mon Jan 19 23:32:09 2026] perf/amd_iommu: Detected AMD IOMMU #5 (2 banks, 4 counters/bank).
[Mon Jan 19 23:32:09 2026] perf/amd_iommu: Detected AMD IOMMU #6 (2 banks, 4 counters/bank).
[Mon Jan 19 23:32:09 2026] perf/amd_iommu: Detected AMD IOMMU #7 (2 banks, 4 counters/bank).

检查 glibc 的补丁是否已经被成功 patch
[root@ob85 ~]# getconf -a | tail -30
SIGQUEUE_MAX 6169262
FILESIZEBITS 64
POSIX_ALLOC_SIZE_MIN 4096
POSIX_REC_INCR_XFER_SIZE
POSIX_REC_MAX_XFER_SIZE
POSIX_REC_MIN_XFER_SIZE 4096
POSIX_REC_XFER_ALIGN 4096
SYMLINK_MAX
GNU_LIBC_VERSION glibc 2.28
GNU_LIBPTHREAD_VERSION NPTL 2.28
POSIX2_SYMLINKS 1
LEVEL1_ICACHE_SIZE 32768
LEVEL1_ICACHE_ASSOC 8
LEVEL1_ICACHE_LINESIZE 64
LEVEL1_DCACHE_SIZE 32768
LEVEL1_DCACHE_ASSOC 8
LEVEL1_DCACHE_LINESIZE 64
LEVEL2_CACHE_SIZE 524288
LEVEL2_CACHE_ASSOC 8
LEVEL2_CACHE_LINESIZE 64
LEVEL3_CACHE_SIZE 268435456
LEVEL3_CACHE_ASSOC 64
LEVEL3_CACHE_LINESIZE 64
LEVEL4_CACHE_SIZE 0
LEVEL4_CACHE_ASSOC 0
LEVEL4_CACHE_LINESIZE 0
IPV6 200809
RAW_SOCKETS 200809
_POSIX_IPV6 200809
_POSIX_RAW_SOCKETS 200809

检查 perf top 结果
在整机空载或者数据库压测的情况下,不应该出现下面红框中的热点函数:

在整机空载或者数据库压测的情况下,不应该出现下面黄框中的热点函数,如果出现该热点函数,说明当前系统硬件时钟源已经从tsc跳变为hpet了,会导致整机性能严重受损:

适用版本
OceanBase 数据库所有版本。