前言
总有一些场景我们需要让 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