深入理解stress/stress-ng

文章目录

  • 一、概述
  • 二、安装
    • 2.1、源码编译安装
    • 2.2、命令行安装
    • 2.3、安装确认
  • 三、重要参数详解
    • 3.1、查询支持的参数
    • 3.2、重要参数说明
  • 四、实例
    • 4.1、压测CPU
    • 4.2、压测内存
    • 4.3、压测IO
    • 4.4、压测磁盘及IO
    • 4.5、压测磁盘及CPU


  团队博客: 汽车电子社区


一、概述

  stress是一种工作负载生成器工具,主要用于系统CPU、内存、I/O 和磁盘压力的可配置测量。
  stress-ng是压力工作负载生成器工具的更新版本,可测试系统的以下功能:
    1、CPU 计算。
    2、驱动压力。
    3、I/O 同步。
    4、管道 I/O。
    5、缓存抖动。
    6、虚拟机压力。
    7、socket压力。
    8、进程创建和终止。
    9、上下文切换属性。

二、安装

2.1、源码编译安装

  源码编译安装请参考如下命令:

// 下载源码
wget https://github.com/ColinIanKing/stress-ng/archive/refs/tags/V0.17.04.tar.gz

在这里插入图片描述  解压源码包请参考如下命令:

// 解压源码包
tar zxvf V0.17.04.tar.gz

  解压命令执行结果如下:

lyb@lyb:~/learn$ tar zxvf V0.17.04.tar.gz 
stress-ng-0.17.04/
stress-ng-0.17.04/.github/
stress-ng-0.17.04/.github/FUNDING.yml
stress-ng-0.17.04/.github/workflows/
stress-ng-0.17.04/.github/workflows/container-image-edge.yml
stress-ng-0.17.04/.github/workflows/container-image-stable.yml
stress-ng-0.17.04/.gitignore
stress-ng-0.17.04/.travis.yml
stress-ng-0.17.04/COPYING
stress-ng-0.17.04/Dockerfile
stress-ng-0.17.04/Makefile
stress-ng-0.17.04/Makefile.config
stress-ng-0.17.04/README.Android

......

stress-ng-0.17.04/test/test-vhangup.c
stress-ng-0.17.04/test/test-vla-arg.c
stress-ng-0.17.04/test/test-vmsplice.c
stress-ng-0.17.04/test/test-vt_consize.c
stress-ng-0.17.04/test/test-vt_mode.c
stress-ng-0.17.04/test/test-vt_sizes.c
stress-ng-0.17.04/test/test-vt_stat.c
stress-ng-0.17.04/test/test-wait3.c
stress-ng-0.17.04/test/test-wait4.c
stress-ng-0.17.04/test/test-waitid.c
stress-ng-0.17.04/test/test-waitpid.c
stress-ng-0.17.04/test/test-wchar.c
stress-ng-0.17.04/test/test-wcsfunc.c
stress-ng-0.17.04/test/test-winsize.c
stress-ng-0.17.04/usr.bin.pulseaudio.eg
lyb@lyb:~/learn$

  编译源码请参考如下命令:

// 编译源码
make

  编译命令执行结果如下:
在这里插入图片描述
  按照请参考如下命令:

sudo make install

  安装命令执行结果如下:
在这里插入图片描述

2.2、命令行安装

  Ubuntu下执行如下命令进行安装:

sudo apt-get install stress-ng

  命令行安装执行结果如下:
在这里插入图片描述

2.3、安装确认

  执行如下命令来确认stress-ng是否安装成功:

stress-ng --version

在这里插入图片描述

三、重要参数详解

3.1、查询支持的参数

  执行如下命令来确认stress-ng是否安装成功:

man stress-ng
#或者
stress-ng --help

3.2、重要参数说明

语法格式:
stress <options>

常用选项:
	-c, --cpu N                产生 N 个进程,每个进程都反复不停的计算随机数的平方根
	-i, --io N                 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上
	-m, --vm N                 产生 N 个进程,每个进程不断分配和释放内存
		--vm-bytes B           指定分配内存的大小
		--vm-stride B          不断的给部分内存赋值,让 COW(Copy On Write)发生
		--vm-hang N            指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程
		--vm-keep              一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)
	-d, --hadd N               产生 N 个不断执行 write 和 unlink 函数的进程(创建文件,写入内容,删除文件)
		--hadd-bytes B         指定文件大小
	-t, --timeout N            在 N 秒后结束程序        
	--backoff N                等待N微妙后开始运行
	-q, --quiet                程序在运行的过程中不输出信息
	-n, --dry-run              输出程序会做什么而并不实际执行相关的操作
	--version                  显示版本号
	-v, --verbose              显示详细的信息

