Linux脚本模拟cpu占用

前言

总有一些场景我们需要让 cpu 看起来很忙,比如:模拟固定 cpu 场景性能测试、更细粒度的管理进程 cpu 资源、还有一些不可说场景。。。

那还等什么,让 cpu 拉磨吧!

1. 安装 cpulimit

#https://github.com/opsengine/cpulimit
yum install -y cpulimit

2. 安装依赖包

#如果已安装则忽略
yum -y install gcc gcc-c++ libstdc++-devel

3. 准备脚本

准备 cpulimit.sh 脚本

#! /bin/bash

if [ # -gt 2 ]; then
    echo "USAGE:0<cmd,percent>"
    exit 1
fi
cmd=1
percent=2
if [ cmd = 'start' ];then
    #可用的物理cpu数
    for i in `seq 1(cat /proc/cpuinfo | grep "physical id" | wc -l)` 
    do
        #为每个cpu都创建一个dd从/dev/zero到/dev/null备份进程,则进程不会占用网络和磁盘io
        dd if=/dev/zero of=/dev/null & 
    done

    sleep 5

    # 限制每个dd进程使用cpu百分比 -p 指定进程号 -l 指定使用的cpu百分比
    for i in `ps aux | grep "dd if=/dev/zero of=/dev/null" | grep -v grep | awk -F ' ' '{print 2}'`do
        cpulimit -pi -l percent&
    done
fi
if [cmd = 'stop' ];then
    ps -ef | grep "dd if=/dev/zero of=/dev/null" | grep -v "grep" | awk '{print $2}' | xargs -r kill -9
fi

4. 运行脚本

#限制cpu 60%
sh cpulimit.sh start 60
#释放cpu
sh cpulimit.sh stop

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用*标注