• 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代码:

    1. #!/bin/bash
    2. read -p "请输入一个数字(0:停止;8:CPU80%;10:CPU100%):" num
    3. if [ $num -eq 8 ]; then
    4. pkill -9 dd
    5. for i in $(seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l | awk '{print $1-1}')); do
    6. dd if=/dev/zero of=/dev/null &
    7. done
    8. elif [ $num -eq 10 ]; then
    9. pkill -9 dd
    10. for i in $(seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l)); do
    11. dd if=/dev/zero of=/dev/null &
    12. done
    13. elif [ $num -eq 0 ]; then
    14. pkill -9 dd
    15. else
    16. echo "无效的输入"
    17. fi

    2、提高内存利用率

    可以申请的内存

    首先,判断需要申请多少内存

    用top命令或free命令查看服务器的cpu和内存使用情况。

    使用top/sar -r查看内存使用率

    申请内存空间:

    1. #!/bin/bash
    2. mkdir /tmp/memory
    3. mount -t tmpfs -o size=8192M tmpfs /tmp/memory
    4. dd if=/dev/zero of=/tmp/memory/block

    完成后释放内存

    1. #!/bin/bash
    2. rm /tmp/memory/block
    3. umount /tmp/memory
    4. 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}

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

  • 相关阅读:
    Python数学计算工具1、海伦公式计算三角形面积
    【Java】网络编程
    产品思维训练 | 亚马逊流量7-8月网站访客流量下降,请分析原因
    国内乳业龙头『君乐宝』×企企通强强联手,搭建采购供应链管理系统+商城平台双管齐下推动低碳转型
    BUUCTF--[ACTF2020 新生赛]Include
    番外-c#专有钉钉获取应用access_token
    声明 Array List 的3种方式 ArrayList、Collection、List 的区别
    抖音订单列表查询api接口
    dubbo2.7时间轮的应用
    公司文件防泄密软件——「天锐绿盾」@德人合科技
  • 原文地址:https://blog.csdn.net/Mr_wilson_liu/article/details/133787492