zoukankan      html  css  js  c++  java
  • 弱智入门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%之间。

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

  • 相关阅读:
    jquery中.css与attr
    javascript 中的IE和Firefox中Date.getYear()区别
    动态向客户端注册脚本文件
    控件绑定枚举类型的扩张方法
    sql中where和on的区别
    html中对lable的用法
    sql中更改某张表的默认排序方式
    测试报告模板
    关于403状态码详解
    jsTree通过json数据初始化时,如何控制每个选项的图标(icon)显示
  • 原文地址:https://www.cnblogs.com/normal-b/p/9024817.html
Copyright © 2011-2022 走看看