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

一、stress 工具介绍

tress 是一种工具,可以对符合 POSIX 标准的操作系统施加可配置数量的 CPU、内存、I/O 或磁盘压力,并报告其检测到的任何错误。

stress 不是一个基准测试。它是由系统管理员用来评估其系统扩展性的工具,由内核程序员用来评估感知性能特征,以及由系统程序员用来暴露只有在系统负载高时才会出现或更频繁出现的错误类别。

二、安装stress

stress项目 git地址:https://github.com/resurrecting-open-source-projects/stress.git

在ubuntu22.04上安装stress

stress目前没有提供安装包,需要下载源码编译安装

  1. 下载编译环境

    root@stress:~# apt-get install gcc g++ make
    
  2. 将stress源码克隆下来

    github项目拉取不下来可以考虑使用gitee仓库地址:https://gitee.com/cyhjf/stress.git

    root@stress:~# git clone https://gitee.com/cyhjf/stress.git
    
  3. 编译安装

    root@stress:~# cd stress/
    root@stress:~/stress# ./autogen.sh
    ./autogen.sh: 51: autoreconf: not found
    We have a problem...
    

    缺少autoreconf命令,下载后继续编译

    autoreconf 是一个用于重新配置源代码树的工具,主要用于基于 autotools(autoconf、automake
    等)构建系统的项目。它会自动运行 autoconf、automake、aclocal 等命令,重新生成 configure
    脚本和相关的构建文件,确保项目的构建系统是完整和正确的。这在项目源代码有更新后,需要重新生成构建配置文件时非常有用。

    root@stress:~/stress# apt -y install autoconf
    root@stress:~/stress# ./autogen.sh
    root@stress:~/stress# ./configure
    root@stress:~/stress# make && make install
    root@stress:~/stress# stress --version
    stress 1.0.7
    

三、压力测试

stress不提供测试报告,只是压测工具,让服务器处理高压状态暴露出可能出现的错误。

stress参数介绍

OPTIONS-?, --help显示此帮助说明。--version显示版本声明。-v, --verbose详细展示-q, --quiet安静模式-n, --dry-run查看执行效果,并非已经执行-t, --timeout <N>超时时间--backoff <N>在开始工作前先等待微秒级的时间。-c, --cpu <N>启动 N 个线程,这些线程会持续执行 sqrt() 函数。-i, --io <N>启动 N 个工作进程,让它们在“sync()”函数上进行运行。-m, --vm <N>启动若干个工作进程,它们会持续执行内存分配(malloc)和释放(free)操作。--vm-bytes <B>每个虚拟机工作进程分配字节内存(默认值为 256MB)。--vm-stride <B>每个字节操作一次(默认值为 4096)--vm-hang <N>在释放资源前先睡眠 N 秒(默认情况为无延迟,即 0 秒)。--vm-keep重新使用已损坏的内存,而非进行释放和重新分配操作。-d, --hdd <N>启动若干个工作进程,它们将执行写入/删除操作。--hdd-bytes <B>每个 HDD 工作进程写入 B 字节的数据(默认值为 1GB)。该文件将在当前目录中通过 mkstemp() 函数创建。Note: 数字可能后缀有“s”(秒)、“m”(分钟)、“h”(小时)、“d”(天)、“y”(年)(表示时间)或“B”(字节)、“K”(千字节)、
  1. 测试cpu负载
    查看本机cpu核心数

    root@stress:~/stress# lscpu | grep "On-line"
    On-line CPU(s) list:                  0,1
    

    开启8个线程,开另一个窗口执行 top -id 1查看cpu负载情况

    默认每个进程都在执行数学运算(计算质数)通过这种方式来模拟 CPU 的高负载,用于测试 CPU 的性能以及在高负载情况下的稳定性等。

    stress --cpu 8 --timeout 60s 
    
  2. 测试磁盘 io

    创建 4 个io进程,2个写并删除进程,指定每个进程写入100MB 文件并删除,开启另一个窗口使用 vmstat -n 1 持续监控

    stress --io 4 --hdd 2 --hdd-bytes 100M --timeout 60s
    
  3. 测试内存

    启动2个进程它们会持续执行内存分配(malloc)和释放(free)操作,每个进程分配1G,持续60s

    stress --vm 2 --vm-bytes 1G --vm-keep -t 60s
    

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

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

相关文章

不止抓请求:5种开发场景中的抓包组合策略(含 Charles 等工具)

很多开发者用抓包&#xff0c;只在“接口调不通”的时候。 但在复杂项目中&#xff0c;抓包早已不仅是调错工具&#xff0c;更是开发节奏提速器、协作问题解耦器、架构瓶颈探测器。 关键在于——不同场景下&#xff0c;你要用对方法、配对工具。 以下是我根据日常开发实战&a…

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…

计算机系统大作业——程序人生

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 物联网工程 学   号 2022112820 班 级 2237301 学 生 孟宇航 指 导 教 师 吴 锐 计算机科学与技术学院 2024年…

〈软件安装管家软件目录〉▷Windows系统版

①装机常用 ☞压缩解压WinRAR7-ZIPBandZip360压缩☞文件工具EverythingOneCommander XYplorer ReNamer ☞卸载软件CCleanerIObitUninstallerUninstall toolGeekAutodesk卸载Adobe卸载Ashampoo☞驱动软件驱动人生&#xff08;离线版&#xff09;驱动精灵&#xff08;离线版&…

CentOS Stream 8 Unit network.service not found

