阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何使用stress工具用于 Linux 系统的压力测试?

34次阅读
没有评论

共计 3231 个字符,预计需要花费 9 分钟才能阅读完成。

导读 今天介绍两个重要的工具:stress 和 stress-ng,用于在您的 Linux 系统下进行压力测试。
一、概述

在日常工作中,CPU 压力测试是一项常见的工作,主要用到如下场景:

  • 微调系统上的活动。
  • 监控操作系统内核接口。
  • 测试您的 Linux 硬件组件,例如 CPU、内存、磁盘设备和许多其他组件,以观察它们在压力下的性能。
  • 测量系统上不同的功耗负载。

今天介绍两个重要的工具:stress 和 stress-ng,用于在您的 Linux 系统下进行压力测试。

1、stress– 是一种工作负载生成器工具,旨在让您的系统承受 CPU、内存、I/O 和磁盘压力的可配置测量。

2、stress -ng – 是压力工作负载生成器工具的更新版本,可测试您的系统的以下功能:

  • CPU 计算
  • 驱动压力
  • I/O 同步
  • 管道 I/O
  • 缓存抖动
  • 虚拟机压力
  • socket 压力
  • 进程创建和终止
  • 上下文切换属性

重要提示: 强烈建议您以 root 用户权限使用这些工具,因为它们可以如此快速地对您的 Linux 机器施加压力,并避免在设计不佳的硬件上出现某些系统错误。

二、如何在 Linux 中安装 stress 工具
1、安装 stress

要在 RHEL / CentOS 和 Fedora Linux 上安装压力,您需要有 EPEL 存储库,然后键入以下 yum 命令进行安装:

# yum install stress

stress 的使用方法:

$ sudo stress option argument
  • 要产生 N 个在 sqrt() 函数上运行的 worker,请使用–cpu N 选项。
  • 要产生 N 个在 sync() 函数上运行的 worker,请使用–io N 选项。
  • 要生成在 malloc()/free() 函数上运行的 N 个工作程序,请使用–vm N 选项。
  • 要为每个 vm worker 分配内存,请使用–vm-bytes N 选项。
  • 您可以使用–vm-keep 选项重新分配内存,而不是释放和重新分配内存资源。
  • 使用–vm-hang N 选项在释放内存之前将睡眠设置为 N 秒。
  • 要产生 N 个在 write()/unlink() 函数上旋转的工作人员,请使用–hdd N 选项。
  • 您可以使用–timeout N 选项在 N 秒后设置超时。
  • 通过使用–backoff N 选项在任何工作开始之前设置 N 微秒的等待。
2、如何在 Linux 系统上使用 stress

(1)要检查每次运行命令的效果,首先运行 uptime 命令并记下平均负载。

接下来,运行压力命令以生成 8 个在 sqrt() 上运行的 worker,超时时间为 20 秒。运行压力后,再次运行 uptime 命令并比较负载平均值。

localhost ~ $ uptime 
localhost ~ $ sudo stress --cpu 8 --timeout 20 
localhost ~ $ uptime

(2)要生成 8 个在 sqrt() 上运行且超时为 30 秒的 worker,显示有关操作的详细信息,请运行以下命令:

localhost ~ $ uptime 
localhost ~ $ sudo stress --cpu 8 -v --timeout 30s 
localhost ~ $ uptime

(3)要生成一个具有 60 秒超时时间的 malloc() 和 free() 函数的 worker,请运行以下命令。

localhost ~ $ uptime 
localhost ~ $ sudo stress --vm 1 --timeout 60s 
localhost ~ $ uptime

(4)要在 sqrt() 上生成 4 个 worker,在 sync() 上生成 2 个 worker,在 malloc()/free() 上生成 2 个 worker,超时时间为 20 秒,并为每个 vm worker 分配 256MB 的内存,运行这个下面的命令。

localhost ~ $ uptime 
localhost ~ $ sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s 
localhost ~ $ uptime
三、如何在 Linux 中安装 stress-ng 工具
1、安装 stress-ng

