如果你是系统管理员,那么当Linux系统承受繁重工作负载时,检查和监视Linux系统的状态非常重要。对于Linux系统管理员和程序员来说,这可能是一个好方法:
- 微调系统上的活动。
- 监视操作系统内核接口。
- 测试Linux硬件组件,例如CPU、内存、磁盘设备和许多其它组件,以观察它们在压力下的性能。
- 测量系统上不同的功耗负载。
在本文当中,小编将介绍两个重要的工具:stress和stress-ng,用于在Linux系统上进行压力测试。
Linux压力测试工具:stress和stress-ng
stress和stress-ng是评估和测试Linux系统在各种条件下性能的重要工具。
stress工具
stress是一个简单但功能强大的工具,旨在对Linux系统施加可配置数量的CPU、内存、I/O或磁盘压力。通过模拟繁重的工作负载,允许管理员观察系统在压力下的响应情况。
该工具对于识别潜在的弱点并确保系统能够在不影响性能的情况下处理要求较高的任务非常有价值。
stress-ng工具
stress-ng是stress的扩展版本,超越了其前身的基本功能。它提供了更广泛的压力测试,不仅涵盖CPU、内存、I/O和磁盘压力,还包含针对进程间通信、套接字和各种文件操作等的附加测试。
stress和stress-ng都对Linux系统的主动管理做出了重大贡献,使管理员和程序员能够优化系统配置、识别潜在问题并增强整体系统可靠性。
重要提示:强烈建议你以root用户权限使用这些工具,因为它们会给你的Linux机器带来很高压力,并避免在设计不良的硬件上出现某些系统错误。
在Linux中安装“stress”工具
要在Linux上安装压力,请使用以下适合你特定Linux发行版的命令:
sudo apt installstress [Debian、Ubuntu和Mint] sudo yum installstress [RHEL/CentOS/Fedora和Rocky/AlmaLinux] sudoemerge -a sys-apps/stress [Gentoo Linux] sudo apk addstress [Alpine Linux上] sudo pacman -Sstress [Arch Linux] sudo zypper installstress [OpenSUSE] sudo pkg installstress [FreeBSD]
使用stress的一般语法是:
sudo stress option argument
你可以在有stress命令的情况下使用一些选项:
- 要生成在sqrt()函数上旋转的N个worker,请使用–cpu N选项。
- 要生成在sync()函数上旋转的N个worker,请使用–io N选项。
- 要生成在malloc()/free()函数上旋转的N个worker,请使用–vm N选项。
- 要为每个vm工作进程分配内存,请使用–vm-bytes N选项。
- 可以使用–vm keep选项重新分配内存,而不是释放和重新分配内存资源。
- 在使用–vm hang N选项释放内存之前,将sleep设置为N秒。
- 要生成在write()/unlink()函数上旋转的N个worker,请使用–hdd N选项。
- 可以使用–timeout N选项设置N秒后的超时。
- 使用–backoff N选项,在开始任何工作之前设置一个N微秒的等待因子。
- 要在压力运行时显示更详细的信息,请使用-v选项。
- 使用–help可查看有关使用压力的帮助或查看手册页。
在Linux系统上使用stress
1、要检查每次运行该命令的效果,请先运行uptime命令并记下平均负载。
接下来,运行stress命令以生成8个正在旋转的工作线程sqrt()
,超时时间为20秒。运行压力后,再次运行uptime命令并比较负载平均值。
uptime sudo stress --cpu 8 --timeout 20 uptime
2、要在sqrt()
上产生8个超时为30秒的旋转线程,并显示有关操作的详细信息,请运行以下命令:
uptime sudo stress --cpu 8 -v --timeout 30s uptime
3、要生成一个超时为60秒的malloc()和free()函数的worker,请运行以下命令:
uptime sudo stress --vm 1 --timeout 60s uptime
4、要生成4个在sqrt()上旋转的工作线程,2个在sync()上闪烁的工作线程和2个在malloc()/free()上运行的工作线程(时间不超过20秒),并为每个vm工作线程分配256MB的内存,请运行下面的命令。
uptime sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s uptime
在Linux中安装“stress-ng”工具
要在Linux上安装stress-ng,请使用以下适合你特定Linux发行版的命令:
sudo apt installstress-ng [Debian、Ubuntu和Mint] sudo yum installstress-ng [RHEL/CentOS/Fedora和Rocky/AlmaLinux] sudo emerge -a sys-apps/stress-ng [Gentoo Linux] sudo apk add stress-ng [Alpine Linux] sudo pacman -Sstress-ng [Arch Linux] sudo zypper installstress-ng [OpenSUSE] sudo pkg installstress-ng [FreeBSD]
使用stress-ng的一般语法是:
sudo stress-ng option argument
你可以与stress-ng一起使用的一些选项:
- 要启动每个压力测试的N个实例,请使用–all N选项。
- 要启动N个进程以通过顺序执行所有不同的CPU压力测试方法来测试CPU,请使用–cpu N选项。
- 要使用给定的CPU压力测试方法,请使用–cpu-method选项。你可以使用多种方法,查看联机帮助页以查看所有要使用的方法。
- 要在N个bogo操作后停止CPU压力过程,请使用–cpu-ops N选项。
- 要启动N I/O压力测试过程,请使用–io N选项。
- 要在N bogo操作后停止io压力进程,请使用–io-ops N选项。
- 要启动N个虚拟机压力测试过程,请使用–vm N选项。
- 要指定每个vm进程的内存量,请使用–vm-bytes N选项。
- 要在N bogo操作后停止vm压力进程,请使用–vm-ops N选项
- 使用–hdd N选项启动N个硬盘测试进程。
- 要在N bogo操作后停止HDD压力处理,请使用–hdd-ops N选项。
- 可以使用–timeout N选项设置N秒后的超时。
- 要在bogo操作后生成摘要报告,可以使用–metrics或–metrics-brief选项。 –metrics -brief显示非零指标。
- 可以使用–dir N选项启动N个进程,这些进程将使用mkdir和rmdir创建和删除目录。
- 要停止目录操作进程,请使用–dir-ops N选项。
- –nice N选项。使用此选项时,每次迭代都会分叉一个子进程,该子进程运行所有不同的良好级别,每个级别运行繁忙循环0.1秒,然后退出。
- 要停止Nice循环,请使用–nice-ops N选项。
- 要在同一文件上启动N个通过chmod(2) 和fchmod(2) 更改文件模式位的进程,请使用–chmod N选项。请记住,N的值越大,文件上的争用就越多。压力源将处理你使用chmod(2) 指定的所有模式位组合。
- 可以通过–chmod-ops N选项停止chmod操作。
- 可以使用-v选项显示有关正在进行的操作的更多信息。
- 使用-h查看stress-ng的帮助。
在Linux系统中使用“stress-ng”
1、运行8个CPU压力源,超时为60秒,并在操作结束时进行摘要:
uptime sudo stress-ng --cpu 8 --timeout 60 --metrics-brief uptime
2、运行4个FFT CPU压力源,超时时间为2分钟:
uptime sudo stress-ng --cpu 4 --cpu-method fft --timeout 2m uptime
3、要运行5个硬盘压力源并在100000个bogo操作后停止,请运行此命令:
uptime sudo stress-ng --hdd 5 --hdd-ops 100000 uptime
4、要使用1GB虚拟内存运行8个CPU压力源、4个I/O压力源和1个虚拟内存压力源一分钟,请运行以下命令。
uptime sudo stress-ng --cpu 4 --io 4 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief uptime
总结
根据建议,上面的这些工具应以超级用户权限使用,因为它们对系统有一定的影响。这些工具对于Linux中的一般系统管理很有用。