linux如何使 CPU使用率保持在指定百分比?
目录
方法1:(固定在100%)
方法2:(可以指定0~100%)
方法3:使用ChaosBlade工具(0~100%)
方法1:(固定在100%)
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
#如果已知cpu的个数,可以直接填写
for i in `seq 1 3`; do dd if=/dev/zero of=/dev/null & done
说明:
cat /proc/cpuinfo |grep "physical id" | wc -l 能够获得CPU的个数, 我们将其表示为N.
seq 1 N 用来生成1到N之间的数字
for i in `seq 1 N`; 就是循环运行命令,从1到N
dd if=/dev/zero of=/dev/null 运行dd命令, 输出到/dev/null, 实际上仅仅占用CPU, 没有IO操作.
dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
if=文件名:输入文件名,默认为标准输入。即指定源文件。
of=文件名:输出文件名,默认为标准输出。即指定目的文件。
因为连续运行N个(N是CPU个数)的dd 命令, 且使用率为100%, 这时调度器会调度每一个dd命令在不同的CPU上处理.
终于就实现全部CPU占用率100%
另外。上述程序的结束能够使用:
1. fg 后按 ctrl + C (由于该命令是放在后台运行)
2. pkill -9 dd
原文链接:https://blog.csdn.net/wwwlyj123321/article/details/126902089
#!/bin/bash
read -p "请输入一个数字(0:停止;8:CPU80%;10:CPU100%):" numif [ $num -eq 8 ]; thenpkill -9 ddfor i in $(seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l | awk '{print $1-1}')); dodd if=/dev/zero of=/dev/null &done
elif [ $num -eq 10 ]; thenpkill -9 ddfor i in $(seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l)); dodd if=/dev/zero of=/dev/null &done
elif [ $num -eq 0 ]; thenpkill -9 dd
elseecho "无效的输入"
fi #Linux-提高CPU、内存使用率shell脚本_linux提高cpu占用率-CSDN博客
方法2:(可以指定0~100%)
以下是一个简单的shell脚本示例,它尝试通过运行多个 stress-ng 进程来使CPU占用率接近xx%。请注意,这个脚本仍然是一个近似的解决方案,并不能保证精确地达到xx%的占用率。
设定一个CPU 占用率如80%,小于80%时增加 stress-ng 进程数,多于80%时,减少 stress-ng 进程数:
| #!/bin/bash TARGET_USAGE=80 #80% DURATION=1200 #持续时间(秒) INTERVAL=2 # 检查间隔(秒) ADJUSTMENT_STEP=1 # 每次调整的进程数量 MAX_PROCESSES=200 # 最大stress-ng进程数,防止无限增加 MIN_PROCESSES=1 # 最小stress-ng进程数,至少保持一个进程运行 # 检查stress-ng工具是否安装 安装命令yum install stress-ng if ! command -v stress-ng &> /dev/null; then echo "stress-ng工具未安装,请先安装stress-ng。" exit 1 fi # 初始stress-ng进程数量 current_processes=1 # 启动初始的stress-ng进程 stress-ng --cpu 1 --timeout ${DURATION} --verbose & while true; do # 获取当前每个CPU核心的平均占用率 current_idle=$(mpstat 1 1 | tail -1 | awk '{sum += $NF} END {print sum / NR}' | bc -l) current_usage=$(echo "scale=2;100 - $current_idle"|bc) # 根据当前占用率和目标占用率的差异来调整stress-ng进程的数量 if (( $(echo "$current_usage < $TARGET_USAGE" | bc -l) )); then if (( current_processes < MAX_PROCESSES )); then ((current_processes++)) stress-ng --cpu 1 --timeout ${DURATION} --verbose & fi elif (( $(echo "$current_usage > $TARGET_USAGE" | bc -l) )); then if (( current_processes > MIN_PROCESSES )); then ((current_processes--)) #-n 匹配最新(最后启动)的进程,既杀死最后启动的那个stress-ng pkill -n stress-ng fi fi # 输出当前CPU占比 echo "$(date "+%Y-%m-%d %H:%M:%S") $current_processes stress-ng running.CPU useage:$current_usage%" # 等待一段时间再次检查 sleep $INTERVAL done
|

