首页/系统/服务器硬件与 RAID 速查/memtester 在线内存压力测试
内存与电源72 条

memtester 在线内存压力测试

memtester 在运行中的系统里分配并反复校验内存区域:适合维护窗口内快速验证,但无法覆盖已被内核占用的内存。

memtester 在线内存压测

memtester 在运行中的系统里申请一块内存,然后反复写入特定模式并回读校验,通过比对差异发现内存错误。它的定位是维护窗口内的快速验证工具:因为只能操作可分配的用户态内存,已经被内核占用的区域不在覆盖范围内,所以它通过不等于整机内存没问题。真正要覆盖全部区域,需要在离线状态下用可启动的内存测试工具。

基本信息

适用平台Linux(发行版仓库通常自带)
运行方式指定待测内存大小与轮数
权限要求普通用户即可,但需足够空闲内存
适用场景维护窗口内的快速稳定性验证
能力边界只覆盖可分配的用户态内存区域
输出内容失败时报告地址与期望值、实际值

典型使用场景

  • 更换内存条后做一轮系统内验证
  • 维护窗口内快速确认机器是否稳定
  • 与离线测试配合:先离线跑完整轮次,再在线复核
  • 排查间歇性错误时缩小可疑范围
  • 交付前的基础验证项目之一

使用示例

使用示例
# 先看可用内存,确定测试规模(被测内存应小于空闲量)
free -g
# 安装工具(Debian 系用 apt install memtester)
yum install -y memtester
# 测试 8G 内存,跑 2 轮
memtester 8G 2
# 记录输出到文件,便于与后续结果对比
memtester 8G 2 2>&1 | tee memtester_$(date +%F).log
# 测试期间观察是否出现内核侧错误记录
dmesg -T | grep -iE 'edac|mce|memory error' | tail -10

结果判读

现象含义后续动作
正常输出进度测试进行中等待完成并记录耗时
报告地址与期望值差异检测到内存数据不一致保存日志,结合 EDAC 与 SEL 定位
进程被终止分配超过可用内存被回收减小测试规模后重试
运行时间异常长内存容量大或系统负载高在维护窗口内留足时间
全部通过该区域未发现问题结合离线测试结论综合判断
被测内存量应小于当前空闲内存:压到交换空间会引入大量磁盘 IO,不仅拖慢测试,还会掩盖内存问题的真实表现。
压测会占用大量内存与 CPU:不要在生产业务时段执行,否则可能触发业务侧内存不足或响应变慢。

易错点

  • 分配超过空闲内存:进程被系统回收,测试结果无效
  • 把通过当健康证明:未覆盖内核与保留区域,需配合离线测试
  • 业务高峰执行:影响在线业务,且结果受负载干扰
  • 不保存输出日志:出现争议时缺少可复核的原始记录

数据来源与参考

  • man 8 memtester
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