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

stress-ng命令详解

stress-ng 是一款功能强大的 Linux 系统压力测试工具,能够模拟多种复杂负载场景,覆盖 CPU、内存、磁盘 I/O、进程调度等核心资源,帮助开发者验证系统在高负载下的稳定性与性能表现。以下是其核心功能、参数解析及实战案例。


一、工具简介与安装
  1. 核心功能

    • 多维度负载模拟:支持超过 80 种负载模式,包括浮点运算、内存分配、文件操作、网络压力等。
    • 精准资源控制:可指定负载施加的 CPU 核心、内存大小、I/O 强度等。
    • 跨平台兼容:支持 x86、ARM 等架构,适用于嵌入式系统到服务器级场景。
  2. 安装方法

    • CentOS/RHEL
      sudo yum install -y epel-release.noarch
      sudo yum install stress-ng
      
    • 手动编译
      从 GitHub 仓库 获取源码编译,支持自定义功能。

二、核心参数解析
参数说明
-c N启动 N 个 CPU 压力进程(默认使用 sqrt 计算模拟负载)
-m N启动 N 个内存压力进程,默认分配 256MB/进程(可结合 --vm-bytes 调整)
-i N启动 N 个 I/O 压力进程,模拟频繁的 sync() 操作
-d N启动 N 个磁盘压力进程,生成临时文件并循环读写
--cpu-method指定 CPU 负载算法,如 matrix(矩阵运算)、trig(三角函数)等
--timeout T指定压测持续时间(单位:秒),如 --timeout 600 表示运行 10 分钟
--taskset M将压力绑定到指定 CPU 核心(如 --taskset 0,2 表示仅使用 CPU 0 和 2)

常用组合示例

stress-ng -c 4 -m 2 -i 1 --timeout 300  # 模拟 4 CPU 负载 + 2 内存负载 + 1 I/O 负载,持续 5 分钟

三、实战案例与监控方法
  1. 场景 1:CPU 满载测试

    stress-ng --cpu 4 --cpu-method matrix --timeout 600  # 4 个进程执行矩阵运算,持续 10 分钟 
    
    • 监控命令
      mpstat -P ALL 2  # 每 2 秒显示各 CPU 核心利用率 
      
    • 结果分析:若所有核心 %usr 接近 100%,表明 CPU 压力生效 。
  2. 场景 2:内存与磁盘混合压力

    stress-ng --vm 2 --vm-bytes 1G --hdd 1 --hdd-bytes 5G --timeout 120
    
    • 参数说明
      • --vm 2:启动 2 个内存进程,每个分配 1GB 内存(默认行为为频繁写入并释放)。
      • --hdd 1:启动 1 个磁盘进程,生成 5GB 临时文件并循环读写 。
    • 监控指标
      • free -h:观察可用内存变化。
      • iostat -dx 2:监控磁盘吞吐量(wkB/s)和利用率(%util) .
  3. 场景 3:指定 CPU 核心压测

    stress-ng --taskset 0,1 --cpu 2 --cpu-load 80  # 在 CPU 0 和 1 上施加 80% 负载 
    
    • 适用场景:测试 CPU 核心隔离或 NUMA 架构性能差异 。

四、注意事项与优化建议
  1. 谨慎使用

    • 避免在生产环境直接运行,可能导致系统崩溃或数据丢失。
    • 部分测试模式(如内存加压)可能触发 OOM Killer,需提前调整内核参数。
  2. 稳定性验证

    • 日志记录:添加 --log-file 参数保存压测日志,便于后期分析。
    • 超时设置:始终指定 --timeout 防止压测进程失控。
  3. 性能调优

    • 硬件匹配:根据磁盘类型(HDD/SSD)调整 I/O 负载强度。
    • 负载均衡:多节点测试时,结合 --taskset 分配压力

五、应用场景总结
  1. 系统稳定性测试:模拟极端负载,验证服务器长期运行的可靠性。
  2. 资源分配验证:测试容器(如 Docker/K8s)的 CPU、内存配额是否生效。
  3. 硬件故障排查:结合高负载测试,识别硬件(如内存条、磁盘)潜在缺陷。
  4. 性能优化基准:对比优化前后的系统表现(如调整调度算法后的延迟变化)。

通过灵活配置 stress-ng 参数,开发者可以精准模拟各类负载场景,为系统优化与容量规划提供数据支撑。建议结合 sysstat(如 mpstatiostat)或 htop 等工具实时监控资源使用情况。

相关文章:

  • 在线文档导出为word/pdf/png
  • 瑞萨RX23E系列开发(二)建立工程
  • 【VUE】day06 动态组件 插槽 自定义指令 ESlint
  • 用 pytorch 从零开始创建大语言模型(五):预训练无标注数据
  • 【网络层协议】NAT技术内网穿透
  • 复变函数摘记2
  • 蓝桥备赛指南(8):01背包模型
  • WPS宏开发手册——JSA语法
  • 在Linux、Windows系统上安装开源InfluxDB——InfluxDB OSS v2并设置开机自启的保姆级图文教程
  • TCP协议原理
  • CentOS7 离线下载安装 GitLab CE
  • ubuntu设置开机自动运行应用
  • UE5摄像机震屏/晃动效果
  • 银河麒麟桌面版包管理器(四)
  • Xshell、Xsftp、Xmanager中文版安装包及使用教程
  • Uniapp:基于 Vue.js 的高效跨平台开发框架
  • 前端监控相关
  • GPU中HBM2和GDDR显存比较, 数据传输带宽具体比较
  • AtCoder [ABC156E] Roaming
  • Vue.js 组件开发全解析:从基础概念到实战应用
  • 海外考古大家访谈|冈村秀典:礼制的形成与早期中国
  • 湖南慈利一村干部用AI生成通知并擅自发布,乡纪委立案
  • 我使馆就中国公民和企业遭不公正待遇向菲方持续提出严正交涉
  • 马上评|中学生被操场地面烫伤,谁的“大课间”?
  • 俄谈判代表团已抵达土耳其,谈判预计在莫斯科时间10时左右开始
  • 问责!美国海军对“杜鲁门”号航母一系列事故展开调查