
stress 是一个功能强大的 Linux 系统压力测试工具,能够模拟高负载场景,帮助用户测试系统的稳定性、性能和资源管理能力。它可以针对 CPU、内存、磁盘 IO 等资源进行单独或混合测试,是系统管理员和运维工程师进行性能调优、容量评估和瓶颈分析的常用工具。
本文将从 工具简介、安装方法、命令语法、常用参数、典型示例以及性能监控建议 等方面,系统性地介绍 stress 的使用方法,帮助你快速上手并在实际工作中合理使用。
stress 是一个轻量级的命令行压力测试工具,通过创建多个进程来模拟系统在高负载下的运行状态。它并不追求“真实业务场景”,而是通过持续消耗系统资源,帮助我们观察:
stress 特别适合用于:
CentOS 7 默认仓库中不包含 stress,需要先启用 EPEL 仓库。
# 启用 EPEL 仓库sudo yum install -y epel-release# 安装 stresssudo yum install -y stress# 验证安装stress --versionUbuntu 可以直接通过 apt 安装:
sudo apt updatesudo apt install -y stress# 验证安装stress --versionstress 的基本语法如下:
stress <options>其中 <options> 用于指定:
常用参数:
-c, --cpu N:启动 N 个 CPU 进程,每个进程执行计算密集型任务--backoff N:新 fork 的进程延迟 N 微秒后开始执行示例:
stress -c 4
说明:启动 4 个进程持续消耗 CPU 资源,可通过 top 查看 CPU 使用情况。

常用参数:
-m, --vm N:启动 N 个内存进程--vm-bytes B:每个进程分配的内存大小示例:
stress -m 2 --vm-bytes 300M

启动 2 个进程,每个进程分配 300MB 内存,并不断分配/释放。
--vm-keep:保持内存占用,不释放stress --vm 2 --vm-bytes 300M --vm-keep

适合测试系统在长期内存占用场景下的表现。
--vm-hang N:分配内存后睡眠 N 秒,再释放并重复stress --vm 2 --vm-bytes 300M --vm-hang 5
每隔 5 秒内存会被分配并释放一次,可通过 top 动态观察内存变化。
--vm-stride B:通过指定步长触发 COW 操作stress --vm 2 --vm-bytes 500M --vm-stride 64该参数会显著影响 CPU 的 用户态(us) 和 内核态(sy) 使用比例。
--vm-stride 不同取值对系统的影响如下:
示例 1:小步长(高用户态 CPU)
stress --vm 2 --vm-bytes 500M --vm-stride 64示例 2:大步长(高内核态 CPU)
stress --vm 2 --vm-bytes 500M --vm-stride 1M示例 3:默认步长(4KB)
stress --vm 2 --vm-bytes 500M用户态与内核态负载较为均衡。
对比总结:
常用参数:
-i, --io N:启动 N 个 IO 进程stress -i 4会频繁调用 sync(),对磁盘 IO 产生压力。
iostat -x 2关键指标说明:
%util:磁盘使用率,接近 100% 表示 IO 饱和r/s、w/s:每秒读写次数rkB/s、wkB/s:每秒读写数据量await:IO 平均等待时间stress -i 1 --hdd-bytes 10Mstress 支持同时消耗多种资源:
stress --cpu 4 --io 4 --vm 2 --vm-bytes 100M --vm-keep --hdd-bytes 10M该命令将同时对 CPU、内存、磁盘 IO 施加压力,适合进行综合性能测试。
-t, --timeout N:运行时长(秒)stress -c 4 -t 60-v, --verbose:显示详细信息stress -c 4 -v-q, --quiet:静默模式stress -c 4 -q-n, --dry-run:仅显示将执行的操作,不真正运行stress -c 4 -n在进行压力测试时,建议配合以下工具使用:
top:观察 CPU 与内存实时变化iostat:分析磁盘 IO 性能vmstat:查看内存、上下文切换、CPU 状态通过多维度监控,可以更准确地判断系统瓶颈所在。
stress 是一款简单但非常实用的 Linux 压力测试工具,适合用于:
合理选择参数,并结合监控工具进行分析,才能真正发挥 stress 在性能测试中的价值。在生产环境中使用时,请务必提前评估风险,避免对业务造成影响。
建议:压力测试优先在测试环境或业务低峰期进行。

点个赞吧
点击关注公众号,阅读更多精彩内容

以上内容仅为作者个人观点,仅供交流与探讨,欢迎各位读者在留言区理性讨论与交流。