《服务器硬件基础(二)——CPU详解:以鲲鹏920为例》

1 阅读5分钟

前言

大家好,我是JACK,本篇是服务器硬件基础系列第二篇,上一篇我们整体介绍了服务器各模块,这篇我们重点聊CPU,结合我实际测试鲲鹏920的经验来讲。


一、CPU是什么

CPU(Central Processing Unit)是服务器的核心计算单元,负责处理所有逻辑运算和任务调度,可以理解为服务器的大脑,所有程序的运行都离不开CPU的参与。

服务器CPU和普通PC的CPU相比:

  • 核心数更多,动辄32核、64核甚至128核

  • 支持多路配置,一台服务器可以插2路、4路CPU协同工作

  • 支持ECC内存,自动纠正内存错误

  • 更注重长时间高负载下的稳定性


二、鲲鹏920简介

鲲鹏920是华为推出的服务器处理器,基于ARM架构,是目前信创领域最主流的服务器CPU之一。

和传统x86 CPU的主要区别:

  • 指令集不同:x86是Intel主导的架构,鲲鹏920基于ARM架构,软件需要适配

  • 能效比更好:ARM架构在同等性能下功耗更低

  • 国产自主可控:符合信创要求,广泛应用于政企、金融等领域


三、CPU功能验证

拿到服务器第一步,先用lscpu确认CPU信息是否和规格一致:


lscpu

主要核对以下信息:

  • Architecture:架构类型(aarch64代表ARM架构)

  • CPU(s):总核心数是否正确

  • Model name:CPU型号是否一致

  • CPU MHz:当前运行频率


四、CPU测试方法

CPU测试主要分两类:压力测试性能测试

1. 压力测试

压力测试的目的是验证CPU在满负载情况下能否长时间稳定运行。

压测时长参考:

  • 快速验证:30分钟,日常简单验证用

  • 标准测试:2-4小时,出货前标准烤机时长

  • 严格测试:8-12小时,对稳定性要求高的场景

  • 极限测试:24小时以上,高可靠性要求或定制项目

压测跑法:

单工具跑 — 简单直接,只跑一个工具验证基本稳定性

Prime95


./mprime -t

stress/stress-ng


# 所有核心跑满

stress --cpu $(nproc) --timeout 3600

  


# stress-ng更丰富的压力模式

stress-ng --cpu $(nproc) --cpu-method matrixprod --timeout 3600

组合跑 — CPU+内存同时压,更接近真实负载:


stress-ng --cpu $(nproc) --vm 4 --vm-bytes 80% --timeout 3600

分阶段跑 — 先性能后压力,有条理:

  • 第一步:跑STREAM性能测试,记录跑分基准

  • 第二步:跑stress-ng稳定性压力

  • 第三步:全程收集ipmitool温度日志分析

全负载混合跑 — CPU、内存、磁盘、网络同时压,模拟服务器真实高压场景,是最严格的测试方式。

2. 性能测试

使用STREAM测试内存带宽,反映CPU访存性能:


gcc -O3 -fopenmp stream.c -o stream

./stream

STREAM会输出四个指标:

  • Copy:内存复制带宽

  • Scale:内存缩放带宽

  • Add:内存加法带宽

  • Triad:综合带宽,最具参考价值

重点关注Triad值是否达到参考标准,如果明显偏低,需要检查内存通道是否插满、内存频率是否正确。


五、压测时温度监控

压测期间必须同步监控温度,建议持续采集日志方便事后分析。

方式一:ipmitool(推荐)


# 查看温度传感器

ipmitool sensor list | grep -i temp

  


# 查看风扇转速

ipmitool sensor list | grep -i fan

  


# 查看功耗

ipmitool sensor list | grep -i power

  


# 持续采集温度日志

watch -n 5 'ipmitool sensor list | grep -i temp' >> temp_log.txt

方式二:BMC Web端

登录服务器BMC管理界面,在传感器页面实时查看温度、风扇、功耗数据,界面直观,适合快速巡检。


六、常见问题及排查

实际测试中最常遇到的问题是压力跑不上去,可能原因和排查方法:

1. CPU频率上不去

  • 检查BIOS中性能模式是否开启,建议设置为Performance模式

  • 查看当前CPU调速策略:


cpupower frequency-info

  • 查看当前频率:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

2. 温度过高导致降频

  • CPU温度过高会自动降频保护,叫热降频

  • 压测期间用ipmitool持续监控温度

  • 如果温度异常高,检查散热器安装是否到位、风扇转速是否正常

3. CPU使用率上不去

  • 压测时用top实时观察CPU使用率是否真正跑满:

top

  • 如果使用率上不去,检查是否有进程限制或NUMA绑核问题

4. 内存带宽跑分低

  • STREAM跑分低可能是内存通道没有插满

  • 检查内存插槽是否按推荐位置安装,鲲鹏920建议内存对称安装


七、测试时需要记录的数据

每次CPU测试完,建议记录以下数据:

| 指标 | 说明 |

|------|------|

| CPU最高温度 | 压测期间峰值温度,正常不超过95℃ |

| CPU频率 | 是否维持在额定频率 |

| 系统负载 | 是否真正跑满所有核心 |

| STREAM Triad | 内存综合带宽跑分 |

| 压测时长 | 根据测试要求选择对应时长 |


八、总结

CPU测试核心关注三点:能跑满、温度正常、跑分达标。根据不同场景选择合适的压测时长和跑法,配合ipmitool持续监控温度日志,才能全面验证CPU的健康状态。

下一篇我们聊内存详解,包括ECC、频率、容量以及内存测试方法,敬请期待!

欢迎关注JACK的服务器笔记