首页/系统/Linux 运维命令速查/stress-ng 压力测试
性能与监控48 条

stress-ng 压力测试

CPU/内存/IO/网络全维度压测工具:验证扩容阈值、复现负载问题、测试监控告警是否触发;比 stress 功能更全。

Linux 运维命令速查系统更新于 2026-10-13

stress-ng 是什么

stress-ng 是功能较全的压力测试工具,能制造可控的 CPU、内存、磁盘 IO 与网络负载。它常用来验证扩容阈值、复现与负载相关的故障,以及确认监控与告警在真实压力下会不会触发。相比早期的 stress,它的压力类型与统计指标都更丰富。

基本信息

用途制造可控负载以验证系统行为
语法stress-ng --cpu N --vm N --hdd N --timeout 60s
获取方式发行版源或 EPEL 中提供
输出统计加 --metrics 可打印各类压力的统计摘要

典型使用场景

  • 新机型或新规格上线前验证负载表现
  • 复现线上与负载相关的性能问题
  • 验证监控、告警与自动扩容能否按预期触发
  • 对比不同内核参数或调度策略下的系统表现
  • 演练容量水位与降级逻辑
  • 观察应用在资源受限条件下的行为

常用示例

常用示例
stress-ng --cpu 4 --timeout 60s --metrics        # 4 核满载 60 秒并输出指标
stress-ng --vm 2 --vm-bytes 1G --timeout 120s    # 内存压力
stress-ng --hdd 2 --hdd-bytes 512M --timeout 120s   # 磁盘 IO 压力
stress-ng --cpu 4 --io 2 --vm 1 --timeout 60s    # 组合压力
top                                              # 另开终端观察
vmstat 1                                         # 看系统整体运行状态
iostat -xz 1                                     # 看磁盘与 IO 等待

常见压力类型

参数压力方向观察指标
--cpu NCPU 满载负载均值与 CPU 使用率
--vm N内存分配与回收可用内存、swap 与 OOM 记录
--hdd N磁盘读写IO 等待与吞吐
--io N同步 IO 调用系统态 CPU 占比
--timeout持续时间到点自动结束,避免忘停
压测前先定义结论标准:目标延迟分位、期望吞吐、告警是否触发。没有判据的压测跑完也得不到结论,只是白占资源。
只在测试环境或已获授权的环境执行:生产上直接压测会吃掉业务余量,很容易演变成真实故障。
云主机常见资源超卖,压测结果波动较大;同一配置建议重复多次观察结果分布,而不是拿一次数字当作能力上限。
压测期间同步抓取系统指标(vmstat、iostat、top)与业务指标,才能把资源变化与体验变化对应起来;只有一端的数据很难得出可用结论。

易错点

  • 不定义判据就开压:跑完只有一堆数字,无法判断是否达标
  • 在生产环境直接压测:业务余量被吃干净,压测变成故障演练
  • 把单次结果当结论:云上超卖环境下波动大,需要重复观察分布
  • 压测结束忘记收尾进程:残留压力进程持续占用资源,干扰后续观察

数据来源与参考

  • stress-ng 官方文档(man 1 stress-ng)
  • Ubuntu/Debian 与 EPEL 打包说明

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