stress 命令是一个用于在计算机系统上创建并模拟压力的实用工具,通常用于测试系统的稳定性和性能。它可以模拟 CPU 负载、内存占用、磁盘 I/O 和网络流量等,从而帮助用户评估系统在不同负载条件下的表现。

安装 stress 工具:

yum install epel-release -y
yum install stress -y

CPU 负载测试:

stress --cpu 2 --timeout 60
--cpu 2 :
  表示启动 2 个 worker 进程,持续进行复杂的浮点计算(占用 CPU 资源)。
  如果你的 CPU 是多核心的,这会让 2 个核心接近 100% 使用率(每个 worker 占满一个核心)。
  如果是单核 CPU,则会争夺同一个核心的资源,总负载接近 100%。

--timeout 60
  表示压力测试持续 60 秒(1 分钟),之后自动停止。
  如果不设置这个参数,stress 会一直运行,直到手动终止(如按 Ctrl+C)。

内存占用测试:

stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s
--vm 2:    启动 2 个内存压力测试进程(worker)
--vm-bytes 1G:    每个 worker 分配 1GB 内存(总共占用 2 × 1GB = 2GB)
--vm-hang 100:    分配内存后,保持占用 100 秒(不释放)
--timeout 100s:    整个测试运行 100 秒 后自动停止

磁盘 I/O 测试:

stress --hdd 2 --hdd-bytes 10G --backoff 2000000  
--hdd 2:    启动 2 个磁盘写入进程(worker)
--hdd-bytes 10G:    每个 worker 写入 10GB 数据(总写入量 2 × 10GB = 20GB)
--backoff 2000000:    控制写入速度(单位:微秒),值越大写入越慢


扩充:dd命令快速生成大文件或者小文件的方法
创建指定大小的文件:
dd if=/dev/zero of=test bs=1M count=1000
if=/dev/zero:    输入文件(/dev/zero 是一个虚拟设备,生成无限的空字符 \0)
of=test:输出文件(在当前目录创建名为 test 的文件)
bs=1M:    每次读写 1MB 数据块(Block Size)
count=1000:总共写入 1000 个块(即 1000 × 1MB = 1GB 数据)

创建一个虚拟大文件:
如果你只想让文件系统认为存在一个超大文件,但不实际写入硬盘,可以使用 seek 参数:
dd if=/dev/zero of=test bs=1M count=0 seek=100000
if=/dev/zero:    输入源(空字符流,但实际不会读取)
of=test:    输出文件名为 test
bs=1M:    块大小为 1MB(仅用于计算)
count=0:    不写入任何数据块
seek=100000:    跳过输出文件的前 100000 个块(即创建 100000 × 1MB = 100GB 的空洞文件)


创建多个小文件:
要随机生成 1 百万个 1K 的文件,可以使用以下命令:
seq 1000000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1
为每个数字创建 1 个 1KB 的文件

results matching ""

    No results matching ""