说明:无论方式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的文件就被重复复制多次了,如果需要更多可以写循环脚本

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