1. 安装方法

• Ubuntu/Debian:

  sudo apt update && sudo apt install stress-ng -y

• CentOS/RHEL(需EPEL源):

  sudo yum install epel-release -ysudo yum install stress-ng -y

• 源码编译(适合定制化需求):

  wget https://fossies.org/linux/privat/stress-ng-最新版本.tar.gztar -xzf stress-ng-*.tar.gzcd stress-ng-*make && sudo make install#验证安装:stress-ng --version
  1. 核心功能与命令

CPU压力测试,模拟服务器cpu使用率100%

• 基础命令(满载所有CPU):

# $(nproc)指的是服务器核数,如有8个核,就写8,全部占满
stress-ng --cpu $(nproc) --timeout 60s

• 控制负载百分比(如70%利用率):

  stress-ng --cpu 4 --cpu-load 70 --timeout 2m

• 指定算法(如矩阵乘法、FFT):

  stress-ng --cpu 4 --cpu-method matrixprod --timeout 600s  # 矩阵运算stress-ng --cpu 4 --cpu-method fft --timeout 2m           # 快速傅里叶变换

通过top或htop监控CPU占用。

内存压力测试

• 动态分配内存(默认反复分配/释放):

  stress-ng --vm 4 --vm-bytes 1G --timeout 100sstress-ng --vm 4 --vm-bytes 1G --timeout 100s --vm-hang 100s

timeout和vm-hang参数说明:

​1. --timeout(全局超时)​​​作用范围​:控制整个压力测试进程的运行时长。
​行为​:
指定测试的总持续时间(例如 100s 表示 100 秒)。
时间到达后,​所有压力测试子进程(包括 CPU、内存、I/O 等)均会强制终止,测试结束。​示例​:
--timeout 100s 表示整个测试会在 100 秒后自动停止。​2. --vm-hang(内存测试局部挂起)​​​作用范围​:仅针对内存压力测试子进程​(由 --vm 创建的进程)。
​行为​:内存子进程在每次分配内存(malloc)后,会挂起(睡眠)指定时长​(例如 100s),期间不释放内存。
挂起结束后,释放内存并重新开始分配-挂起循环,直到全局 --timeout 触发终止。​目的​:模拟内存被长期占用的场景(如内存泄漏或缓存驻留),而非频繁分配/释放。

• 持续占用内存(避免释放):

stress-ng --vm 2 --vm-bytes 2G --vm-keep --timeout 5m

• 内存加压后休眠(低CPU占用):

  stress-ng --vm 4 --vm-bytes 512M --vm-hang 30 --timeout 2m

使用free -h或vmstat监控内存使用。

磁盘I/O测试

• 同步I/O压力(频繁调用sync):

  stress-ng --io 4 --timeout 60s

• 文件读写压力(创建/删除大文件):

stress-ng --hdd 3 --hdd-bytes 20G --timeout 180s  # 写入20GB文件
# 也可以使用dd命令,创建名为test*.txt的文件,如test1.txt,创建50个,每个文件20G,共1000G
dd if=/dev/zero of=test%s.txt count=50 bs=20G

监控工具:iostat或iotop。

• 混合负载测试

stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 300s

同时加压CPU、I/O和内存,模拟复杂场景。

  1. 高级参数与场景

• 超时控制:

–timeout支持单位(s/m/h),如–timeout 1h30m。
• 性能指标输出:

–metrics-brief输出测试摘要(如bogo操作次数):

  stress-ng --cpu 4 --timeout 60s --metrics-brief

• 自定义测试时长:

通过–vm-ops或–cpu-ops按操作次数结束测试:

  stress-ng --hdd 5 --hdd-ops 100000  # 完成10万次操作后停止

