【Stress-NG】Linux压测工具-编译和测试高通平台芯片
·
Stress-NG 介绍、编译与使用指南
Stress-NG 是一款功能强大的跨平台系统压力测试工具,专为 Linux 系统设计(支持部分 Unix-like 系统如 macOS),是传统 stress 工具的增强版。它提供了数百种压力测试场景,可对 CPU、内存、磁盘、网络、I/O、缓存等几乎所有系统子系统进行细粒度压力测试,常用于系统稳定性验证、硬件极限测试、资源瓶颈排查、性能基线建立等场景。
一、核心特点
- 全面的压力类型:支持 200+ 压力测试模块(如 CPU 浮点运算、内存分配 / 泄漏、磁盘随机读写、网络套接字压力等);
- 细粒度控制:可精确调整压力强度(如 CPU 负载百分比)、并发数、测试时长、资源限制等;
- 丰富的统计输出:支持输出测试过程中的资源使用率、延迟、错误数等指标,便于分析;
- 轻量跨平台:源码体积小,编译无复杂依赖,支持 Linux(主流发行版)、macOS、BSD;
- 稳定性优先:支持设置 “健康检查”(如内存溢出保护),避免测试导致系统崩溃。
二、编译安装
创建stress-ng目录
mkdir stress-ng
下载和拷贝安装包到stress-ng
下载地址:
https://fossies.org/linux/privat/stress-ng-0.14.01.tar.gz
或者,
git clone https://github.com/ColinIanKing/stress-ng.git
(github访问速度受限)
解压源文件安装包
在stress-ng目录下解压安装包:
tar -xvf stress-ng-0.19.06.tar.gz
ls
stress-ng-0.19.06 stress-ng-0.19.06.tar.gz
交叉编译
Stress-ng 的 Makefile 支持通过环境变量指定交叉工具链,无需修改源码,直接执行 make
(如未安装make则执行:apt-get install -y make)
如需适配目标板传递核心参数,可执行如下(可选):
# 基础编译(禁用非必要依赖,适配目标板)
make \
CC=$CC \ # 交叉 C 编译器(从环境变量继承)
AR=$AR \ # 交叉归档工具
RANLIB=$RANLIB \ # 交叉库索引工具
CFLAGS="-O2" \ # 优化等级(可选,加速运行)
DISABLE_LIBAIO=1 \# 禁用 libaio 依赖(目标板缺库时推荐,需启用则改为 0)
DISABLE_ZLIB=1 \ # 禁用 zlib 依赖(可选,压缩相关测试不需要则禁用)
-j$(nproc) # 多线程编译(加速)
编译结果
生成stress-ng文件,cortex-a78c 对应的 aarch64 架构
file stress-ng
stress-ng: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=1e9eeedc830cbc4fe91b6058fe2cab4c2f289179, for GNU/Linux 3.14.0, with debug_info, not stripped
上板测试
执行:
stress-ng --cpu 8 --cpu-load 70
/tmp # stress-ng: info: [418577] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor
stress-ng: info: [418577] dispatching hogs: 8 cpu
结果

Tips
不需要手动修改 Stress-ng 的 Makefile 文件!你之前通过 source 交叉环境配置的 CC/AR/RANLIB 环境变量,会被 Make 工具自动读取并覆盖 Makefile 中的默认编译器配置 —— 这是 GNU Make 的标准行为,也是交叉编译的常规做法,比直接修改 Makefile 更灵活、更通用。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)