首页 > 其他分享 >stress模拟系统负载较高时的场景

stress模拟系统负载较高时的场景

时间:2023-06-17 15:44:33浏览次数:50  
标签:stress grep echo numbers 模拟系统 Net limiting 高时 CPU

#!/bin/bash

#获取网卡名称
network_adapter=`ip a|grep "BROADCAST"|awk '{print $2}'|awk -F: '{print $1}'`

function Net_speed_limiting {
    #输入提示
    read -p "Please input Net speed limiting rate(kbit): " Net_rate
    read -p "Waiting time(s): " wait_time
    #echo -e "Please input Net speed limiting rate:  \c\t  "
    #与单位拼接成字符串
    Net_rate_=$Net_rate"kbit"
    #带宽限制命令
    tc qdisc add dev $network_adapter root tbf rate $Net_rate latency 50ms burst 1000 >/dev/null 2>&1 &
    #等待时间,单位s
    for i in $(seq 1 $wait_time)
    do
        echo -ne "Count down $wait_time \r"  #不换行刷新数据
        sleep 1
        ((wait_time--));
    done
    
    #解除带宽限制命令
    tc qdisc del dev $network_adapter root
}

function CPU_limiting {
    #输入提示
    read -p "Please input CPU limiting numbers: " CPU_numbers
    #使n个CPU利用率达到100%
    stress -c $CPU_numbers >/dev/null 2>&1 &
}

function MEM_limiting {
    #输入提示
    read -p "Please input process numbers: " process_numbers
    read -p "Please input limiting MEM numbers(M) of per process: " MEM_numbers
    MEM_numbers_=$MEM_numbers"M"
    #起几个进程,每个进程占n M的内存
    stress --vm $process_numbers --vm-bytes $MEM_numbers_ --vm-keep >/dev/null 2>&1 &
}

function status {
    echo "======限流状态======"
        tc -s qdisc ls dev $network_adapter

    echo "======限CPU状态======"
    ps -ef|grep stress |grep -v grep |grep c
    if [ $? -ne 0 ]; then
            echo "CPU没限制"
    fi

    echo "======限内存状态======"
    ps -ef|grep stress |grep -v grep |grep vm
    if [ $? -ne 0 ]; then
                echo "内存没限制"
        fi

    echo "======tips======"
    echo "pkill -9 stress 或 kill -9 PID 可解除CPU和内存限制"
    echo "限流倒计时结束,限制也解除"
}

case "$1" in
"Net_speed_limiting")
        Net_speed_limiting 
        ;;
"CPU_limiting")
        CPU_limiting 
        ;;
"MEM_limiting")
        MEM_limiting 
        ;;
"status")
        status
        ;;
"" |*)
        echo "Usage: $0 [ Net_speed_limiting | CPU_limiting | MEM_limiting | status ]"; echo ""
        ;;
esac

exit 0

命令详情参考其他博主

标签:stress,grep,echo,numbers,模拟系统,Net,limiting,高时,CPU
From: https://www.cnblogs.com/daizichuan/p/17487541.html

相关文章

  • 尚医通-day06【医院模拟系统接口详细步骤】(内附源码)
    第01章-医院系统1、业务功能描述资料:资料>医院模拟系统>尚医通API接口文档.docx1.1、平台方参考《尚医通API接口文档.docx》进行业务接口的开发,接收医院方的接口调用,将医院信息、科室信息、排班信息等数据存入MongoDB。1.2、医院方每个医院有自己的业务平台,需参考《尚医通AP......
  • linux之stress(模拟压力测试)
    stress是一款模拟压力测试工具,他可以模拟cpu,内存,io等情况stress安装yuminstall-yepel-releaseyuminstallstress-ystress的使用1.模拟一颗cpu打满->stress-c1  通过htop查看一下cpu情况,可以看到有一颗cpu打满 2.模拟多颗cpu打满->stres......
  • C/C++快递自提柜流程模拟系统[2023-04-03]
    C/C++快递自提柜流程模拟系统[2023-04-03]普通用户功能包括:普通用户分为老用户和新用户,新用户需要注册再登录,老用户直接注册并登录,登录时用户名和密码都输入正确才可进入用户界面。进入系统后,用户按照快递单号可以查询订单的所有物流信息:订单编号,快递单号(公司),快递的状态(已出库......
  • Stress-ng 的简单学习
    背景想研究一下国产和不同架构,不通型号CPU的算力也作为后续生产交付的基线准备.学习各种不同工具进行简要测试.安装gitclonehttps://github.com/ColinIanKing/st......
  • 4、一个银行 ATM 机模拟系统
    #通过Python编程完成一个银行ATM机模拟系统,具备如下功能:##(1)登陆验证:用户输入用户名密码登陆,检测用户名是否存在以及用户名密码是否匹配;用户名密码共有三次输入......
  • C语言银行业务模拟系统[2023-01-04]
    C语言银行业务模拟系统[2023-01-04]银行业务模拟系统系统要求使用C语言实现一个银行业务模拟程序,实现存取款等基本业务的模拟。选题者需要首先进行需求调研,了解银行的主......
  • C++图书收藏模拟系统[2022-12-31]
    C++图书收藏模拟系统[2022-12-31]课题名称:图书收藏模拟系统的设计与实现课题简介目前有一些著名的网上图书购买系统,比如当当网、亚马逊等,他们都有收藏和购买图书的功......
  • C/C++公司销售管理流程模拟系统[2022-12-31]
    C/C++公司销售管理流程模拟系统[2022-12-31]公司销售管理流程模拟。【背景描述】请采用合适的数据表示方式模拟公司的销售管理流程。【数据分析】本系统的目标是模拟设......
  • C++全国交通咨询模拟系统
    C++全国交通咨询模拟系统《数据结构课程设计》一、课设目的数据结构课程设计是一项综合性设计活动,要求利用本课程内的以及到目前为止所学到的有关知识和技术解决一些不......
  • C/C++简易图书管理模拟系统(二叉平衡树)
    C/C++简易图书管理模拟系统(二叉平衡树)C/C++简易图书管理模拟系统(二叉平衡树)数据结构课程实验教案第8页实验题目八:综合实验简易图书管理模拟系统 机时......