深入理解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压测命令结果如下:
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[docker] Docker的私有仓库部署——Harbor

一、Docker原生私有仓库—— Registry 1.1 Registry的简单了解 关于Docker的仓库分为私有库和公有仓库&#xff0c;共有仓库只要在官方注册用户&#xff0c;登录即可使用。但对于仓库的使用&#xff0c;企业还是会有自己的专属镜像&#xff0c;所以私有库的搭建也是很有必要的…

【昕宝爸爸小模块】什么是POI,为什么它会导致内存溢出?

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你&#x1f44d;点赞、&#x1f5c2;️收藏、加❤️关注哦。 本文章CSDN首发&#xff0c;欢迎转载&#xff0c;要注明出处哦&#xff01; 先感谢优秀的你能认真的看完本文&…

Java项目:16 ssm vue的少儿编程网上报名系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 主要功能&#xff1a; 前台登录&#xff1a; 注册用户&#xff1a;用户名、密码、姓名、联系电话 用户&#xff1a; ①首页、课程信息推荐、课程资讯…

webassembly003 whisper.cpp的main项目-1

参数设置 /home/pdd/le/whisper.cpp-1.5.0/cmake-build-debug/bin/main options:-h, --help [default] show this help message and exit-t N, --threads N [4 ] number of threads to use during computation-p N, --processors …

基于python flask茶叶网站数据大屏设计与实现,可以做期末课程设计或者毕业设计

基于Python的茶叶网站数据大屏设计与实现是一个适合期末课程设计或毕业设计的项目。该项目旨在利用Python技术和数据可视化方法&#xff0c;设计和开发一个针对茶叶行业的数据大屏&#xff0c;用于展示和分析茶叶网站的相关数据。 项目背景 随着互联网的快速发展&#xff0c;越…

项目部署上线过程

写在前面 你应该去喜欢那些&#xff0c;让你觉得自己很美好&#xff0c;由衷感受到幸福的人&#xff0c;而不是那些让你卑微到尘埃里&#xff0c;让你觉得自己很没用的人。 …

PWN入门Protostar靶场Stack系列

Protostar靶场地址 https://exploit.education/protostar/溢出 源码分析 #include <stdlib.h> #include <unistd.h> #include <stdio.h>int main(int argc, char **argv) {volatile int modified; //定义一个变量char buffer[64]; //给…

【shell-10】shell实现的各种kafka脚本

kafka-shell工具 背景日志 log一.启动kafka->(start-kafka)二.停止kafka->(stop-kafka)三.创建topic->(create-topic)四.删除topic->(delete-topic)五.获取topic列表->(list-topic)六. 将文件数据 录入到kafka->(file-to-kafka)七.将kafka数据 下载到文件-&g…

k8s-基础知识(Service,NodePort,CusterIP,无头服务,NameSpace,资源限制)

Node Node 是 Pod 真正运行的主机&#xff0c;可以是物理机&#xff0c;也可以是虚拟机。 Annotations 原文链接 Annotations 是 key/value 形式附加于对象的注解。不同于 Labels 用于标志和选择对象&#xff0c;Annotations 则是用来记录一些附加信息&#xff0c;用来辅助应…

Docker部署思维导图工具SimpleMindMap并实现公网远程访问

文章目录 1. Docker一键部署思维导图2. 本地访问测试3. Linux安装Cpolar4. 配置公网地址5. 远程访问思维导图6. 固定Cpolar公网地址7. 固定地址访问 SimpleMindMap 是一个可私有部署的web思维导图工具。它提供了丰富的功能和特性&#xff0c;包含插件化架构、多种结构类型&…

如何实现无公网IP实现远程访问MongoDB文件数据库

&#x1f4d1;前言 本文主要是如何实现无公网IP实现远程访问MongoDB文件数据库的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x…

基于Matlab/Simulink直驱式风电储能制氢仿真模型

接着还是以直驱式风电为DG中的研究对象&#xff0c;上篇博客考虑的风电并网惯性的问题&#xff0c;这边博客主要讨论功率消纳的问题。 考虑到风速是随机变化的&#xff0c;导致风电输出功率的波动性和间歇性问题突出&#xff1b;随着其应用规模的不断扩大以及风电在电网中渗透率…