ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Linux-提高CPU、内存利用率shell脚本
[打印本页]
作者:
海哥
时间:
2024-6-15 02:16
标题:
Linux-提高CPU、内存利用率shell脚本
目次
1、提升CPU利用率
(1)构造CPU达到100%
(2) 结束下令
2、提高内存利用率
可以申请的内存
申请内存空间:
完成后释放内存:
3、 利用ChaosBlade工具
cpu注入:
内存注入:
1、提升CPU利用率
(1)构造CPU达到100%
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
(2) 结束下令
pkill -9 dd
以5核的linux为例,下面为实例的shell代码:
#!/bin/bash
read -p "请输入一个数字(0:停止;8:CPU80%;10:CPU100%):" num
if [ $num -eq 8 ]; then
pkill -9 dd
for i in $(seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l | awk '{print $1-1}')); do
dd if=/dev/zero of=/dev/null &
done
elif [ $num -eq 10 ]; then
pkill -9 dd
for i in $(seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l)); do
dd if=/dev/zero of=/dev/null &
done
elif [ $num -eq 0 ]; then
pkill -9 dd
else
echo "无效的输入"
fi
复制代码
2、提高内存利用率
可以申请的内存
首先,判断需要申请多少内存
用top下令或free下令查看服务器的cpu和内存利用情况。
利用top/sar -r查看内存利用率
申请内存空间:
#!/bin/bash
mkdir /tmp/memory
mount -t tmpfs -o size=8192M tmpfs /tmp/memory
dd if=/dev/zero of=/tmp/memory/block
复制代码
完成后释放内存:
#!/bin/bash
rm /tmp/memory/block
umount /tmp/memory
rmdir /tmp/memory
复制代码
3、 利用ChaosBlade工具
媒介:
本文先容一款开源的故障注入工具chaosblade,该工具本来由阿里研发,现已开源;工具特点:功能强大,利用简单。
该工具故障注入包罗:cpu,内存,磁盘io,磁盘占用,网络注入等
简写:
status --> s; destroy -->d; create --> c;
利用方法:
工具获取连接:https://github.com/chaosblade-io/chaosblade/releases
将工具上传至待测机器并解压
进入解压的工具目次,实验对应注入下令
./blade create cpu load --cpu-list 0-3 --cpu-percent 80
实验成功,会返回一个id,如需撤销故障注入,实验如下下令
./blade d {id}
查询曾经注入的故障id,便于删除
./blade s --type c
磁盘注入:
参数先容:
--path string 需要填充的目次,默认值 /
--size string 需要填充的文件巨细,单位M,取值整数,例如:--size 1024
--reserve string 保留磁盘巨细,单位MB,取值为不包罗单位的正整数,例如:--reserve 1024。如果size、percent、reserve参数都存在,优先级:percent > reserve > size.。
--percent string 指定磁盘利用率,如 --percent 80
--retain-handle 是否保留填充 (亲测,只要不加timeout参数,默认保留填充,只有磁盘空间注入有此参数)
--timeout string 设定运行时长,单位秒 (此参数为通用参数,各种故障场景几乎都可以加)
例如:
blade create disk fill --path /home --percent 80 --retain-handle 填充home目次80%的利用空间
blade create disk fill --path /home --size 200 --retain-handle 填充home目次200M
blade create disk fill --path /home --reserve 200 --retain-handle 仅保留/home目次200M
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参数默认不停加压
内存注入:
blade create mem load --mode ram --mem-percent 80 --占用80%的ram内存
blade create mem load --mode ram --mem-percent 80 --rate 100 --占用80%ram内存,占用速率100M每秒,rate参数只在占用ram时生效。
blade create mem load --mode catche --reserve 100 --占用catche内存,保留100M内存,速率100M/S,不加mode参数,默认值为catche,采用ram占用必须加mode参数。
注:内存注入满了会导致blade故障无法消除,推荐加percent参数;不利用任何参数会默认将内存加满,利用需审慎。
实验成功,会返回一个id,如需撤销故障注入,实验如下下令
./blade d {id}
(工具去网上搜下下载即可,需要的话可关注我后私聊)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4