一、问题现象 在 CentOS Stream 8 操作系统中&#xff0c;配置完静态IP 信息&#xff0c;想重启网络服务。 执行如下命令&#xff1a; systemctl restart network 提示信息如下&#xff1a; Failed to restart network.service: Unit network.service not found. 二、问题…

极空间z4pro配置gitea mysql,内网穿透

极空间z4pro配置gitea mysql等记录&#xff0c;内网穿透 1、mysql、gitea镜像下载&#xff0c;极空间不成功&#xff0c;先用自己电脑科学后下载镜像,拉取代码&#xff1a; docker pull --platform linux/amd64 gitea/gitea:1.23 docker pull --platform linux/amd64 mysql:5.…

[假面骑士] 龙骑浅谈

作为一个伪二次元的我&#xff0c;总感觉目前没有什么好番可追。结果某一天在小破站刷到了一个假面骑士相关的视频&#xff0c;我就突发奇想&#xff0c;要不把假面骑士补完算了。 搜了搜&#xff0c;版权全在企鹅哪儿&#xff0c;不想充&#xff0c;于是去找了某盘的资源。果…

F5 GSLB 最佳实践:如何手动将Wide IP 故障转移到另一个数据中心

下面简要介绍如何手动将 Wide IP(用于 DNS 负载均衡)故障转移到另一个数据中心,并提供一些最佳实践。假设您使用 F5 BIG-IP DNS(以前称为 GTM)管理一个 Wide IP,该 IP 引用位于不同数据中心的虚拟服务器 (VIP)。 典型的 GSLB (BIG-IP DNS) 设置 Wide IP:表示您想要全局负…

FART 脱壳某大厂 App + CodeItem 修复 dex + 反编译还原源码

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ FART 脱壳 fartthread 方法在 app 启动的时候&#xff08;ActivityThread&#xff09;开启 fart 线程&#xff0c;休眠 60 秒&#xff0c;等待 app 启动完成后…

在maven项目中 继续增加maven 项目

背景项目 基于若依项目 由于若依项目都是Maven项目有父子结构因此自己建项目 也需如此管理 添加子Maven项目 利用idea 自带工具 maven archetype 这里选 webapp 骨架 在这里构建自己的项目架子即可 将 这个架子加入到启动类中

网络攻防技术十四:入侵检测与网络欺骗

文章目录 一、入侵检测概述二、入侵系统的分类三、入侵检测的分析方法1、特征检测&#xff08;滥用检测、误用检测&#xff09;2、异常检测 四、Snort入侵检测系统五、网络欺诈技术1、蜜罐2、蜜网3、网络欺骗防御 六、简答题1. 入侵检测系统对防火墙的安全弥补作用主要体现在哪…

吴恩达MCP课程(5):mcp_chatbot_prompt_resource.py

前提条件&#xff1a; 1、吴恩达MCP课程&#xff08;5&#xff09;&#xff1a;research_server_prompt_resource.py 2、server_config_prompt_resource.json文件 {"mcpServers": {"filesystem": {"command": "npx","args"…

【Linux】Linux基础指令3

1. which指令 功能&#xff1a;搜索系统指定的命令 2. whereis指令 功能&#xff1a;⽤于找到程序的源、⼆进制⽂件或⼿册 3. grep指令 语法&#xff1a; grep [ 选项 ] 搜寻字符串 ⽂件 功能&#xff1a;在⽂件中搜索字符串&#xff0c;将找到的⾏打印出来 常⽤选项&…

李沐《动手学深度学习》d2l安装教程

文章目录 最新回答报错提醒安装对应版本安装C工具和Windows SDK 最新回答 安装旧版本即可 pip install d2l0.17.0 WARNING: Ignoring invalid distribution -pencv-python (e:\python3.10\lib\site-packages) Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple C…

CMake 为 Debug 版本的库或可执行文件添加 d 后缀

在使用 CMake 构建项目时,我们经常需要区分 Debug 和 Release 构建版本。一个常见的做法是为 Debug 版本的库或可执行文件添加后缀(如 d),例如 libmylibd.so 或 myappd.exe。 本文将介绍几种在 CMake 中实现为 Debug 版本自动添加 d 后缀的方法。 方法一:使用 CMAKE_DEBU…

echarts树状图与vue3

父组件 - 使用RadialTreeView <template><div class"page-container"><div class"header-title">美国产品图谱 (ECharts Radial Tree)</div><RadialTreeView :chart-data"radialData" background-color"#E6E6F…

C# 日志管理功能代码

一、功能概述 本应用通过 AsyncFileLogger 类提供了灵活的日志控制功能&#xff0c;可在运行时通过 UI 界面启用或禁用日志记录。日志系统具有以下特点&#xff1a; 可控制开关&#xff1a;通过按钮随时启用或禁用日志&#xff0c;无需重启应用异步写入&#xff1a;日志记录采…

CSS 性能优化

目录 CSS 性能优化CSS 提高性能的方法1. 选择器优化1.1 选择器性能原则1.2 选择器优化示例 2. 重排&#xff08;Reflow&#xff09;和重绘&#xff08;Repaint&#xff09;优化2.1 重排和重绘的概念2.2 触发重排的操作2.3 触发重绘的操作2.4 优化重排和重绘的方法 3. 资源优化3…

【JJ斗地主-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

SON.stringify()和JSON.parse()之间的转换

1.JSON.stringify() 作用&#xff1a;将对象、数组转换成字符串 const obj {code: "500",message: "出错了", }; const jsonString JSON.stringify(obj); console.log(jsonString);//"{"code":"Mark Lee","message"…