• 低负载模拟(开发调试):

  stress-ng --cpu 2 --cpu-load 30 --timeout 10m  # 30%低负载
  1. 使用注意事项

  2. 避免生产环境直接使用:
    压力测试可能导致系统崩溃或数据丢失,建议在虚拟机或测试环境中操作。

  3. 资源分配建议:
    • 内存测试时,分配量不超过总内存的80%(避免OOM Kill)。

    • 磁盘测试预留足够空间(如–hdd-bytes值需小于磁盘剩余容量)。

  4. 监控关键指标:
    • CPU/内存:top、htop、free。

    • 磁盘I/O:iostat -dx 1。

    • 温度:sensors(防止过热)。

  5. 性能影响分析:
    • CPU加压对应用延迟影响显著(如8核满载时小模型延迟增加5倍)。

    • 内存加压对延迟影响较小,但高占用时仍会降低整体性能。

  6. 典型应用场景

• 服务器稳定性验证:

混合负载测试72小时,观察内核错误或硬件故障。
• 资源竞争模拟:

在部署新服务前,模拟高负载下现有服务的性能表现。
• 开发板压力测试:

ARM平台交叉编译后验证硬件可靠性(如自动驾驶芯片)。
• 散热能力测试:

结合cpuburn工具最大化CPU发热,检测散热系统。

⚠️ 重要提示:测试结束后,用killall stress-ng或pkill stress-ng确保进程完全退出,避免残留负载。

更多参数详见手册:man stress-ng 或 https://github.com/ColinIanKing/stress-ng。

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

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

相关文章

探索阿里云DMS:解锁高效数据管理新姿势

一、阿里云 DMS 是什么 阿里云 DMS,全称为 Data Management Service,即数据管理服务 ,是一种集数据管理、结构管理、安全管理于一体的全面数据库服务平台。它能够有效地支持各类数据库产品,包括但不限于 MySQL、SQL Server、Post…

python爬取新浪财经网站上行业板块股票信息的代码

在这个多行业持续高速发展的时代,科技正在改变着我们的生活。 在世界科技领域中,中国正占据越来越重要的位置。当下,每个行业都提到了区块链、人工智能、大数据、5G等科技力量,强调了科技在行业咨询与数据分析领域的重要意义。 随…

【JAVA】监听windows中鼠标侧面键的按钮按下事件

监听windows中鼠标侧面键的按钮按下事件用到的包核心类使用这个类用到的包 jna-5.11.0.jar jna-platform-5.11.0.jar核心类 package sample.tt.mouse;import com.sun.jna.Pointer; import com.sun.jna.platform.win32.*; import com.sun.jna.platform.win32.WinDef.HMODULE; …

Redis突发写入阻断?解析“MISCONF Redis is configured to save RDB…“故障处理

当你的Redis服务器突然拒绝写入并抛出 MISCONF Redis is configured to save RDB snapshots... 错误时,别慌!这是Redis的数据安全保护机制在发挥作用。本文带你深度解析故障根因,并提供完整的解决方案。🔥 故障现象还原 客户端&am…

产品更新丨谷云科技 iPaaS 集成平台 V7.6 版本发布

六月,谷云科技iPaaS集成平台更新了V7.6版本。这次更新中我们着重对API网关、API编排、组织管理权限、API监控等功能进行了增强以及优化,一起来看看有什么新变化吧! 网关、监控、编排、组织权限全方位升级 1.API网关 错误码预警,可…

图像处理中的模板匹配:原理与实现

目录 一、什么是模板匹配? 二、模板匹配的匹配方法 1. 平方差匹配(cv2.TM_SQDIFF) 2. 归一化平方差匹配(cv2.TM_SQDIFF_NORMED) 3. 相关匹配(cv2.TM_CCORR) 4. 归一化相关匹配&#xff08…

高性能架构模式——高性能NoSQL

目录 一、关系数据库的缺点二、常见的 NoSQL 方案分 类2.1、K-V 存储2.2、文档数据库2.3、列式数据库2.4、全文搜索引擎三、高性能 NoSQL 方案的典型特征和应用场景3.1、K-V 存储典型特征和应用场景3.2、文档数据库典型特征和应用场景3.1.1、文档数据库的 no-schema 特性的优势…

正确选择光伏方案设计软件:人力成本优化的关键一步

在竞争激烈的市场环境中,企业无不追求效率提升与成本控制。设计环节作为产品开发的核心流程,其效率高低直接影响整体项目进度与资源消耗。错误的设计软件选择如同在信息高速公路上设置路障——它不会阻止前行,却会让每一次沟通、每一次修改都…

