当前位置: 首页 > news >正文

Linux命令:stress-ng

stress-ng 命令

基本介绍

stress-ngstress工具的增强版本,提供了更丰富的压力测试选项和更强大的功能。它支持 CPU、内存、磁盘、网络等多种资源的压力测试,包含数百种测试方法,是系统性能测试和稳定性验证的理想工具。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

stress-ng [OPTIONS]

常用选项

CPU 压力测试选项

  • --cpu N:生成 N 个 CPU 密集型进程
  • --cpu-method METHOD:指定 CPU 测试方法(如 crc32、md5、sha256、fibonacci 等)
  • --cpu-load PERCENT:CPU 负载百分比(0-100)
  • --cpu-max-threads N:最大 CPU 线程数

内存压力测试选项

  • --vm N:生成 N 个内存分配进程
  • --vm-bytes SIZE:每个内存进程分配的内存大小
  • --vm-keep:保持分配的内存不释放
  • --vm-hang N:分配内存后暂停 N 秒再释放
  • --vm-method METHOD:内存分配方法(如 malloc、mmap、posix_memalign 等)
  • --vm-stride SIZE:内存访问步长

磁盘 I/O 压力测试选项

  • --hdd N:生成 N 个磁盘 I/O 进程
  • --hdd-bytes SIZE:每个 I/O 进程写入的文件大小
  • --hdd-method METHOD:磁盘测试方法(如 write、read、sync、randwrite 等)
  • --hdd-noclean:测试完成后不清理临时文件

时间控制选项

  • --timeout SECS:运行指定秒数后退出
  • --sleep SECS:在启动每个工作进程前等待指定秒数
  • --interval SECS:输出状态间隔时间

其他选项

  • -q, --quiet:静默模式,减少输出
  • -v, --verbose:详细模式,增加输出
  • -?, --help:显示帮助信息
  • -V, --version:显示版本信息
  • --metrics-brief:输出简要性能指标
  • --metrics:输出详细性能指标

使用示例

1. 单 CPU 压力测试

stress-ng--cpu1

2. 多 CPU 压力测试

stress-ng--cpu4--timeout60stress-ng--cpu$(nproc)--cpu-method crc32--timeout120

3. 指定 CPU 测试方法

stress-ng--cpu2--cpu-method md5--timeout30stress-ng--cpu4--cpu-method fibonacci--timeout60

输出示例:

stress-ng: info: [1234] dispatching hogs: 4 cpu stress-ng: info: [1234] stress-ng 0.13.04 (gcc 9.4.0) 64-bit stress-ng: info: [1234] 4 cpus, 48363 MB RAM, 4096 MB swap stress-ng: info: [1234] time limit set to 60s stress-ng: info: [1234] running 4 cpu stressors stress-ng: info: [1234] completed 48000000 operations in 60.00s stress-ng: info: [1234] cpu: 48000000 operations, 800000 ops/sec

4. 内存压力测试

stress-ng--vm2--vm-bytes 1G--timeout60stress-ng--vm4--vm-bytes 512M --vm-keep--timeout120

5. 磁盘 I/O 压力测试

stress-ng--hdd1--hdd-bytes 2G--timeout60stress-ng--hdd2--hdd-method randwrite --hdd-bytes 1G--timeout120

6. 混合压力测试

stress-ng--cpu4--vm2--hdd1--timeout120stress-ng--cpu8--cpu-load80--vm4--vm-bytes 1G--timeout300

7. 显示性能指标

stress-ng--cpu4--timeout30--metrics-brief

输出示例:

stress-ng: info: [1234] metrics: stress-ng: info: [1234] cpu: ops/sec 800000, time 30.00s stress-ng: info: [1234] vm: alloc 2.0G, ops/sec 1000 stress-ng: info: [1234] hdd: ops/sec 500, bytes 500M

8. 使用特定 CPU 核心

stress-ng--cpu2--cpu-affinity0,1--timeout60

9. 测试指定时间后停止

stress-ng--cpu4--timeout60--sleep5

CPU 测试方法

方法名说明
crc32CRC32 校验计算
md5MD5 哈希计算
sha256SHA256 哈希计算
fibonacci斐波那契数列计算
pi圆周率计算
prime素数查找
sqrt平方根计算
log对数计算
sin正弦函数计算
float浮点数运算

内存测试方法

方法名说明
malloc使用 malloc 分配内存
mmap使用 mmap 分配内存
posix_memalign使用 posix_memalign 分配内存
aligned_alloc使用 aligned_alloc 分配内存
calloc使用 calloc 分配内存

磁盘测试方法

方法名说明
write顺序写入
read顺序读取
sync同步写入
randwrite随机写入
randread随机读取
mixed混合读写

实用技巧

测试 CPU 性能

# 使用多种方法测试stress-ng--cpu4--cpu-method crc32,md5,sha256,prime--timeout60# 测试所有 CPU 核心stress-ng--cpu$(nproc)--timeout120--metrics-brief

