文章

Linux系统压力测试利器:stress工具

Linux系统压力测试利器:stress工具

引言

在Linux系统性能测试和优化过程中,模拟高负载场景是必不可少的环节。stress工具正是为此而生,它能够方便地产生各种系统负载,帮助开发者和服务管理员评估系统性能瓶颈。本文将详细介绍stress工具的安装、使用方法和常见选项,并通过实例展示其在CPU、内存和IO资源压测中的应用。

stress工具简介

stress是一款简单易用的Linux系统压力测试工具,通过产生多个进程模拟高负载场景,测试系统在不同压力下的表现。

安装stress

在Ubuntu系统中,可以通过以下命令安装stress:

1
2
sudo apt install stress
stress --version

基本语法和常用选项

stress的基本语法格式为:

1
stress <options>

常用选项包括:

  • -c, –cpu N:产生N个进程,每个进程计算随机数的平方根,消耗CPU资源。
  • -i, –io N:产生N个进程,每个进程调用sync()函数,将内存内容写入硬盘,消耗IO资源。
  • -m, –vm N:产生N个进程,每个进程不断分配和释放内存,消耗内存资源。
  • –vm-bytes B:指定分配内存的大小。
  • –vm-stride B:控制内存赋值间隔,影响COW(Copy On Write)发生频率。
  • –vm-hang N:指示进程在分配内存后睡眠N秒,然后释放内存。
  • –vm-keep:一直占用内存,不释放。
  • -d, –hdd N:产生N个进程,创建文件、写入内容并删除,压测磁盘IO。
  • –hdd-bytes B:指定文件大小。
  • -t, –timeout N:在N秒后结束程序。
  • –backoff N:等待N微秒后开始运行。
  • -q, –quiet:运行时不输出信息。
  • -n, –dry-run:仅输出将要执行的操作,不实际执行。
  • –version:显示版本号。
  • -v, –verbose:显示详细信息。

实例演示

1. 消耗CPU资源

1
stress -c 4

该命令产生4个进程,持续计算随机数的平方根,使CPU处于高负载状态。

2. 消耗内存资源

1
stress --vm 2 --vm-bytes 300M --vm-keep

该命令产生2个进程,每个进程分配300M内存并持续占用,模拟内存压力。

3. 消耗IO资源

1
stress -i 4

该命令产生4个进程,反复调用sync()函数,将内存内容写入硬盘,模拟IO压力。

4. 压测磁盘及IO

1
stress -d 1 --hdd-bytes 10M

该命令产生1个进程,不断创建10M大小的文件并写入内容,测试磁盘写入性能。

其他选项介绍

  • –verbose:显示程序运行过程中的详细信息。
  • –timeout N:设置程序运行时间限制。
  • –quiet:运行时不输出任何信息。
  • -n, –dry-run:仅显示将要执行的操作,不实际执行。
  • –backoff N:延迟N微秒后开始运行。
本文由作者按照 CC BY 4.0 进行授权