寓言:我不喜欢面包,但是在学做面包
准备:买了低筋、高筋面粉、小麦粉、牛奶、鸡蛋
配料:多少克粉、多少牛奶、多少蛋黄
时间:揉到什么程度,揉几次,手好酸
怎么做:拿去焗炉焗
结果:怎么没发胀起来,硬邦邦一饼
原因:因为没有酵母!
我: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%之间。
---------------------------------------------------------------------------------------------------