四、实例

4.1、压测CPU

  使用如下命令进行CPU压测:

# 使用8个CPU进程数,进行矩阵乘法计算进行压力测试,持续时间为60秒。
stress-ng --cpu 8 --cpu-method matrixprod --timeout 60s

  执行CPU压测命令结果如下:
在这里插入图片描述
在这里插入图片描述

4.2、压测内存

  使用如下命令进行内存压测:

# 开启2个进程分配内存,每次分配1GB内存,保持60秒后释放,60秒后退出。
stress --vm 2 --vm-bytes 1G --vm-hang 60 --timeout 60s

  执行内存压测命令结果如下:
在这里插入图片描述
在这里插入图片描述

4.3、压测IO

  使用如下命令进行IO压测:

# 4 个进程,每个进程都反复调用 sync 函数将内存上的内容写到硬盘上
stress -i 4

  执行IO压测命令结果如下:
在这里插入图片描述
在这里插入图片描述

4.4、压测磁盘及IO

  使用如下命令进行磁盘和IO压测:

# 一个进程不断的在磁盘上创建 10M 大小的文件并写入内容:
stress-ng -d 10 --hdd-bytes 100M

  执行磁盘和IO压测命令结果如下:
在这里插入图片描述
在这里插入图片描述

4.5、压测磁盘及CPU

  使用如下命令进行磁盘和CPU:

# 使用4个CPU进程,2个I/O进程,测试60秒
stress-ng --cpu 4 -i 2 --timeout 60s

  执行IO压测命令结果如下:
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【AIGC】Diffusers:AutoPipeline自动化扩散生图管道

前言 &#x1f917; 扩散器能够完成许多不同的任务&#xff0c;并且您通常可以将相同的预训练权重用于多个任务&#xff0c;例如文本到图像、图像到图像和修复。但是&#xff0c;如果您不熟悉库和扩散模型&#xff0c;可能很难知道将哪个管道用于任务。例如&#xff0c;如果您…

新闻界的AI革命:Newspager GPT 全面解析

简介有没有想过一家报社是如何运作的&#xff1f;传统的报社要有策划、采编、编辑、美工、审校等等角色&#xff0c;而现在借助 AI&#xff0c;很多事情可以由 AI 代替了&#xff01;Newspager GPT 就是这样一个由多智能体组成的 AI 系统&#xff0c;你只要输入几个你感兴趣的主…

Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析

2.3.2 入门 阿里云oss 对象存储服务的准备工作我们已经完成了&#xff0c;接下来我们就来完成第二步操作&#xff1a;参照官方所提供的sdk示例来编写入门程序。 首先我们需要来打开阿里云OSS的官方文档&#xff0c;在官方文档中找到 SDK 的示例代码&#xff1a; 参照官方提供…

基于 Gurobi 的纸浆运载船顺序装卸决策建模求解|Gurobi优化应用

Pulp-Carrier-Loading-Optimization-with-Gurobi 基于 Gurobi 的纸浆运载船顺序装卸决策建模求解。中山大学智能工程学院《运筹学》课程期末建模课程设计。优化工具&#xff1a;Python的Gurobi 项目仓库 Github: Pulp-Carrier-Loading-Optimization-with-Gurobi 摘要 本研究…

E4 基于Mysql的游标定义和应用

一、实验目的: 熟练使用MySQL游标的定义和应用。 二、实验要求: 1、基本硬件配置:英特尔Pentium III 以上,大于4G内存&#xff1b; 2、软件要求:Mysql&#xff1b; 3、时间:1小时&#xff1b; 4、撰写实验报告并按时提交。 三、实验内容: 问题1&#xff1a;请写一个存储…

快速打通 Vue 3(五):详解 Vue 中的路由

08. 路由 很激动进入了 Vue 3 的学习&#xff0c;作为一个已经上线了三年多的框架&#xff0c;很多项目都开始使用 Vue 3 来编写了 这一组文章主要聚焦于 Vue 3 的新技术和新特性 如果想要学习基础的 Vue 语法可以看我专栏中的其他博客 Vue&#xff08;一&#xff09;&#xff…

蓝桥杯备战——5.动态数码管扫描

1.分析原理图 经查阅说明书得知数码管为共阳极&#xff0c;共阳端口接到了U8,而段码接到了U7。 如果需要选中U8,我们只需要将P250;P261;P271; 如果需要选中U7,我们只需要将P251;P261;P271; 2.代码示例 void Delay1ms() //12.000MHz {unsigned char data i, j;i 12;j 169;…

贪心算法-01:跳跃游戏

