4、核心硬件检测:CPU、内存、硬盘、GPU
各位工程师,咱们直接进入正题。整机联调的第一步,就是把核心硬件挨个摸一遍。说白了,你得先确认你手里这台机器的「心脏」和「大脑」是不是对的。我见过太多返修案例,最后查出来是CPU型号不对板,或者内存频率没跑上去。嗯,这些坑咱们今天一次性填平。
核心检测四件套:
- CPU:型号对不对?频率稳不稳?
- 内存:容量够不够?频率跑满没?
- 硬盘:型号匹配吗?健康状态还撑得住吗?
- GPU:显存到位了没?核心频率正常吗?
4.1 CPU型号与频率确认
我个人习惯,上电后第一件事就是进BIOS看一眼CPU信息。为什么?因为操作系统里看到的可能是虚拟化后的数据,BIOS最原始。
在Linux下,我常用这条命令:
cat /proc/cpuinfo | grep -E "model name|cpu MHz" | head -4
输出大概长这样:
model name : Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
cpu MHz : 3000.000
cpu MHz : 3000.000
cpu MHz : 3000.000
这里要注意三点:
- 型号要对:跟BOM表逐字核对,我遇到过「ES版」CPU混在正式出货机器里的情况。
- 频率要稳:如果发现频率在波动,别慌。先看看是不是节能策略(比如Intel的SpeedStep)在起作用。
- 核心数要够:用
nproc或者lscpu确认一下逻辑核心数。
小技巧: 我习惯写个脚本,把/proc/cpuinfo里的信息跟BOM表做自动比对。人工核对太容易走神了,你想想看,几百台机器,眼睛不花才怪。
4.2 内存容量与频率检测
内存这块,我踩过最大的坑就是「频率没跑满」。明明插的是3200MHz的条子,结果系统只认了2133MHz。为什么会这样?多半是XMP没开,或者主板兼容性问题。
检测命令:
sudo dmidecode -t memory | grep -E "Size|Speed|Type"
输出示例:
Size: 16384 MB
Type: DDR4
Speed: 3200 MT/s
Configured Clock Speed: 3200 MT/s
重点关注两个字段:
- Speed:内存条标称的最高频率
- Configured Clock Speed:实际跑起来的频率
警告: 如果这两个值不一致,说明内存没跑在最佳状态。我曾经有一批机器,就是因为BIOS里XMP默认关闭,导致内存性能掉了15%。整机联调时一定要把这个坑填上。
另外,容量检测别只看总数。用 free -h 看一眼,再用 dmidecode 确认每条插槽是不是都插满了。我遇到过一条内存松了,系统只认了一半容量,折腾了半天才发现是物理接触问题。
4.3 硬盘型号与健康状态(SMART)检测
硬盘检测,我把它分成两步:第一步确认型号对不对,第二步看它还能活多久。
型号确认:
lsblk -o NAME,SIZE,MODEL,SERIAL
输出:
NAME SIZE MODEL SERIAL
sda 931.5G Samsung SSD 860 EVO S3Z8NB0M123456
sdb 931.5G WDC WD10EZEX WD-WCC3F1KZ1234
SMART健康状态才是重头戏。我个人习惯用 smartctl:
sudo smartctl -a /dev/sda | grep -E "Reallocated_Sector|Power_On_Hours|Raw_Read_Error"
重点关注这几个指标:
| SMART属性 | 正常范围 | 危险信号 |
|---|---|---|
| Reallocated_Sector_Ct | 0 | 大于0就要警惕 |
| Raw_Read_Error_Rate | 接近0 | 持续增长说明盘要挂了 |
| Power_On_Hours | 视使用场景而定 | 超过标称MTBF的80%建议更换 |
避坑指南: 我曾经遇到过一批SSD,SMART数据全正常,但实际读写速度只有标称的十分之一。后来发现是固件bug。所以,除了看SMART,我建议再跑一次 hdparm -Tt /dev/sda 做实际读写测试。
4.4 GPU型号与显存检测
GPU检测,说白了就是确认显卡是不是你要的那张,显存有没有缩水。
NVIDIA显卡用这个:
nvidia-smi --query-gpu=name,memory.total,memory.used --format=csv
输出:
name, memory.total [MiB], memory.used [MiB]
NVIDIA GeForce RTX 3080, 10240 MiB, 1234 MiB
AMD显卡用这个:
rocm-smi --showproductname --showmeminfo
这里有个细节:显存容量要跟标称值完全一致。比如RTX 3080是10GB,如果显示9.8GB,那可能是部分显存被系统预留了,但如果是8GB,那肯定有问题。
个人经验: 我习惯在检测GPU时顺便跑一下 glxinfo | grep "OpenGL renderer",确认驱动层识别到的型号跟硬件一致。有一次客户反馈说显卡性能不对,查了半天发现是驱动装错了,系统把RTX 3090识别成了RTX 3080。
嗯,核心硬件检测这块,说白了就是「眼见为实」。不要相信任何人的口头承诺,也不要相信系统自动识别出来的结果。每一条数据,都要跟BOM表、跟标称值逐字核对。这是整机联调的第一道防线,守住了,后面才能省心。
公众号:蓝海资料掘金营,微信deep3321