一、概述在日常工作中,CPU压力测试是一个常见的工作,主要用于以下场景:微调系统上的活动.监控操作系统内核接口。测试您的Linux硬件组件,例如CPU、内存、磁盘设备和许多其他组件,以了解它们在压力下的表现。测量系统上不同的功耗负载。今天我将介绍两个重要的工具:stress和stress-ng,用于对您的Linux系统进行压力测试。1.stress–是一种工作负载生成器工具,旨在使您的系统经受CPU、内存、I/O和磁盘压力的可配置测量。2.stress-ng–是压力工作负载生成器工具的更新版本,可测试您的系统的以下功能:CPU计算驱动压力I/O同步管道I/O缓存抖动虚拟机压力套接字压力进程创建和终止上下文切换属性重要提示:强烈建议您以root权限使用这些工具,因为它们可以很快对您的Linux机器施加压力,并避免在设计不佳的硬件上出现某些系统错误。二、如何在Linux中安装stress工具1、安装stress要在RHEL/CentOS和FedoraLinux上安装stress,需要有EPEL仓库,然后输入以下yum命令进行安装:#yuminstallstress如何使用stress:$sudostressoptionargument要生成在sqrt()函数上运行的N个worker,请使用--cpuN选项。要生成运行在sync()函数上的N个worker,请使用--ioN选项。要生成N个对malloc()/free()函数进行操作的工作程序,请使用--vmN选项。要为每个vmworker分配内存,请使用--vm-bytesN选项。您可以使用--vm-keep选项重新分配内存,而不是释放和重新分配内存资源。在释放内存之前使用--vm-hangN选项设置休眠N秒。要在write()/unlink()函数上生成N个工作线程,请使用--hddN选项。您可以使用--timeoutN选项在N秒后设置超时。使用--backoffN选项在开始任何工作之前设置N微秒的等待时间。2.如何在Linux系统上使用stress(1)要检查每个命令运行的效果,首先运行uptime命令并记下平均负载。接下来,运行stress命令以生成8个运行在sqrt()上的worker,超时为20秒。运行压力后,再次运行uptime命令并比较负载平均值。localhost~$uptimelocalhost~$sudostress--cpu8--timeout20localhost~$uptime(2)要生成8个运行在sqrt()上且超时为30秒的工作人员,显示有关操作的详细信息,运行以下命令:localhost~$uptimelocalhost~$sudostress--cpu8-v--timeout30slocalhost~$uptime(3)要使用超时为60秒的malloc()和free()函数生成一个worker,请运行以下命令。localhost~$uptimelocalhost~$sudostress--vm1--timeout60slocalhost~$uptime(4)在sqrt()上生成4个worker,在sync()上生成2个worker,在malloc()/上生成2个worker免费(),超时时间为20秒,并为每个vmworker分配256MB的内存,运行以下命令。localhost~$uptimelocalhost~$sudostress--cpu4--io3--vm2--vm-bytes256M--timeout20slocalhost~$uptime三、如何在Linux中安装stress-ng工具1、安装stress-ng要安装stress-ng,请运行以下命令。#yuminstallstress-ng[在基于RedHat的系统上]使用stress-ng的一般语法是:$sudostress-ngOPTIONSPARAMETERS可以与stress-ng一起使用的一些选项:N启动每个压力测试实例,使用–所有N选项如下所示。要通过启动N个进程来锻炼CPU,以通过顺序执行所有不同的CPU压力测试方法来锻炼CPU,请使用--cpuN选项,如下所示。要使用给定的CPU压力测试方法,请使用--cpu-method选项。您可以使用许多方法,查看手册页以查看所有要使用的方法。要在N个bogo操作后停止CPU压力处理,请使用--cpu-opsN选项。要启动NI/O压力测试过程,请使用--ioN选项。要在N个bogo操作后停止io压力过程,请使用--io-opsN选项。要启动Nvm压力测试进程,请使用--vmN选项。要指定每个vm进程的内存量,请使用--vm-bytesN选项。要在N次bogo操作后停止vm压力进程,使用--vm-opsN选项启动N个硬盘运行进程,使用--hddN选项。要在N次bogo操作后停止HDD压力过程,请使用--hdd-opsN选项。您可以使用--timeoutN选项在N秒后设置超时。要在bogo操作后生成摘要报告,您可以使用--metrics或--metrics-brief选项。--metrics-brief显示非零指标。您还可以使用--dirN选项启动N个进程,这些进程将使用mkdir和rmdir创建和删除目录。要停止目录操作过程,请使用--dir-opsN选项。要启动N个消耗CPU的进程来执行当前的nice级别,请包含-niceN选项。使用此选项时,每次迭代都会分叉一个子进程,该子进程在退出所有不同的nice级别之前在每个级别运行0.1秒的繁忙循环。要停止nice循环,请使用--nice-opsN选项,如下所示。要在同一文件上启动通过chmod(2)和fchmod(2)更改文件模式位的N个进程,请使用--chmodN选项。请记住,N的值越大,对文件的争用越多。Stressor将与您使用chmod(2)指定的所有模式位组合一起工作。您可以使用--chmod-opsN选项停止chmod操作。您可以使用-v选项显示有关正在进行的操作的更多信息。使用-h查看stress-ng的帮助。2.如何在Linux系统中使用stress-ng(1)运行8个CPU压力器,超时时间为60秒,并在操作结束时聚合。localhost:~$uptimelocalhost:~$sudostress-ng--cpu8--timeout60--metrics-brieflocalhost:~$uptime(2)运行4个FFTCPU压力源,超时为2分钟。localhost:~$uptimelocalhost:~$sudostress-ng--cpu4--cpu-methodfft--timeout2mlocalhost:~$uptime(3)要运行5个HDD压力源并在100000次bogo操作后停止,请运行此命令localhost:~$uptimelocalhost:~$sudostress-ng--hdd5--hdd-ops100000localhost:~$uptime(3)运行8个CPU压力源,4个I/O压力源,1GB虚拟内存源和1个虚拟内存压力一分钟,运行以下命令localhost:~$uptimelocalhost:~$sudostress-ng--cpu4--io4--vm1--vm-bytes1G--timeout60s--metrics-brieflocalhost:~$uptime4.总结这些工具应该以超级用户权限使用,因为它们对系统有一定的影响。这些工具适用于Linux中的系统管理。
