zoukankan      html  css  js  c++  java
  • Linux下模拟CPU占用100%

    测试中会存在一些场景要求将CPU占用100%,那我们如果才能将测试机器的CPU打满呢?

    测试之前,首先通过top命令看下机器的CPU占用情况。

     我们先了解下第三行数据代表的实际意义:

    1.5% us — 用户空间占用CPU的百分比。
    1.5% sy — 内核空间占用CPU的百分比。
    0.0% ni — 改变过优先级的进程占用CPU的百分比
    96.3% id — 空闲CPU百分比
    0.7% wa — IO等待占用CPU的百分比
    0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
    0.0% si — 软中断(Software Interrupts)占用CPU的百分比

    由此,我们可以看出当前这台机器的CPU空间率为96.3%,离CPU占用100%还有很大空间。

    下面就记录下如何使CPU占用达到100%。

    1、编写脚本

    在Linux机器上touch run_cpu.sh

    脚本内容如下:

    #!/bin/bash
    function while_test()
    {
        while ((1));
        do
            i=2;
        done
    }
    
    
    function run_cpu()
    {
        for ((i=0; i<$1; i++));
        do
            while_test &
        done
    }
    
    run_cpu $1

    2、执行脚本

    在文件所在目录执行脚本:

    sh run_cpu.sh 8  (这里假设当前机器是8核,这里的数值执行的时候根据cpu实际核数做调整)

    3、再次查看cpu使用情况

    由下图可以看出,cpu空闲率已经达到0,已经实现了我想要的效果。

    4、提高测试脚本进程运行优先级

    上面3不实现之后发现,虽然CPU占用已经100%,但是我要测试的程序还是能够正常运行,并没有出现程序进程被杀掉等情况。

    此时我仔细看了下,发现测试脚本进程和测试应用程序进程的nice值都是0,我想提高下测试脚本运行进程优先级,看下在争夺CPU资源的时候是否会杀死低优先级的进程。

    执行命令:

    renice -20 -p 5200  #将PID为5200的进程的nice设为-20,-20是最高优先级

    将所有测试脚本的运行进程都提高后,发现程序还是能正常运行,并不会杀死优先级低的进程。。。

    这个问题暂时就到这,后面再研究下是否有其他方法。

  • 相关阅读:
    【leetcode】1365. How Many Numbers Are Smaller Than the Current Number
    【leetcode】1363. Largest Multiple of Three
    【leetcode】1362. Closest Divisors
    【leetcode】1361. Validate Binary Tree Nodes
    【leetcode】1360. Number of Days Between Two Dates
    【leetcode】1359. Count All Valid Pickup and Delivery Options
    【leetcode】1357. Apply Discount Every n Orders
    【leetcode】1356. Sort Integers by The Number of 1 Bits
    ISE应用入门的一些问题
    DDR的型号问题
  • 原文地址:https://www.cnblogs.com/daydayup-lin/p/14993230.html
Copyright © 2011-2022 走看看