方法3:使用ChaosBlade工具
(原文链接:https://blog.csdn.net/Mr_wilson_liu/article/details/133787492)
开源的故障注入工具chaosblade,阿里研发。该工具故障注入包含:cpu,内存,磁盘io,磁盘占用,网络注入等
使用方法:
到这个链接去下载:https://github.com/chaosblade-io/chaosblade/releases
将工具上传至待测机器并解压
命令参数和简写
status --> s; destroy -->d; create --> c;
进入解压的工具目录,执行对应注入命令
./blade create cpu load --cpu-list 0-3 --cpu-percent 80
执行成功,会返回一个id,如需撤销故障注入,执行如下命令
./blade d {id}

查询曾经注入的故障id,便于删除
./blade s --type c
cpu注入:
blade create cpu load --cpu-list 0,1 --cpu-percent 80 #加压0,1两个核心,负载到80%
blade create cpu load --cpu-count 3 #将3个核心加压
blade create cpu fullload #cpu满载
blade create cpu load --cpu-list 0,1,2 --timeout 100 --将0,1,2三个核心加压100s,不带timeout参数默认一直加压
相关文章:
linux如何使 CPU使用率保持在指定百分比?
目录 方法1:(固定在100%) 方法2:(可以指定0~100%) 方法3:使用ChaosBlade工具(0~100%) 方法1:(固定在100%) for i in seq 1 $(cat /pro…...
LLMs之Morphic:Morphic(一款具有生成式用户界面的人工智能答案引擎)的简介、安装、使用方法之详细攻略
LLMs之Morphic:Morphic(一款具有生成式用户界面的人工智能答案引擎)的简介、安装、使用方法之详细攻略 目录 Morphic的简介 1、技术栈 Morphic的安装和使用方法 1、克隆仓库 2、安装依赖 3、填写密钥 4、本地运行应用 部署 Morphic的简介 2024年4月初发布ÿ…...
[react] useState的一些小细节
1.无限循环 因为setState修改是异步的,加上会触发函数重新渲染, 如果代码长这样 一秒再修改,然后重新触发setTImeout, 然后再触发,重复触发循环 如果这样呢 还是会,因为你执行又会重新渲染 2.异步修改数据 为什么修改多次还是跟不上呢? 函数传参解决 因为是异步修改 ,所以…...
蓝桥杯【第15届省赛】Python B组
这题目难度对比历届是相当炸裂的简单了…… A:穿越时空之门 【问题描述】 随着 2024 年的钟声回荡,传说中的时空之门再次敞开。这扇门是一条神秘的通道,它连接着二进制和四进制两个不同的数码领域,等待着勇者们的探索。 在二进制…...
CSS aspect-ratio属性设置元素宽高比
aspect-ratio 是CSS的一个属性,用于设置元素的期望宽高比。它设置确保元素保持特定的比例,不受其内容或容器大小的影响。 语法: aspect-ratio: <ratio>;其中 <ratio> 是一个由斜杠(/)分隔的两个数字&…...
Jones矩阵符号运算
文章目录 Jones向量Jones矩阵 有关Jones矩阵、Jones向量的基本原理,可参考这个: 通过Python理解Jones矩阵,本文主要介绍sympy中提供的有关偏振光学的符号计算工具 Jones向量 Jones向量是描述光线偏振状态的重要工具,例如一个偏振…...
解决 App 自动化测试的常见痛点!
App 自动化测试中有些常见痛点问题,如果框架不能很好的处理,就可能出现元素定位超时找不到的情况,自动化也就被打断终止了。很容易打消做自动化的热情,导致从入门到放弃。比如下面的两个问题: 一是 App 启动加载时间较…...
2016NOIP普及组真题 1. 买铅笔
线上OJ: 一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid1973 核心思想: 向上取整的代码 (m (n-1))/n 。(本题考点与2023年J组的第一和第二题一样) 比如需要买31支笔,每包30支,则需要…...
机器学习—数据集(二)
1可用数据集 公司内部 eg:百度 数据接口 花钱 数据集 学习阶段可用的数据集: sklearn:数据量小,方便学习kaggle:80万科学数据,真实数据,数据量大UCI:收录了360个数据集,覆盖科学、生活、经济等…...
华为S5735S核心交换配置实例
以下脚本实现创建vlan2,3,IP划分,DHCP启用,接口划分,ssh,telnet,http,远程登录启用 默认用户创建admin/admin123提示首次登录需要更改用户密码S5735产品手册更多功能配置,移步官网参考手册配置 system-viewsysname t…...
Mysql主从复制安装配置
mysql主从复制安装配置 1、基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.85.111(主) node2:192.168.85.112(从)2、安装mysql数据库 #详细安装和卸载的步骤…...
【刷题】图论——最小生成树:Prim、Kruskal【模板】
假设有n个点m条边。 Prim适用于邻接矩阵存的稠密图,时间复杂度是 O ( n 2 ) O(n^2) O(n2),可用堆优化成 O ( n l o g n ) O(nlogn) O(nlogn)。 Kruskal适用于稀疏图,n个点m条边,时间复杂度是 m l o g ( m ) mlog(m) mlog(m)。 Pr…...
使用uniapp实现小程序获取wifi并连接
Wi-Fi功能模块 App平台由 uni ext api 实现,需下载插件:uni-WiFi 链接:https://ext.dcloud.net.cn/plugin?id10337 uni ext api 需 HBuilderX 3.6.8 iOS平台获取Wi-Fi信息需要开启“Access WiFi information”能力登录苹果开发者网站&…...
回忆杀之手搓当年搓过的Transformer
整体代码 import mathimport paddle import paddle.nn as nn import paddle.nn.functional as Fclass MaskMultiHeadAttention(nn.Layer):def __init__(self, hidden_size, num_heads):super(MaskMultiHeadAttention, self).__init__()assert hidden_size % num_heads 0, &qu…...
【AR】使用深度API实现虚实遮挡
遮挡效果 本段描述摘自 https://developers.google.cn/ar/develop/depth 遮挡是深度API的应用之一。 遮挡(即准确渲染虚拟物体在现实物体后面)对于沉浸式 AR 体验至关重要。 参考下图,假设场景中有一个Andy,用户可能需要放置在包含…...
python-pytorch实现skip-gram 0.5.001
python-pytorch实现skip-gram 0.5.000 数据加载、切词准备训练数据准备模型和参数训练保存模型加载模型简单预测获取词向量画一个词向量的分布图使用词向量计算相似度参考数据加载、切词 按照链接https://blog.csdn.net/m0_60688978/article/details/137538274操作后,可以获得…...
C语言:约瑟夫环问题详解
前言 哈喽,宝子们!本期为大家带来一道C语言循环链表的经典算法题(约瑟夫环)。 目录 1.什么是约瑟夫环2.解决方案思路3.创建链表头结点4.创建循环链表5.删除链表6.完整代码实现 1.什么是约瑟夫环 据说著名历史学家Josephus有过以下…...
【刷题篇】回溯算法(二)
文章目录 1、求根节点到叶节点数字之和2、二叉树剪枝3、验证二叉搜索树4、二叉搜索树中第K小的元素5、二叉树的所有路径 1、求根节点到叶节点数字之和 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表…...
Windows系统本地部署Jupyter Notebook并实现公网访问编辑笔记
文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 在数据分析工作中,使用最多的无疑就是各种函数、图表、…...
自动化运维(二十七)Ansible 实战Shell 插件和模块工具
Ansible 支持多种类型的插件,这些插件可以帮助你扩展和定制 Ansible 的功能。每种插件类型都有其特定的用途和应用场景。今天我们一起学习Shell 插件和模块工具。 一、 Shell 插件 Ansible shell 插件决定了 Ansible 如何在远程系统上执行命令。这些插件非常关键&a…...
js脚本翻页自用
版本 1:按键停止(推荐)// 按 ESC 键随时停止let count 0;let running true;const stop () > {running false;console.log(⏹️ 已停止,共点击 count 次);};const interval setInterval(() > {if (!running) {clear…...
把“贪吃蛇”做成塔防Boss,这个Unity模板是怎么设计的?附完整变现思路
在 Unity Asset Store 上,大多数塔防模板都遵循一个经典逻辑:敌人走路径,玩家建塔防守。 但今天这个插件 Snake Army Defense - Complete Mobile Game Template,做了一件很有意思的事——它把传统塔防玩法“反过来了”。 敌人不…...
《Java面试85题图解版(二)》进阶深化中篇:Spring核心 + 数据库进阶
📘 《Java面试85题图解版(二)》进阶深化中篇:Spring核心 数据库进阶 阅读提示:这是“图解比喻一句话总结”面试题库第二篇的进阶深化中篇,覆盖Spring核心与Spring Boot(9题)和数据库…...
AXI4协议实战:从零构建一个支持突发传输的从机接口
1. AXI4协议基础与从机接口设计概述 AXI4协议作为AMBA总线家族中最核心的成员,已经成为现代SoC设计中事实上的标准互联规范。我第一次接触AXI4是在2015年设计图像处理芯片时,当时为了连接DMA控制器和DDR控制器,不得不硬着头皮研究这个看似复杂…...
上午题_结构化开发
耦合基础知识...
SincNet实战:用PyTorch复现说话人识别,并探讨其对抗攻击的脆弱性与防御思路
SincNet实战:从说话人识别到对抗防御的全链路技术解析 当声纹识别系统在智能门锁中误将陌生人识别为业主时,背后可能是精心设计的音频对抗样本在作祟。SincNet作为直接从原始波形学习的CNN变体,其带通滤波器设计带来的可解释性优势࿰…...
独立开发者如何用AI验证创业点子:15分钟完成市场分析与风险评估
1. 项目概述:一个为独立开发者打造的AI创业点子验证伙伴如果你和我一样,是个喜欢自己动手鼓捣点东西的独立开发者,那你肯定也经历过这个阶段:脑子里冒出一个自认为绝妙的点子,兴奋地花上几周甚至几个月把它做出来&…...
CANN/ge ACL内存加载模型API
aclmdlLoadFromMemWithQ 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…...
AI赋能风景园林设计:技术原理、实践案例与未来挑战
1. 项目概述:当AI遇见园林最近几年,我身边不少做景观设计的朋友,从最初的“AI能画图?试试看”,到现在的“这个参数化模型帮我省了一周工作量”,态度转变非常明显。这让我意识到,人工智能在风景园…...
Dify-Flow:构建复杂AI工作流的流程编排引擎设计与实现
1. 项目概述:当Dify遇上Flow,一个面向开发者的AI应用编排新范式如果你最近在折腾AI应用开发,特别是想把大语言模型(LLM)的能力集成到自己的业务流程里,那你大概率听说过Dify。它作为一个开源的LLM应用开发平…...
