stress-ng 服务器压力测试的工具学习

news2025/6/9 20:13:54

一、stress-ng (下一代压力测试) 介绍

项目地址:https://github.com/ColinIanKing/stress-ng

stress-ng 将以多种可选方式对计算机系统进行压力测试。它旨在锻炼计算机的各种物理子系统以及各种操作系统内核接口。stress-ng 的特点:

  • 360+ 压力测试
  • 100+ 针对 CPU 的压力测试,涵盖浮点数、整数、位操作和控制流
  • 60+ 虚拟内存压力测试
  • 80+ 文件系统压力测试
  • 50+ 内存/CPU 缓存压力测试
  • 便携性:支持在 Linux(Debian、Devuan、RHEL、Fedora、Centos、Slackware OpenSUSE、Ubuntu 等)、Solaris、FreeBSD、NetBSD、OpenBSD、DragonFlyBSD、Minix、Android、MacOS X、Serenity OS、GNU/Hurd、Haiku、Windows Subsystem for Linux、Cygwin 以及 SunOs/Dilos/Solaris 上构建,使用 gcc、musl-gcc、clang、icc、icx、tcc 和 pcc 编译器。
  • 在 alpha、armel、armhf、arm64、hppa、i386、loong64、m68k、mips32、mips64、power32、ppc64el、risc-v、sh4、s390x、sparc64、x86-64 架构上测试。

stress-ng 最初的设计目的是让机器高负荷运行,以触发硬件问题(如热过载)以及仅在系统被高强度使用时才会出现的操作系统错误。使用 stress-ng 需谨慎,因为某些测试可能导致设计不良的硬件系统过热,并可能引发难以停止的过度系统抖动。

stress-ng 还可以测量测试吞吐率;这有助于观察不同操作系统版本或不同硬件类型的性能变化。然而,它从未被设计为精确的基准测试套件,因此请勿以这种方式使用它。

以 root 权限运行 stress-ng 将调整 Linux 系统的内存不足设置,使压力测试工具在低内存情况下无法被杀死,因此请谨慎使用。在适当的权限下,stress-ng 可以允许调整 ionice 类和 ionice 级别,同样,这应该小心使用。

二、 stress-ng 安装

stress-ng 有多种安装方式,docker,源码,系统包。这里使用源码安装,源码安装比较通用,在ubunt22.04上进行安装

github项目无法拉去时时gitee地址:https://gitee.com/mirrors/stress-ng.git

  1. 下载构建环境

    apt-get install gcc g++ libacl1-dev libaio-dev libapparmor-dev libatomic1 libattr1-dev libbsd-dev libcap-dev libeigen3-dev libgbm-dev libcrypt-dev libglvnd-dev libipsec-mb-dev libjpeg-dev libjudy-dev libkeyutils-dev libkmod-dev libmd-dev libmpfr-dev libsctp-dev libxxhash-dev zlib1g-dev -y
    
  2. 克隆代码

    root@stress:~# git clone https://gitee.com/mirrors/stress-ng.git
    
  3. 安装

    root@stress:~# cd stress-ng/
    root@stress:~/stress-ng# make clean
    root@stress:~/stress-ng# make -j
    root@stress:~/stress-ng# make install
    

