stress命令详解

📅 2026/8/6 5:17:55
stress命令详解
stress是一个简单的命令行工具用于对 Linux 系统进行压力测试stress testing即主动让系统资源如 CPU、内存、I/O、磁盘等处于高负载状态以测试系统的稳定性、可靠性或者用于复现某些在高负载下才出现的问题。它常被系统管理员、开发人员、测试工程师用于测试服务器的稳定性模拟高负载环境复现系统在高压力下的异常行为性能调优前的基准测试测试监控告警系统的有效性命令行Usage: stress[OPTION[ARG]]... -?,--helpshow thishelpstatement--versionshow version statement -v,--verbosebe verbose -q,--quietbe quiet -n, --dry-run show what would have beendone-t,--timeoutNtimeoutafter N seconds--backoffNwaitfactor of N microseconds before work starts -c,--cpuN spawn N workers spinning on sqrt()-i,--ioN spawn N workers spinning on sync()-m,--vmN spawn N workers spinning on malloc()/free()--vm-bytes B malloc B bytes per vm worker(default is 256MB)--vm-stride Btoucha byte every B bytes(default is4096)--vm-hang NsleepN secs beforefree(default none,0is inf)--vm-keep redirty memory instead of freeing and reallocating -d,--hddN spawn N workers spinning on write()/unlink()--hdd-bytes BwriteB bytes per hdd worker(default is 1GB)Example: stress--cpu8--io4--vm2--vm-bytes 128M--timeout10s选项解释选项说明-?,--help显示帮助信息即当前你正在看的这类说明--version显示stress工具的版本信息-v,--verbose详细模式运行时输出更多信息便于观察压力测试过程-q,--quiet静默模式不输出任何信息适合在脚本中安静地运行压力测试-n,--dry-run试运行模式仅显示将会执行的操作但不会真正执行压力测试用于检查命令配置-t,--timeout N设置压力测试的超时时间单位为秒测试将在 N 秒后自动停止--backoff N在开始施加压力前先等待N 微秒百万分之一秒作为启动前的延迟因子控制任务启动节奏-c,--cpu N启动N 个 CPU 压力进程每个进程反复计算平方根sqrt()用于让 CPU 达到高负载-i,--io N启动N 个 I/O 压力进程每个进程反复调用sync()系统调用模拟磁盘 I/O 压力-m,--vm N启动N 个内存压力进程每个进程通过反复调用malloc()和free()来分配和释放内存测试内存管理性能与压力--vm-bytes B每个--vm内存进程分配的内存大小比如256M、1G默认是256MB--vm-stride B每隔多少字节触摸一次内存即模拟访问默认是 4096 字节4KB用于控制内存访问模式--vm-hang N每个--vm进程在调用free()之前先休眠 N 秒默认不等待即立刻释放设为0表示无限等待可用于模拟长时间占用内存--vm-keep保持内存脏状态不释放并重新分配内存而是反复对已分配的内存进行“弄脏”操作写入用于持续内存压力测试而不是频繁申请释放-d,--hdd N启动N 个硬盘文件写压力进程每个进程通过反复调用write()写文件然后unlink()删除模拟磁盘写压力--hdd-bytes B每个--hdd进程每次写入的文件大小比如512M、1G默认是1GB示例示例 1仅对 CPU 进行压力测试启动 4 个 CPU 压力进程stress --cpu 4启动 4 个进程每个都做大量计算让 CPU 占用飙升按CtrlC停止示例 2CPU 内存 压力测试CPU 2个 内存1个分配512MBstress --cpu 2 --vm 1 --vm-bytes 512M2 个进程压 CPU1 个进程分配并写入 512MB 内存模拟内存压力示例 3带超时限制的测试比如运行 60 秒后自动停止stress --cpu 2 --vm 1 --vm-bytes 256M --timeout 60CPU 压力 2 核内存压力 1 个进程分配 256MB整体运行60 秒后自动退出示例 4模拟磁盘 I/O 压力使用 --iostress --io 2启动 2 个进程频繁调用sync()给磁盘 I/O 带来压力示例 5模拟磁盘写压力–hddstress --hdd 1启动 1 个进程不断写入临时文件模拟磁盘写入负载文件通常写在/tmp下测试完毕可能会留下临时文件可手动清理。示例 6组合压力测试CPU 内存 I/O带超时stress --cpu 4 --vm 2 --vm-bytes 1G --io 1 --timeout 1204 个 CPU 压力进程2 个内存压力进程每个分配 1GB1 个 I/O 压力进程总共运行120 秒后自动停止