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是最高优先级

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

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

  • 相关阅读:
    EF使用CodeFirst创建数据库和表
    EF使用CodeFirst创建数据库和表
    MVC实现实现文件流打包成压缩包
    MVC实现实现文件流打包成压缩包
    MVC实现实现文件流打包成压缩包
    Visual Studio Code 开发 .NET Core 看这篇就够了
    Visual Studio Code 开发 .NET Core 看这篇就够了
    P1438 无聊的数列
    P3380 【模板】二逼平衡树(树套树)
    SP16580 QTREE7
  • 原文地址:https://www.cnblogs.com/daydayup-lin/p/14993230.html
Copyright © 2011-2022 走看看