要安装 stress-ng,请运行以下命令。

# yum install stress-ng [在基于 RedHat 的系统上]

使用 stress-ng 的一般语法是:

$ sudo stress-ng 选项参数 

您可以与 stress-ng 一起使用的一些选项:

  • 要启动每个压力测试的 N 个实例,请使用–all N 选项,如下所示。
  • 要通过顺序执行所有不同的 CPU 压力测试方法来启动 N 个进程来锻炼 CPU,请使用–cpu N 选项,如下所示。
  • 要使用给定的 CPU 压力测试方法,请使用–cpu-method 选项。您可以使用许多方法,查看手册页以查看所有要使用的方法。
  • 要在 N 个 bogo 操作后停止 CPU 压力过程,请使用–cpu-ops N 选项。
  • 要启动 NI/O 压力测试过程,请使用–io N 选项。
  • 要在 N 个 bogo 操作后停止 io 压力过程,请使用 –io -ops N 选项。
  • 要启动 N 个 vm 压力测试进程,请使用–vm N 选项。
  • 要指定每个 vm 进程的内存量,请使用–vm-bytes N 选项。
  • 要在 N 个 bogo 操作后停止 vm 压力进程,请使用–vm-ops N 个选项
  • 使用–hdd N 选项启动 N 个硬盘运行进程。
  • 要在 N 个 bogo 操作后停止硬盘压力过程,请使用–hdd-ops N 选项。
  • 您可以使用–timeout N 选项在 N 秒后设置超时。
  • 要在 bogo 操作后生成摘要报告,您可以使用–metrics 或–metrics-brief 选项。–metrics -brief 显示非零指标。
  • 您还可以使用–dir N 选项启动 N 个进程,这些进程将使用 mkdir 和 rmdir 创建和删除目录。
  • 要停止目录操作进程,请使用–dir-ops N 选项。
  • 要启动 N 个 CPU 消耗进程来执行当前的 nice 级别,包括
  • -nice N 选项。使用此选项时,每次迭代都会派生一个子进程,该子进程会运行一个繁忙的循环,每个级别运行 0.1 秒,然后退出所有不同的 nice 级别。
  • 要停止 nice 循环,请使用–nice-ops N 选项,如下所示。
  • 要启动通过 chmod(2) 和 fchmod(2) 在同一文件上更改文件模式位的 N 个进程,请使用–chmod N 选项。请记住,N 的值越大,文件的争用就越多。压力源将通过您使用 chmod(2) 指定的所有模式位组合来工作。
  • 您可以通过–chmod-ops N 选项停止 chmod 操作。
  • 您可以使用 - v 选项来显示有关正在进行的操作的更多信息。
  • 使用 - h 查看 stress-ng 的帮助。
2、如何在 Linux 系统中使用 stress-ng

(1)运行 8 个 CPU 压力源,超时时间为 60 秒,并在操作结束时进行汇总。

localhost:~$ uptime
localhost:~$ sudo stress-ng --cpu 8 --timeout 60 --metrics-brief
localhost:~$ uptime

(2)运行 4 个 FFT CPU 压力源,超时时间为 2 分钟。

localhost:~$ uptime
localhost:~$ sudo stress-ng --cpu 4 --cpu-method fft --timeout 2m
localhost:~$ uptime

(3)要运行 5 个硬盘压力源并在 100000 次 bogo 操作后停止,请运行此命令

localhost:~$ uptime
localhost:~$ sudo stress-ng --hdd 5 --hdd-ops 100000
localhost:~$ uptime

(3)要使用 1GB 虚拟内存运行 8 个 CPU 压力源、4 个 I/O 压力源和 1 个虚拟内存压力源一分钟,请运行以下命令:

localhost:~$ uptime
localhost:~$ sudo stress-ng --cpu 4 --io 4 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief
localhost:~$ uptime
四、小结

这些工具应该与超级用户权限一起使用,因为它们对系统有一定的影响。这些工具适用于 Linux 中的系统管理。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计3231字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中