弱智入门Linux——拉高CPU使用率

寓言:我不喜欢面包,但是在学做面包

准备:买了低筋、高筋面粉、小麦粉、牛奶、鸡蛋

配料:多少克粉、多少牛奶、多少蛋黄

时间:揉到什么程度,揉几次,手好酸

怎么做:拿去焗炉焗

结果:怎么没发胀起来,硬邦邦一饼

原因:因为没有酵母!

我:what the fuck is 酵母?

----------------------------------------------------------------------------------

Linux拉高CPU使用率

一、制作 kill.c

 #include <stdlib.h>

int main()

{

while(1);

  return 0;

}

 作用:制造出 a.out文件

二、制出a.out文件

运行

$ gcc kill.c
该路径下会生成 a.out

a.out 是linux/unix环境下gcc编译源代码(c/c++)并连接产生的默认执行文件名。
./a.out表示当前目录下的a.out文件。
一个单独的点号指代当前文件路径。
因为linux/unix搜索可执行文件的默认路径需要指定,没有./两个符号指定路径的话,新编译的文件操作系统找不到。

gcc test.c

将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。 

  gcc 的更多内容:http://man.linuxde.net/gcc

 三、写拉高CPU的脚本

⑴ 单核100%

①直接运行 ./a.out

./a.out

  因为之前已生成a.out文件,默认只把第一个CPU核调到100%

要结束的话 ctrl+c

②写脚本 cpu.sh

for i in 'seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)'; 

do dd if=/dev/zero of=/dev/null & done

运行 ./cpu.sh

结果也一样,只有第一个CPU被拉高到100%

说明:

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%

转载自: https://blog.csdn.net/robertsong2004/article/details/36879233

四、拉高全部CPU到100%

直接运行

for i in 'seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l)'; do ./a.out & done

或写进 all-cpu.sh,运行此sh文件

a.out是之前我们制作的,根据新建时的名字改变化

$(cat /proc/cpuinfo | grep "physical id" | wc -l)'

这段意思是获取多少个CPU核,如果已知或想规定拉高CPU的数量,可以换成数值,如:

for i in 'seq l 7'; do ./a.out & done

结果:把前7个CPU拉高到100%

五、记得要杀掉拉高的动作

pkill -9 a.out

杀掉全部拉高的动作,具体意思还不清楚

结果:恢复到原本的CPU使用率

六、指定某个核CPU

先运行拉高一个CPU的脚本

然后top,按数字1

看到哪个占用cpu100%的进程编号

运行

taskset -cp 0 pid号

把进程放到cpu0,cpu0就100%了

七、让所有的cpu使用率都市30%

lookbusy

$ lookbusy -c 30

让所有的cpu使用率都是30%

$ lookbusy -c 75 -n 2

让两个cpu的使用率为30%

$ lookbusy --cpu-mode curve --cpu-curve-peak 14h -c 20-80

让cpu在20%-%80之间,周期为24H,在14点,即下午2点达到峰值

$ lookbusy -c 20-30 --cpu-mode curve --cpu-curve-period 60m --cpu-curve-peak 30m

让cpu以60分钟为周期,30分钟是峰值,使用率在20% - 30%之间。

---------------------------------------------------------------------------------------------------

原文地址:https://www.cnblogs.com/normal-b/p/9024817.html