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

stress-ng压测CPU内存

下面是一个在 8 核心 CPU + 16 GB 内存的 Linux 系统上,将 CPU 和内存同时打满的压测脚本方案,使用 stress-ng 工具来实现。


为什么选择 stress-ng

  • 它是一个功能全面、灵活、强大的系统压力测试工具;
  • 支持对 CPU、内存、I/O 等子系统施加压力;
  • 可指定占用全部核心,并控制内存使用量、执行时间等;
    ([LFCS认证备考电子书][1], [Ubuntu Wiki][2], [工具棚][3])

脚本示例:stress-test.sh

#!/bin/bash# 压力测试脚本:CPU + 内存满载DURATION="300s"  # 持续时间(300秒 = 5分钟)
CPU_CORES=0      # 0 表示自动检测并使用所有在线 CPU
VM_INSTANCES=8   # 启动内存压力进程个数
VM_BYTES="12G"   # 每个实例分配内存(总计约 96GB,系统会因超限导致页面交换)echo "Starting stress-ng: CPU + memory stress for $DURATION"
echo "CPU cores: all ($CPU_CORES), VM instances: $VM_INSTANCES, VM bytes: $VM_BYTES"sudo stress-ng \--cpu $CPU_CORES \--vm $VM_INSTANCES \--vm-bytes $VM_BYTES \--vm-hang 0 \--timeout $DURATION \--metrics-brief

脚本说明:

  • --cpu 0:对所有核心施加 CPU 压力;
  • --vm 8 + --vm-bytes 12G:启动 8 个虚拟内存压力进程,每个分配 12 GB;
    可根据实际内存进行调整,如 --vm-bytes 50% 表示使用一半内存([工具棚][3], [Reddit][4]);
  • --timeout:指定压力持续时长;
  • --metrics-brief:输出简要的执行信息;
  • --vm-hang 0:防止内存释放,持续稳定压力。

使用步骤

  1. 安装 stress-ng

    • CentOS / RHEL / Fedora

      sudo dnf install -y stress-ng
      
    • Debian / Ubuntu

      sudo apt update && sudo apt install -y stress-ng
      
  2. 保存脚本并赋予执行权限

    chmod +x stress-test.sh
    
  3. 执行脚本并观察效果

    ./stress-test.sh
    
  4. 监控系统负载,例如:

    top
    swag -n 1   # An interactive monitor like htop 或 atop 也可
    

显著特性与风险

  • 通过设置高于物理内存的 --vm-bytes,可以强制系统使用 swap,从而引发系统 OOM 压力;
  • 脚本中使用的参数是激进的,请谨慎应用于生产环境;
  • 如果要控制 CPU 占用百分比,可使用 --cpu-load P,但多数场景还是全满更具测试意义([工具棚][3], [Server Fault][5])。

http://www.zskr.cn/news/1772.html

相关文章:

  • 答案
  • datadome OfflineAudioContext
  • sentinel-1.8.0 安装
  • 数据结构与算法-27.树-并查集
  • wpf XAML设计器在加载用户控件的时候,提示null引用等直接执行了用户控件里构造函数代码的问题
  • Linux中怎么调整系统inode数量?
  • 【项目实战】基于WS63的鸿蒙星闪红外遥控车(循迹、超声波避障、远程控制、星闪/红外遥控)有教程代码
  • macbook pro怎么安装windows系统
  • XSS与CSRF的联系与区别
  • 异或
  • macbook pro如何安装windows系统
  • 【ACM出版】第四届公共管理、数字经济与互联网技术国际学术会议(ICPDI 2025)
  • 如何在 Linux 中关闭 Swap(虚拟内存)
  • 基于STM32F411的AM2320温湿度采集程序
  • 博弈论杂谈
  • 基于MATLAB的图像配准与拼接实现
  • ubuntu 修改 时间
  • CF2022E 题解 | 数学、并查集
  • 领悟2025.9.10
  • 公众号文章如何添加附件?微信公众号支持附件下载Word、Excel、PDF、PPT等
  • Java11-快速启动指南-全-
  • openssl编程之sm3哈希代码示例
  • timescaledb在ubuntu上的高可用部署步骤记录
  • Docker存储
  • SAC In JAX【个人记录向】
  • 1.2 亿篇论文数据集,多学科学术语料库,涵盖医学、化学、生物学、人文、物理、工程、数学、生态、经济与计算机科学,用于 NLP、知识图谱与大模型训练
  • Putty 工具集 plink和pscp使用
  • MyEMS:开源驱动下的企业能源管理革新者 —— 从技术架构到 “双碳” 落地的实践之路
  • 多进程、多线程、分布式锁
  • 介绍Activiti BPMN visualizer插件的图形界面