说明:无论方式1 还是方式2 ,均需安装cpulimit,因为要限制CPU使用率,不能一直100%,否则影响正常业务
方式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
说明:
cat /proc/cpuinfo |grep "physical id" | wc -l 可以获得CPU的个数, 我们将其表示为N.
seq 1 N 用来生成1到N之间的数字
for i in `seq 1 N`; 就是循环执行命令,从1到N
dd if=/dev/zero of=/dev/null 执行dd命令, 输出到/dev/null, 实际上只占用CPU, 没有IO操作.
由于连续执行N个(N是CPU个数)的dd 命令, 且使用率为100%, 这时调度器会调度每个dd命令在不同的CPU上处理.
最终就实现所有CPU占用率100%
另外,上述程序的结束可以使用:
1. fg 后按 ctrl + C (因为该命令是放在后台执行)
2. pkill -9 dd
测试
top这个命令很常用,在第三行有显示CPU当前的使用情况。
如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu分类: 【linux学习】
限制某个线程cpu率使用上线:
nohup cpulimit -l 80 -p 2510 & (-l后限定最高占用百分比,-p后进程pid)
方式2:
背景:项目申请的服务器资源要达到使用要求,不然就会减配,为了方便后续扩展不考虑减配,直接将使用率提高。
思路是先将CPU占用率直接上到100%
然后用 cpulimit 限定进程占用上限
1、安装 cpumit
下载 cpulimit-master
wget https://github.com/opsengine/cpulimit/archive/master.zip
不通外网的,放在网盘里了,大家自提:
链接:https://pan.baidu.com/s/1kLuj1MzQz69g4hAjMF-lSg 提取码:l8hb
unzip cpulimit-master.zip
cd cpulimit-master
make
cp src/cpulimit /usr/bin
cd cpulimit-master/src
2、不间断复制,提高占用率到100%
nohup dd if=/dev/zero of=/dev/null &
3、不间断限制cpu使用率
先查看进程号 ps -ef|grep dd 看进程id,或者用top
再限定最高占用率
nohup cpulimit -l 80 -p 2510 &
( -l 后限定最高占用百分比, -p 后进程pid )
这样就能设定固定的CPU占用率啦
另附磁盘占用量提升:
先上传一份文件到服务器,再执行多次复制:
多次复制同一文件 (文件名为1)
echo '2 3 4 5' | xargs -n 1 cp 1
这样文件名为1的文件就被重复复制多次了,如果需要更多可以写循环脚本