Git问题排查与故障解决详解

前言 在使用Git进行版本控制的过程中,开发者常常会遇到各种各样的问题和错误。本文将详细介绍常见的Git问题及其解决方法,帮助开发者快速定位和解决问题,避免在开发过程中浪费时间。 1. 基础错误与解决 1.1 身份配置问题 问题&#xff1a…

使用Xinference部署语音模型实现文本转语音:完整指南

文章目录引言环境准备1. 安装Xinference2. 启动Xinference服务3. 部署语音模型Python实现文本转语音关键参数说明应用场景性能优化建议常见问题解决结语引言 文本转语音(Text-to-Speech, TTS)技术在智能助手、有声读物、语音导航等应用中扮演着重要角色…

【C#】实体类定义的是long和值识别到的是Int64,实体类反射容易出现Object does not match target type

🌹欢迎来到《小5讲堂》🌹 🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&#…

C#获取当前系统账户是否为管理员账户

传统方式:WindowsPrincipal winPrincipal new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool admin winPrincipal.IsInRole(WindowsBuiltInRole.Administrator);这种方式虽然是最常用的检测管理员权限的方法,但是有个致命的缺陷,就…

【c++深入系列】:万字详解list(附模拟实现的list源码)

🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 当你觉得累的时候,说明你在走上坡路 ★★★ 本文前置知识: 模版 那么在之前的学习中,我们已经学习了…

PandaWiki与GitBook深度对比:AI时代的知识管理工具,选谁好?

在当今信息爆炸的时代,知识管理工具已成为个人学习、团队协作和企业文档管理的必需品。PandaWik作为AI时代迅速崛起的广受欢迎知识管理平台,代表了新一代AI驱动的知识库系统。本文将从功能特性、技术架构、适用场景等多个维度进行全面对比分析。产品定位…

清除 Android 手机 SIM 卡数据的4 种简单方法

SIM 卡存储了联系人、短信和通话记录等信息。在更换新 SIM 卡之前,彻底清除旧卡上的所有个人数据(如 SIM 卡联系人、短信、通话记录和手机号码)非常重要。要在 Android 手机上清除 SIM 卡内存,您可以参考以下方法。但在开始之前&a…

算法学习笔记:20.分治法——从原理到实战,涵盖 LeetCode 与考研 408 例题

分治法(Divide and Conquer)是计算机科学中最经典的算法设计思想之一,其核心思想是将复杂问题分解为若干个规模较小的子问题,通过解决子问题并合并结果来求解原问题。这种思想不仅在排序、搜索等基础算法中广泛应用,也…

@classmethod

1. 基本概念 classmethod 是 Python 中用于定义类方法的一种装饰器。类方法与常规的实例方法不同,它的第一个参数是 cls,表示类本身,而不是实例。 class MyClass:class_attr "Class Attribute"classmethoddef class_method(cls):p…

Qt 中使用 SQLite 数据库

一、SQLite 数据库介绍 SQLite 是一个轻量级的嵌入式关系型数据库管理系统,它以库的形式提供,不需要单独的服务器进程,直接访问存储在普通磁盘文件中的数据库。 主要特性 无服务器架构:SQLite 不需要单独的服务器进程 零配置&a…

【Unity】IL2CPP相关理论知识学习

一种编译技术。优点:性能优化:IL2CPP生成C代码后由本地编译器优化,一般在CPU性能和GC方面都优于Mono。特别在移动端或主机平台,性能差距更加明显。跨平台支持:Unity作为跨平台引擎,IL2CPP是支持iOS、Androi…

一个用于在 Ubuntu 22.04.3 LTS 上显示文件系统超级块信息的 C 程序

1.程序#include <stdio.h> #include <sys/statvfs.h> #include <errno.h>int main(int argc, char *argv[]) {const char *path;struct statvfs fs_info;// 检查参数if (argc ! 2) {fprintf(stderr, "用法: %s <挂载点或路径>\n", argv[0]);…