news 2026/5/26 22:23:09

Linux命令:stress-ng

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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,系统管理员和开发者可以评估系统在高负载情况下的表现,为系统优化和资源规划提供依据。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 22:16:24

Selenium绕过FingerprintJS反爬的四层环境重塑实战

1. 这不是“绕过检测”,而是重建可信交互链路FingerprintJS 不是传统意义上的“爬虫识别器”,它更像一个精密的数字法医工具——不看你请求里有没有 User-Agent,而是通过浏览器运行时的上千个微小特征,拼出你的真实身份画像。我第…

作者头像 李华
网站建设 2026/5/26 22:06:03

LSTM结合语义特征优化机器翻译:从序列建模到语义理解

1. 项目概述:当LSTM遇上语义特征,机器翻译的“理解力”如何提升?在机器翻译这个领域里待久了,你会发现一个挺有意思的现象:模型输出的句子,从语法和词汇上看似乎都对,但读起来就是感觉“差点意思…

作者头像 李华
网站建设 2026/5/26 22:06:00

基于交叉注意力的可解释AI:照亮帕金森病语音诊断黑盒模型

1. 项目概述:当“黑盒”AI遇上临床诊断的信任鸿沟在神经退行性疾病,尤其是帕金森病(PD)的早期筛查与辅助诊断领域,基于语音的分析正成为一个极具前景的非侵入性、低成本工具。超过70%的PD患者会出现语音障碍&#xff0…

作者头像 李华