必须让新服务器在满载下连续运行72小时,通过五维并发压力(CPU+内存、磁盘、网络、传感器轮询、内核错误捕获)、 hourly 快照及电源热拔插、BMC冷复位、RAID重建三类故障注入,暴露散热、供电、内存、驱动等隐藏缺陷。

要验证一台新装机、刚刷完固件的服务器或租来的GPU整机能否扛住真实业务压力,不能只看它开机能不能进系统,必须让它在满载状态下连续运行72小时,暴露出散热设计缺陷、供电不稳、内存位翻转、驱动兼容性等隐藏问题。
测试前的硬性准备
确认系统已关闭所有非必要服务:systemctl list-units --type=service --state=running | grep -E "(snap|bluetooth|avahi|cups|ModemManager)",对匹配项执行sudo systemctl stop并mask;否则后台服务可能在第36小时突然触发日志轮转或自动更新,干扰测试基线。
执行sudo apt-get update && sudo apt-get install -y stress-ng fio iperf3 lm-sensors dstat,确保工具链完整。注意:不要用apt install sysbench,该包在Ubuntu 22.04默认源中版本过旧(0.4.12),无法支持--cpu-ops参数,会导致CPU压力不可控。
【必须禁用NVIDIA GPU的持久模式】:nvidia-smi -r && nvidia-smi -dmon -s pucvmt -i 0 -d 1000 &,否则GPU在空闲时仍维持高功耗状态,掩盖真实负载下的热节流行为。
五维并发压力注入
启动以下五个进程并保持后台运行,彼此不依赖、不等待:
① CPU+内存混合压测:stress-ng --cpu $(nproc) --cpu-method matrixprod --vm $(nproc) --vm-bytes 85% --timeout 259200s --metrics-brief > /tmp/stress-ng.log 2>&1
② 磁盘随机写入:fio -name=randwrite -ioengine=libaio -rw=randwrite -bs=4k -direct=1 -runtime=259200 -time_based -group_reporting -filename=/dev/nvme0n1p1 > /tmp/fio-disk.log 2>&1
③ 网络持续打流:iperf3 -c 192.168.1.100 -t 259200 -P 8 -A cbr -R > /tmp/iperf-net.log 2>&1(目标IP需提前配置为同网段另一台机器的iperf3服务端)
④ 温度与传感器轮询:while true; do sensors | grep -E "(Package|Core|fan|in0)"; echo "---$(date +%s)---"; sleep 30; done > /tmp/sensors.log &
⑤ 内核错误实时捕获:dmesg -T -w | grep -E "(error|warn|throttle|uc|corrected|nvme.*reset|pcie.*aer)" > /tmp/dmesg-alert.log &
每小时自动化快照采集
创建脚本 /root/hourly-snapshot.sh:
#!/bin/bash
TS=$(date +%Y%m%d-%H%M%S)
mkdir -p /var/log/stability/$TS
top -b -n1 > /var/log/stability/$TS/top.txt
free -h > /var/log/stability/$TS/free.txt
iostat -x 1 1 > /var/log/stability/$TS/iostat.txt
df -h > /var/log/stability/$TS/df.txt
nvidia-smi -q -d MEMORY,UTILIZATION > /var/log/stability/$TS/gpu.txt
设置定时任务:echo "0 * * * * root /root/hourly-snapshot.sh" | sudo tee /etc/cron.d/stability-snapshot
这一步不能省——手动记录会漏掉第47小时13分发生的瞬时内存页回收风暴,而自动快照能保留当时完整的page cache和swap activity数据。
关键故障注入点执行
方法一:电源模块热拔插(仅限双电冗余配置)
在运行满48小时后,登录BMC Web界面或执行ipmitool power status确认当前为“on”,然后物理拔出PSU1模块。观察BMC是否在5秒内上报“PSU1 Lost”告警,剩余PSU2输出功率是否自动提升至100%,且stress-ng进程PID不变、无中断。
方法二:BMC冷复位注入
运行至第60小时,执行ipmitool mc reset cold;等待30秒后检查ipmitool mc info返回“Firmware Revision”字段是否刷新,同时确认fio进程仍在向磁盘提交IO请求(iostat -x 1 1中await值未归零)。
方法三:RAID卡强制重建触发(仅限有RAID阵列的服务器)
运行至第66小时,使用storcli /c0/e252/s0 set offline → storcli /c0/e252/s0 set online,模拟单盘离线再上线,触发RAID5重建。观察重建过程中iperf3吞吐是否跌出8.5Gbps下限,以及dmesg是否出现"raid5: failed to start reshape"类错误。

















