Linux系统:stress-ng测压工具

本文介绍了Linux系统下的压力测试工具stress和stress-ng,包括它们的功能、安装方法、参数语法以及实验示例,如CPU、内存、磁盘I/O的测试。此外,还讨论了在安装过程中可能遇到的问题,如配置文件缺失和网络下载错误,以及解决策略。文章最后简述了GCC的作用,它是Linux系统中用于C和C++编译的重要工具。

目录

一、理论

1.stress工具简介与安装

 2.语法及参数

3.具体安装

二、实验

1.运行8 cpu, 4 fork, 5 hdd, 4 io, 50 vm, 10小时

2.CPU测试

 3.内存测试

 4.IO测试

          5.磁盘及I/O测试

三、问题

1.  -bash: ./configure: 没有那个文件或目录

2.  下载yum源报错:未知的名称或服务解决方法

3.  linux 为什么要安装gcc和gcc-c++(又叫做g++)

四、总结

1.stress分类

2.GCC功能与作用


一、理论

1.stress工具简介与安装

(1)概念

stress是Linux系统下的系统压力测试工具,可以测试Linux系统的CPU、内存、磁盘I/O等的负载。
当stress测试CPU时,会不断调用进程,计算随机数的平方根;当测试内存时,会不断调用内存调用malloc和内存释放free函数;当测试磁盘I/O时,会不断调用sync()中断,以测试磁盘I/O。

CentOS 7 的EPEL源包含2个压力测试工具,一个是标准的stress,另一个是其升级版stress-ng。

stress-ng是stress的升级版,用于Linux压力测试,带源码。stress-ng兼容stress, 支持产生各种复杂的压力。

(2)安装

stress的安装有两种方式,YUM方式和源码安装方式。

①采用YUM方式

yum install -y epel-release.noarch && yum -y update
yum install -y stress stress-ng

采用源码安装方式

下载页面为:The Fossies Software Archive - linux/privat,如下所示:

 2.语法及参数

(1)语法

stress [OPTION]
stress-ng [OPTION [ARG]]

(2)stress参数

表1 stress参数

参数 功能
-?,–help 显示帮助信息
–version 显示版本信息
-v,–verbose 运行时显示详细的信息
-q,–quiet 运行时不显示运行信息
-n,–dry-run 显示以完成的指令情况
-t,–timeout 指定程序运行结束的时间,单位为秒
–backoff 指定程序开始运行的时间,单位为微妙
-c,–cpu

后面跟一个整数,表示测试CPU的进程数

-c 2 :表示生成2个worker循环调用sqrt()产生cpu压力

-i,–io

后面跟一个整数,表示测试磁盘I/O的进程数

 -i 1 :表示生成1个worker循环调用sync()产生io压力

-m,–vm

后面跟一个整数,表示测试内存的进程数

-m 1 :表示生成1个worker循环调用malloc()/free()产生内存压力

–vm-bytes 指定在内存测试时malloc的字节数,默认256M
–vm-stride 指定每B个字节移动一个字节
–vm-hang 指定free栈的秒数
–vm-keep 向内存空间内不断写入,而不是释放和重新分配
-d,–hdd 产生执行write和unlink函数的进程数
–hdd-bytes 指定写的字节数

(3)stress-ng参数

stress-ng参数有几百项,可以模拟复杂的压力测试,但是兼容stress的参数。 主要使用参数:

表1 stress-ng参数

