Linux命令--stress使用
stress 使用
最近都在做服务器的调试,服务器组装后经常会做压力测试,测试一些基本功能是否正常。有用到stress,它是Linux 系统中一个轻量、简单的压力测试工具,可以对 CPU、内存、IO、磁盘等资源进行负载测试。本文介绍 stress 的基本用法。
安装
stress 是一款经典的系统压力测试工具,能够模拟多种系统资源的负载情况。
1 | # Debian/Ubuntu 系列 |
参数说明
输入 stress --helphelp 命令可以查看参数说明
1 | $ stress --help |
常用参数参考:
| 参数 | 含义 | 示例 |
|---|---|---|
--cpu N |
启动 N 个 CPU 压力测试进程 | --cpu 4 |
--io N |
启动 N 个 I/O 压力测试进程 | --io 2 |
--vm N |
启动 N 个内存分配进程 | --vm 2 |
--vm-bytes X |
每个内存进程分配 X 字节内存 | --vm-bytes 512M |
--timeout T |
运行时间 T 秒后自动结束 | --timeout 60s |
--hdd N |
启动 N 个写磁盘文件的进程 | --hdd 2 |
--hdd-bytes X |
每个进程写入 X 字节数据 | --hdd-bytes 1G |
使用测试
压力测试
启动 4 个 CPU 负载进程,持续运行 1 分钟。1
2stress --cpu 4 --timeout 60
可以配合
top命令查看CPU利用率,此时也可以观察功率计,查看运行功耗。磁盘测试
磁盘内存测试主要通过反复分配和释放大块内存来验证系统内存管理能力。
1 | # 分配 2GB 内存测试 120 秒 |
可以通过watch -n 1 free -h 命令查看内存使用情况。执行后会看到used会有明显上升。
写入测试 2GB 数据
1 | # 每个进程写入 1GB 数据,共 2GB |
通过iostat -x 1 命令查看磁盘 IO 使用情况。
IO 测试
I/O 压力测试通过频繁的文件读写操作验证磁盘与文件系统性能。1
2
3# 启动 2 个 I/O 压力测试进程,持续运行 60 秒
stress --io 2 --timeout 60通过
vmstat 1命令查看系统整体状态。
比如:1
2
3
4
5procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 8960 797148 500772 6453372 0 0 13 16 12 18 2 1 97 0 0
0 0 8960 792256 500772 6458072 0 0 0 0 2705 5017 1 0 99 0 0字段 含义 r 运行队列中进程数 b 阻塞进程数 swpd 已使用 swap 空间(KB) free 空闲物理内存(KB) bi / bo 块设备读/写(KB/s) us 用户态 CPU 使用率 sy 内核态 CPU 使用率 id CPU 空闲率 st 被虚拟机偷走的 CPU 时间 stress可以直接组合测试
结合上面的参数,比如:1
stress --cpu 2 --io 2 --vm 2 --vm-bytes 512M --timeout 120
如果测试有更多需求,可以安装stress-ng
注意
无非必要,压力测试不宜太长,也多注意以下几点:
1、监控温度:长时间 CPU 压测可能导致过热,以免损坏硬件。
2、合理设置 timeout,避免测试进程无法自动停止。 Linux下用“ctrl+c”可结束进程。
3、避免在正式环境使用该命令。