测试内存稳定性

# 分配大量内存并保持stress-ng--vm4--vm-bytes 2G --vm-keep--timeout120# 测试内存分配和释放stress-ng--vm2--vm-bytes 1G --vm-hang1--timeout60

测试磁盘 I/O

# 测试磁盘写入性能stress-ng--hdd2--hdd-bytes 5G --hdd-methodsync--timeout120# 测试随机读写stress-ng--hdd1--hdd-method randwrite --hdd-bytes 2G--timeout60

综合压力测试

# 模拟高负载场景stress-ng--cpu8--cpu-load90--vm4--vm-bytes 1G--hdd2--timeout300# 逐步增加压力foriin1248;doecho"Testing with$iCPU cores..."stress-ng--cpu$i--timeout30--metrics-briefdone

监控系统状态

# 后台运行 stress-ng,前台监控stress-ng--cpu4--timeout120&top

相关命令

  • stress:原始版本的压力测试工具
  • cpuburn:CPU 压力测试工具
  • memtester:内存测试工具
  • fio:灵活的 I/O 测试工具
  • perf:性能分析工具
  • vmstat:系统资源监控
  • iostat:磁盘 I/O 监控
  • top:实时系统监控

注意事项

  1. 资源消耗stress-ng会消耗大量系统资源,可能影响其他服务
  2. 测试时长:建议设置合理的测试时间,避免长时间运行
  3. 内存测试:确保系统有足够的内存,避免触发 OOM killer
  4. 磁盘测试:确保磁盘有足够的可用空间
  5. 权限要求:通常不需要 root 权限,但某些系统可能有限制
  6. 安装方法
    • Debian/Ubuntu:apt-get install stress-ng
    • CentOS/RHEL:yum install stress-ng

总结

stress-ngstress的增强版本,提供了更丰富的测试选项和更强大的功能。它支持数百种测试方法,可以对 CPU、内存、磁盘等资源进行全面的压力测试。通过合理使用stress-ng,系统管理员和开发者可以评估系统在高负载情况下的表现,为系统优化和资源规划提供依据。

http://www.jsqmd.com/news/892858/

相关文章:

  • torchtitan-npu:7B大模型在8卡NPU上的分布式训练实录
  • Unity实战:用户上传图片实时变模型皮肤,保姆级动态材质创建教程
  • 在 Node.js 后端服务中异步调用 Taotoken 聚合 API 的最佳实践
  • 代驾小程序APP代驾跑腿源码码兄代驾微信小程序代驾源码
  • hixl单边通信库:为什么比HCCL快3倍?
  • 2026 年办公楼装修设计公司推荐榜:整栋、集团、工厂、产业园办公楼装修优质公司 - 资讯速览
  • 2026年电竞椅品牌推荐:拓际TGIF口碑上乘 - 13425704091
  • FortiGate CVE-2022-40684漏洞深度复现与调试实战
  • 告别重新打包!UE5 PakLoaderPlugin插件深度使用:实现游戏热更新与DLC管理
  • Claude Code 必备 Skill 清单:14 个亲测好用的效率技能包,一键安装全部
  • FPGA硬件加速高光谱异常检测:嵌入式实时处理架构与优化实践
  • 搞定高DPI缩放:在SetParent前后,如何让不同DPI感知的窗口和平共处?
  • 2026年电竞椅品牌性价比推荐:拓际TGIF划算耐用 - 19120507004
  • AIPP硬件预处理:比OpenCV快多少?
  • 模型评测为什么一上对抗攻击测试就开始高分低防御:从 Adversarial Prompt 到 Robustness Budget 的工程实战
  • Unity游戏实战:用A*算法为你的2D角色实现智能寻路(附完整C#代码)
  • 多跳通信系统硬件缺陷建模与联合抑制技术
  • 淘宝客APP源码-自营商城任务墙源码美团外卖CPS广告联的技术难点
  • 用c++写控制台贪吃蛇游戏完整步骤
  • StPageFlip:开源JavaScript翻页动画库的深度技术解析与最佳实践
  • IPS中的结构漏光
  • FPGA边缘AI设计空间探索:MathWorks HDL工具箱实测与避坑指南
  • Mac 连接 Windows 云服务器保姆级教程|新手零失败远程桌面指南
  • pypto:用Python直接写NPU算子,门槛有多低?
  • 2026年游戏电竞椅推荐:拓际TGIF舒适出众 - 17322238651
  • Linux命令:pidstat
  • java实现ofd文件转pdf文件
  • 手把手教你定制一个“会自己干活”的智能PE:集成Wget和自动安装脚本
  • 外卖微信小程序京东拼多多外卖cps|外卖红包优惠券源码美团饿了么红包的技术要点
  • SAP物料账差异分摊翻车实录:CKMLCP跑完后余额不为0,我踩了这5个坑