参数 功能
-c N 运行N worker CPU压力测试进程
--cpu-method all worker从迭代使用30多种不同的压力算法,包括pi, crc16, fft等等
-tastset N 将压力加
<think>好的,我现在需要帮助用户解决在CentOS 8.5系统中使用dnf安装stressstress-ng失败的问题。根据用户提供的信息和之前的对话历史,我需要先回顾之前的解决方案,并结合用户提供的引用内容来调整回答。 首先,用户之前遇到的问题是安装stress时出现“No match for argument: stress”,之前的回答已经详细说明了可能的原因和解决方法,包括启用EPEL仓库、切换镜像源、安装stress-ng以及源码编译等方法。现在用户再次提问,并提供了新的引用内容,显示他们可能在离线环境中进行安装,或者在尝试使用特定仓库。 用户提供的引用[1]和[2]提到了在CentOS 8.5离线安装zabbix7.0时使用dnf download命令下载安装包,并启用了EPEL和Remi仓库。这可能意味着用户需要离线安装stressstress-ng,或者他们遇到了类似的环境问题,比如无法连接到默认仓库。 接下来,我需要确定用户当前的具体情况。用户现在的问题仍然是在线安装失败,还是需要离线安装?根据用户的问题描述,他们提到的是使用dnf安装失败,因此可能仍然是在线环境,但可能需要参考离线安装的方法。不过用户的问题中没有明确提到离线,因此需要综合考虑。 根据之前的回答,步骤包括更新元数据、启用EPEL、切换镜像源、安装stressstress-ng,以及源码安装。现在结合用户提供的引用,可能需要强调EPEL的安装和可能的手动下载RPM包的方法,尤其是用户引用中提到的dnf download命令。 需要检查是否用户启用了正确的仓库,比如EPEL是否成功安装,是否启用了Remi仓库(虽然这可能与stress无关,但用户引用中提到了PHP相关的内容)。此外,用户引用中提到在离线环境下下载安装包,可能需要指导用户如何在线下载所需的stress包,然后离线安装。 可能的解决方案步骤: 1. 确保EPEL仓库已正确安装和启用,因为stress通常位于EPEL中。 2. 如果EPEL安装失败,可能需要手动下载并安装EPEL的RPM包,尤其是在CentOS 8中默认仓库可能不可用的情况下。 3. 使用dnf download命令下载stressstress-ng及其依赖项,然后进行离线安装,类似于用户引用中的方法。 4. 如果在线安装失败,考虑切换镜像源到vault.centos.org,因为CentOS 8已经EOL,默认仓库可能已被移除。 5. 安装stress-ng作为替代,可能它位于不同的仓库中,或者更容易获取。 6. 最后,如果所有仓库方法都失败,源码编译安装。 同时,用户可能遇到的问题是,在CentOS 8.5中,默认的仓库已经不可用,因此必须切换到vault镜像,或者使用EPEL的镜像。此外,用户可能没有正确启用EPEL,或者EPEL的配置也需要调整镜像源。 需要验证用户是否按照之前的步骤启用了EPEL,并检查仓库配置是否正确。如果用户仍然无法安装,可能需要更详细地指导如何手动配置EPEL仓库,或者使用其他镜像源。 另外,用户引用中提到的dnf download命令可以用来下载RPM包及其依赖项,这可能适用于用户需要离线安装的情况,但用户当前的问题可能是在线安装失败,因此需要明确是否需要在线或离线解决方案。 总结,用户可能需要以下步骤: - 确保系统已更新,并配置了正确的仓库(EPEL,vault镜像) - 安装EPEL仓库,如果未启用的话 - 尝试安装stressstress-ng - 如果在线安装不可行,使用dnf download下载RPM包并手动安装 - 作为最后手段,源码安装 需要将这些步骤整理成清晰的指南,确保用户能够逐步操作。同时,需要引用用户提供的引用内容中的相关命令,比如dnf download的使用方法,来增强回答的相关性。</think>### 在CentOS 8.5中通过`dnf`安装`stress`或`stress-ng`的完整方案 --- #### **原因分析** CentOS 8官方仓库已于2021年底停止维护[^3],默认软件源可能无法使用。`stress`和`stress-ng`通常依赖**EPEL仓库**或第三方镜像源。安装失败的主要原因包括: 1. **未启用EPEL仓库**(提供`stress`包)[^1] 2. **默认仓库失效**(需切换至CentOS Vault镜像源)[^3] 3. **网络限制或镜像配置错误** --- ### **分步解决方案** --- #### 1. **配置CentOS Vault镜像源(修复默认仓库失效)** 因CentOS 8官方仓库已归档,需手动替换为Vault镜像: ```bash # 备份原有仓库配置 sudo mv /etc/yum.repos.d/CentOS-*.repo /tmp/ # 下载CentOS 8.5 Vault仓库配置 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://vault.centos.org/8.5.2111/BaseOS/x86_64/os/CentOS-Base.repo # 清理并重建元数据缓存 sudo dnf clean all sudo dnf makecache ``` --- #### 2. **安装并启用EPEL仓库** EPEL仓库包含`stress`和`stress-ng`的预编译包[^1]: ```bash # 安装EPEL仓库(适配CentOS 8) sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm # 验证EPEL是否启用 dnf repolist | grep epel ``` --- #### 3. **安装`stress`或`stress-ng`** - **直接安装`stress`**(需EPEL已启用): ```bash sudo dnf install -y stress ``` - **安装`stress-ng`(推荐)**: ```bash sudo dnf install -y stress-ng ``` --- #### 4. **离线安装方案(手动下载RPM包)** 若系统无外网访问权限,需通过联网机器下载RPM包(参考引用[^1][^2]的方法): ```bash # 在联网机器上下载stress及其依赖包 sudo dnf install -y epel-release # 确保EPEL已启用 mkdir ~/stress-packages dnf download --resolve --destdir=~/stress-packages stress # 将目录打包复制到离线机器后安装 sudo dnf install -y ~/stress-packages/*.rpm ``` --- #### 5. **验证安装** ```bash # 检查stress是否可用 stress --version # 检查stress-ng是否可用 stress-ng --version ``` --- ### **常见问题排查** | 场景 | 解决方案 | |------|----------| | **EPEL安装失败** | 手动下载EPEL RPM包:<br>`sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm` | | **依赖冲突** | 清理冲突包:<br>`sudo dnf remove php*`(参考引用[^2]中的冲突解决方案) | | **镜像源超时** | 替换为国内镜像(如阿里云):<br>`sed -i 's|vault.centos.org|mirrors.aliyun.com/centos-vault|g' /etc/yum.repos.d/CentOS-Base.repo` | --- ### **引用说明** - [^1]: EPEL仓库提供`stress`包,需通过Vault镜像源适配CentOS 8.5 - [^2]: 离线安装需使用`dnf download`下载依赖包(类似PHP组件安装流程) - [^3]: CentOS 8默认仓库已归档,需切换至Vault镜像源 --- ### 相关问题 1. 如何为CentOS 8系统配置国内镜像源加速软件安装? 2. 使用`dnf download`下载的RPM包如何批量安装? 3. 在CentOS 8中如何管理多个第三方仓库(如EPEL和Remi)的优先级?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值