关于贪心算法 贪心算法是动态规划的一个特例&#xff0c;相对于动态规划&#xff0c;使用贪心算法需要满足更多条件&#xff0c;但是效率比动态规划要高。 贪心选择的性质就是&#xff1a;每一步都做出一个局部最优解&#xff0c;最终的结果就是全局最优。不过这是一种特殊性…

uniapp组件库中Collapse 折叠面板 的使用方法

目录 #平台差异说明 #基本使用 #控制面板的初始状态&#xff0c;以及是否可以操作 #自定义样式 #1. 如果修改展开后的内容&#xff1f; #2. 如何自定义标题的样式&#xff1f; #3. 如何修改整个Item的样式&#xff1f; #API #Collapse Props #Collapse Item Props #…

ORM-06-jooq 入门介绍

拓展阅读 The jdbc pool for java.(java 手写 jdbc 数据库连接池实现) The simple mybatis.&#xff08;手写简易版 mybatis&#xff09; JOOQ JOOQ 可以通过数据库直接生成 java 代码&#xff0c;通过 flent-api 进行数据库操作。 SQL builder JOOQ 非常的灵活和强大。你可…

深入理解旅游网站开发:Java+SpringBoot+Vue+MySQL的实战经验

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

flink内存管理(三):MemorySegment内存使用场景:托管内存与网络内存

文章目录 一.ManagedMemory&#xff08;算子&#xff09;内存的申请与使用1. tm内存申请与使用大致流程2. 创建MemoryManager实例3. 算子使用通过MemoryManager使用内存4. ManagedMemory内存空间申请流程 二.NetworkBuffer内存申请与使用1. NetworkBuffer构造器 在Flink内存模型…

Windows11 Copilot助手开启教程(免费GPT-4)

Windows11上开启Copilot助手教程踩坑指南 Copilot介绍Copilot开启步骤1、更新系统2、更改语言和区域3、下载 ViVeTool 工具4、开启Copilot 使用 Copilot介绍 Windows Copilot 是 Windows 11 中的一个新功能&#xff0c;它可以让你与一个智能助理进行对话&#xff0c;获取信息&…

树莓派无显示屏连接

终端命令控制树莓派关机 1&#xff1a;用网线连接树莓派 按照正常的步骤 &#xff0c;搜索控制面板&#xff0c;网络和internet&#xff0c;网络和共享中心&#xff0c;更改适配器设置&#xff0c;右键WIFI&#xff0c;点击属性&#xff0c;点击共享&#xff0c;打勾允许即可&…

5G安卓手机定制_基于天玑900的安卓主板方案

5G安卓手机方案是一款采用联发科MT6877(天玑900)平台的高性能、可运行安卓操作系统的5G智能模块。该手机采用台积电6纳米低功耗工艺&#xff0c;主频高达2.4GHz&#xff0c;内存支持LPDDR5&#xff0c;并支持5G Sub-6GHz全频段和5G双载波聚合技术等多种制式。同时&#xff0c;该…

Typora1.7.6安装、激活、图床设置和使用

1.安装Typora 双击”typora-setup-x64-1.7.6.exe“安装包。 如果之前安装过先卸载&#xff0c;删除原文件夹。 Typora 1.7.6下载 提取码&#xff1a;ix2b 选择“Install for all users”。 图1-1 选择安装模式 选择安装目录&#xff0c;然后选择“Next”。 图1-2 选择安装路…

23111 C++ day2

思维导图 自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height),定义公有成员函数: 初始化函数:void init(int w, int h)更改宽度的函数:set_w(int w)更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #include <iostream&g…

web安全学习笔记【10】——数据包分析

基础[1] [2] [3] [4] 入门-HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断[5] [6] [7] #知识点&#xff1a; 1、Web常规-系统&中间件&数据库&源码等 2、Web其他-前后端&软件&Docker&分配站等 3、Web拓展-CDN&WAF&OS…

go语言(十三)-----interface

一、Interface 通用万能类型 空接口int&#xff0c;string&#xff0c;float&#xff0c;struct都实现了interface都可以用interface{}类型,引用任意的数据类型 package mainimport "fmt"//interface()是万能数据类型 func myFunc(arg interface{}) {fmt.Println(&…

pycharm中无法使用anaconda虚拟环境

anaconda里创建了虚拟环境&#xff0c;然后在虚拟环境中明明安装了TensorFlow1.12&#xff0c;但是到pycharm中使用anaconda的虚拟环境时&#xff0c;就是没有TensorFlow1.12&#xff0c;注意下面这幅图 里面有一个选项“use conda package manager”&#xff0c;这个默认是勾…