三、压力测试

  1. 压满所有cpu,执行60秒,并生成报告

    root@stress:~# stress-ng --cpu 4 -t 60s --metrics
    stress-ng: info:  [366611] setting to a 1 min run per stressor
    stress-ng: info:  [366611] dispatching hogs: 4 matrix
    stress-ng: metrc: [366611] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s CPU used per       RSS Max
    stress-ng: metrc: [366611]                           (secs)    (secs)    (secs)   (real time) (usr+sys time) instance (%)          (KB)
    stress-ng: metrc: [366611] matrix          1300112     60.00    238.44      0.67     21668.05        5437.21        99.63          3648
    stress-ng: metrc: [366611] miscellaneous metrics:
    stress-ng: metrc: [366611] matrix            333299.37 add matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            660483.97 copy matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            230069.98 div matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            110125.18 frobenius matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            655736.94 hadamard matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            312893.74 identity matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            528567.28 mean matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            678433.17 mult matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            635834.08 negate matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix               760.09 prod matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            479447.95 sub matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix               814.18 square matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            123778.71 trans matrix ops per sec (harmonic mean of 4 instances)
    stress-ng: metrc: [366611] matrix            880443.76 zero matrix ops per sec (harmonic mean of 4 instances)
    
  • --metrics :压力测试结束时输出一些伪性能指标,提供系统在测试过程中活动的概况,帮助用户了解系统在不同负载下的表现。
  • -t : 超时时间
  • --cpu 4 : 启用4个线程才执行cpu密集型任务
  1. 内存测试

    root@stress:~# stress-ng --vm 4 --vm-byte 1G -t 60s --metrics
    stress-ng: info:  [372717] setting to a 1 min run per stressor
    stress-ng: info:  [372717] dispatching hogs: 4 vm
    stress-ng: metrc: [372717] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s CPU used per       RSS Max
    stress-ng: metrc: [372717]                           (secs)    (secs)    (secs)   (real time) (usr+sys time) instance (%)          (KB)
    stress-ng: metrc: [372717] vm              5794318     60.01    226.55     12.77     96561.89       24211.64        99.71        298116
    stress-ng: info:  [372717] skipped: 0`在这里插入代码片`
    stress-ng: info:  [372717] passed: 4: vm (4)
    stress-ng: info:  [372717] failed: 0
    stress-ng: info:  [372717] metrics untrustworthy: 0
    stress-ng: info:  [372717] successful run completed in 1 min
    
  • --vm 4: 启动 4 个虚拟内存工作线程
  • --vm-byte 1G: 每个虚拟现场分配1G内存
  1. 磁盘及I/O测试

    stress-ng --io 6 --pseek 4 --hdd-bytes 1024M -t 60 --metrics
    
    • --io 6:启动 6 个磁盘 I/O 工作线程来执行同步操作
    • --pseek 4: 启动 4 个 worker 线程来执行磁盘随机读写操作。
    • --hdd-bytes 1024M : 为每个磁盘 I/O 工作线程和随机读写工作线程分配 1024MB 的磁盘空间。这表示每个线程会使用 1024MB 的磁盘空间来执行 I/O 操作。
    root@stress:~# stress-ng --io 6 --pseek 4 --hdd-bytes 1024M -t 60 --metrics
    stress-ng: info:  [379354] setting to a 1 min run per stressor
    stress-ng: info:  [379354] dispatching hogs: 6 io, 4 pseek
    stress-ng: info:  [379355] io: this is a legacy I/O sync stressor, consider using iomix instead
    stress-ng: metrc: [379354] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s CPU used per       RSS Max
    stress-ng: metrc: [379354]                           (secs)    (secs)    (secs)   (real time) (usr+sys time) instance (%)          (KB)
    stress-ng: metrc: [379354] io                 9015     60.00      0.02      7.35       150.25        1223.66         2.05          3396
    stress-ng: metrc: [379354] pseek          12847931     60.00     50.60    105.33    214120.79       82392.79        64.97          4628
    stress-ng: metrc: [379354] miscellaneous metrics:
    stress-ng: metrc: [379354] pseek               1596.71 MB/sec write rate (harmonic mean of 4 instances)
    stress-ng: metrc: [379354] pseek                153.22 MB/sec read rate (harmonic mean of 4 instances)
    stress-ng: info:  [379354] skipped: 0
    stress-ng: info:  [379354] passed: 10: io (6) pseek (4)
    stress-ng: info:  [379354] failed: 0
    stress-ng: info:  [379354] metrics untrustworthy: 0
    stress-ng: info:  [379354] successful run completed in 1 min
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6.8 note

paxos算法_初步感知 Paxos算法保证一致性主要通过以下几个关键步骤和机制: 准备阶段 - 提议者向所有接受者发送准备请求,请求中包含一个唯一的编号。 - 接受者收到请求后,会检查编号,如果编号比它之前见过的都大,就会承…

面试心得 --- 车载诊断测试常见的一些面试问题

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

跟进一下目前最新的大数据技术

搭建最新平台 40C64G服务器,搭建3节点kvm,8C12G。 apache-hive-4.0.1-bin apache-tez-0.10.4-bin flink-1.20.1 hadoop-3.4.1 hbase-2.6.2 jdk-11.0.276 jdk8u452-b09 jdk8终于可以不用了 spark-3.5.5-bin-hadoop3 zookeeper-3.9.3 trino…

系统模块与功能设计框架

系统模块与功能设计框架,严格遵循专业架构设计原则,基于行业标准(如微服务架构、DDD领域驱动设计)构建。设计采用分层解耦模式,确保可扩展性和可维护性,适用于电商、企业服务、数字平台等中大型系统。 系统…

我爱学算法之—— 前缀和(中)

一、724. 寻找数组的中心下标 题目解析 这道题,给定数组nums,要求我们找出这个数组的中心下标。 **中心下标:**指左侧所有元素的和等于右侧所有元素的和。 如果存在多个中心数组下标,就返回最左侧的中心数组下标。 算法思路 暴…

Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程ES(三)

