Linux-提高CPU、内存使用率shell脚本

目录

1、提升CPU利用率

(1)构造CPU达到100%

[(2) 结束命令](#(2) 结束命令)

2、提高内存利用率

可以申请的内存

申请内存空间:

完成后释放内存:

[3、 使用ChaosBlade工具](#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;

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}

(工具去网上搜下下载即可,需要的话可关注我后私聊)

相关推荐
Zach_yuan2 分钟前
数据链路层核心技术解析:以太网与ARP协议
服务器·网络·网络协议
百锦再36 分钟前
Java多线程编程全面解析:从原理到实战
java·开发语言·python·spring·kafka·tomcat·maven
Cosmoshhhyyy40 分钟前
《Effective Java》解读第38条:用接口模拟可扩展的枚举
java·开发语言
wangbing11251 小时前
平台介绍-主数据系统-同步消息设计
java
一文解千机1 小时前
wine 优化配置及显卡加速,完美运行Electron 编译的程序(新榜小豆芽、作家助手、小V猫等)
linux·ubuntu·electron·wine·wine优化配置·wine显卡加速·wine大型游戏
小冷coding1 小时前
【Java】最新Java高并发高可用平台技术选型指南(思路+全栈路线)
java·开发语言
寻星探路1 小时前
【前端基础】HTML + CSS + JavaScript 快速入门(三):JS 与 jQuery 实战
java·前端·javascript·css·c++·ai·html
cyforkk2 小时前
Tomcat 类加载机制解析:为何依赖包必须放在 WEB-INF/lib 目录下
java
2401_858286112 小时前
OS53.【Linux】System V 共享内存(2)
linux·运维·服务器·共享内存
JaJian.2 小时前
Java后端服务假死问题排查与解决
java·开发语言