内存压力测试:stress-ng把服务器内存拷到极限

来源:互联网 时间:2026-09-03

服务器用久了偶尔崩溃,查日志又没明确错误,这种情况十有八九是内存不稳。尤其是虚拟化环境,宿主超售内存时,你的 VPS 看似有 4G,实际在高负载下会触发 OOM。上线前跑一轮内存压力测试,比事后救火划算得多。

stress-ng 是目前最全面的压力测试工具,2026 年 8 月最新版本已到 0.22.00。它内置 300 多种压测方法,内存、CPU、IO、网络都能测。配合 memtester 做更细粒度的内存位翻转检测,基本能覆盖常见内存故障场景。

# 内存压力测试组合脚本
# 1. 安装 stress-ng(Debian/Ubuntu)
apt update && apt install -y stress-ng memtester

# 2. 内存持续压测 10 分钟,8 个 worker,每个 512MB
stress-ng --vm 8 --vm-bytes 512M --vm-keep --timeout 600s --metrics-brief

# 3. 专门测试 malloc/free 分配压力和内存复制
stress-ng --malloc 4 --memcpy 4 --matrix 2 --timeout 300s

# 4. memtester 测试指定大小内存(确保小于可用内存)
# 测试 2GB 内存,跑 3 轮
memtester 2G 3

# 5. 监控(另一个终端同时看)
watch -n 1 'free -h; dmesg | tail -20'

压测期间要另开一个窗口观察 free、vmstat、dmesg。如果出现 Hardware Error、Corrected error、SIGKILL(OOM) 等输出,说明内存或宿主机配置有问题。长期稳定运行的机器,建议每次大版本升级或迁移后都跑一次。

内存测试会吃满 CPU 和内存,千万别在生产高峰期跑。先在测试环境或业务低峰期执行,时间充裕的话跑 30 分钟以上,更容易暴露间歇性故障。

数据来源:Colin Ian King stress-ng GitHub

相关文章

标签:

A5创业网 版权所有