DSL官方地址: DSL查询分类 Elasticsearch提供了基于JSON的DSL(https://www.elastic.co/docs/explore-analyze/query-filter/languages/querydsl)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据&#xff0…

React Hooks 指南:何时使用 useEffect ?

在 React 的函数组件中,useEffect Hook 是一个强大且不可或缺的工具。它允许我们处理副作用 (side effects)——那些在组件渲染之外发生的操作。但是,什么时候才是使用 useEffect 的正确时机呢?让我们深入探讨一下! 什么是副作用…

API标准的本质与演进:从 REST 架构到 AI 服务集成

在当今数字化浪潮中,API 已成为系统之间沟通与协作的“语言”,REST(Representational State Transfer,表述性状态转移)是一种基于 HTTP 协议的 Web 架构风格。它不仅改变了 Web 应用开发的方式,也成为构建现…

html - <mark>标签

<mark> 标签在HTML中用于高亮显示文本&#xff0c;通常用于突出显示某些重要的部分。它的默认样式通常是背景色为黄色&#xff0c;但你可以通过CSS自定义其外观。 1. 基本用法 <mark> 标签用于标记文本的高亮显示。它常用于搜索结果中&#xff0c;突出显示匹配的…

JavaWeb:前端工程化-Vue

Vue工程化 介绍 什么是Vue? 小白眼里前端开发 前端工程化 环境准备 D:\Program Files\nodejs Vue项目-快速入门 步骤 D:\front\vue 安装依赖 目录结构 code . vscode打开 启动 VScode侧边栏左下角&#xff0c;没有NPM脚本&#xff0c;如何打开&#xff1f;&…

AT_abc409_e [ABC409E] Pair Annihilation

AT_abc409_e [ABC409E] Pair Annihilation 赛时没开longlong挂了。 思路 首先我们可以把这棵树转化为一颗有根树&#xff0c;且所有电子的都朝根节点移动。 那么接下来我们就需要选择一个最优的树根。 考虑换根dp。 但是可以发现换根时答案其实是没有变化的。 我们设 f…

开疆智能Ethernet/IP转Modbus网关连接西门子BW500积算仪配置案例

本案例是通过Ethernet转Modbus网关将皮带秤数据接入到罗克韦尔1769L32E型PLC中。 首先进行ABB PLC的设置 1&#xff0c; 运行 RSLogix 5000 程序加载Ethernet转Modbus网关的EDS 文件&#xff1a; 2&#xff0c;新建工程并添加PLC 3&#xff0c;New Module添加网关&#xff…

【五子棋在线对战】三.数据管理模块实现

数据管理模块实现 1.数据库表的设计2.数据管理模块的封装和实现2.1 user_table() && ~user_table()2.2 insert() 注册时新增用户2.3 login() 登录验证&#xff0c;并返回详细的用户信息2.4 通过用户名获取用户信息 && 通过用户id获取用户信息2.5 win() &&a…

【JMeter】后置处理器 - 提取器

文章目录 概览边界提取器正则提取器JSON提取器 概览 CSS/JQuery提取器&#xff1b;给网页使用JSON提取器&#xff1a;给JSON数据使用★边界提取器&#xff1a;给字符串使用★正则表达式提取器&#xff1a;更加高级的字符使用★Xpath提取器&#xff1a;给网页使用 边界提取器…

OpenAI技术路线急转:从TypeScript到Rust的Codex CLI重构内幕

目录 前言&#xff1a;OpenAI的技术抉择引发业界思考 Codex CLI&#xff1a;OpenAI的终端AI编程利器 语言抉择的戏剧性反转&#xff1a;从TypeScript到Rust Rust重写的四大技术动因 1. 零依赖部署&#xff1a;消除环境配置痛点 2. 内存安全与沙箱隔离 3. 性能的全面碾压 …

window下配置ssh免密登录服务器

window下配置ssh免密登录服务器 本地windows远程登录我的ssh服务器10.10.101.xx服务器&#xff0c;想要每次都免密登录这个服务器. 记录下教程&#xff0c;防止后期忘记&#xff0c;指导我实现这个过程。 教程 二、实践步骤&#xff1a;Windows 上配置 SSH 免密登录 2.1 确…

nginx部署

配置阿里云yum源 安装如下编译工具 yum install -y gcc gcc-c autoconf automake make #安装使用nginx还得安装nginx所需的一些第三方系统库的支持&#xff0c;比如nginx的静态资源压缩功能所需的gzip lib库&#xff0c;nginx需要支持URL重写&#xff0c;所需的pcre库&…

线性规划饮食问题求解:FastAPI作为服务端+libhv作为客户端实现

之前在 Pyomo介绍-CSDN博客 中介绍过通过Pyomo求解线性规划问题&#xff0c;这里使用FastAPI作为服务端&#xff0c;开源网络库libhv作为客户端&#xff0c;求解饮食成本最小化问题。 服务端测试代码test_fastapi_pyomo_server.py如下&#xff1a; from fastapi import FastAP…

前端验证下跨域问题(npm验证)

文章目录 一、背景二、效果展示三、代码展示3.1&#xff09;index.html3.2&#xff09;package.json3.3&#xff09; service.js3.4&#xff09;service2.js 四、使用说明4.1&#xff09;安装依赖4.2&#xff09;启动服务器4.3&#xff09;访问前端页面 五、跨域解决方案说明六…

Linux Docker的简介

参考资料 30分钟Docker入门教程 ◀ 本篇博客所有图片皆来自于该视频截图阮一峰 - Docker 入门教程 目录 一. 环境配置时可能会遇到的问题二. 什么是Docker三. 虚拟机 与 Docker 的区别3.1 虚拟机3.2 Docker 四. Docker的基本架构五. Dockerfile 一. 环境配置时可能会遇到的问题…