Linux下CPU利用率和CPU负载(附加代码实现)

第一节   CPU利用率和CPU负载

在Linux/Unix下,CPU利用率(CPU utilization)分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:CPU执行非系统空闲进程的时间 / CPU总的执行时间。(上述代码中使用的方法为:1 - CPU空闲运行时间/总运行时间 ,与这个计算方法原理上是一样的)

      在Linux的内核中,有一个全局变量:Jiffies。 Jiffies代表时间。它的单位随硬件平台的 不同而不同,系统里定义了一个常数HZ----代表每秒种最小时间间隔的数目。这样jiffies的单位就是1/HZ。Intel平台jiffies的单位是1/100秒,这就是系统所能分辨的最小时间间隔了。每个CPU时间片,Jiffies都要加1。 CPU的利用率就是用执行用户态+系统态的Jiffies除以总的Jifffies来表示。

      那么,还有一个经常容易与CPU利用率CPU utilization混淆的词 -- CPU负载(CPU load)。CPU负载取决于CPU队列长度而不是CPU利用率,因为一个主机负载过重时,它的CPU利用率会接近100%,从而无法准确反应负载状况,而使用CPU队列长度则可以很直接反应CPU的负载量。比如说两个系统,其中一个系统有3个进程在队列中,而另一台有6个进程在队列,如果使用CPU利用率表示负载水平,他们可能都是接近100%,而使用CPU队列长度他们的负载量完全不同。
     
    我们如何理解CPU负载?一只单核的处理器可以形象得比喻成一条单车道!那么:
    *** 0.00 表示目前桥面上没有任何的车流。 实际上这种情况与 0.00 和 1.00 之间是相同的,总而言之很通畅,过往的车辆可以丝毫不用等待的通过。
    *** 1.00 表示刚好是在这座桥的承受范围内。 这种情况不算糟糕,只是车流会有些堵,不过这种情况可能会造成交通越来越慢。
    *** 超过 1.00,那么说明这座桥已经超出负荷,交通严重的拥堵。 那么情况有多糟糕? 例如 2.00 的情况说明车流已经超出了桥所能承受的一倍,那么将有多余过桥一倍的车辆正在焦急的等待。3.00 的话情况就更不妙了,说明这座桥基本上已经快承受不了,还有超出桥负载两倍多的车辆正在等待。
                          http://files.gracecode.com/2009_11_05/890367db9819.jpg
    上面的情况和处理器的负载情况非常相似。一辆汽车的过桥时间就好比是处理器处理某线程 的实际时间。Unix 系统定义的进程运行时长为所有处理器内核的处理时间加上线程 在队列中等待的时间。
和收过桥费的管理员一样,你当然希望你的汽车(操作)不会被焦急的等待。所以,理想状态 下,都希望负载平均值小于 1.00 。当然不排除部分峰值会超过 1.00,但长此以往保持这 个状态,就说明会有问题,这时候你应该会很焦急。
     在多处理器系统中,负载均值是基于内核的数量决定的。以 100% 负载计算,1.00 表示单个处理器,而 2.00 则说明有两个双处理器,那么 4.00 就说明主机具有四个处理器。回到我们上面有关车辆过桥的比喻。1.00 我说过是「一条单车道的道路」。那么在单车道 1.00 情况中,说明这桥梁已经被车塞满了。而在双处理器系统中,这意味着多出了一倍的 负载,也就是说还有 50% 的剩余系统资源 ---- 因为还有另外条车道可以通行。
                          http://files.gracecode.com/2009_11_05/556217db9819.jpg
所以,单处理器已经在负载的情况下,双处理器的负载满额的情况是 2.00,它还有一倍的资源可以利用。

      实际上Linux系统中很多都是用CPU负载均值(load average)来代表当前系统的负载状况,比如使用top命令:
  1. long@long-Ubuntu:~$ top  
  2.   
  3. top - 20:12:45 up  3:05,  6 users,  load average: 1.16, 1.27, 1.14  
  4. Tasks: 208 total,   1 running, 206 sleeping,   0 stopped,   1 zombie  
  5. %Cpu(s): 11.8 us,  3.7 sy,  0.0 ni, 84.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st  
  6. KiB Mem:   2067372 total,  1998832 used,    68540 free,    54104 buffers  
  7. KiB Swap:  2095100 total,    25540 used,  2069560 free,   449612 cached  
  8.   
  9.   PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND             
  10.  6635 long      20   0  435m  79m  32m S   7.3  3.9  11:31.39 rhythmbox           
  11.  4523 root      20   0  110m  61m 4804 S   5.3  3.0   8:34.14 Xorg                
  12.  5316 long       9 -11  162m 5084 4088 S   4.3  0.2   6:01.53 pulseaudio          
  13.  5793 long      20   0  114m  22m  13m S   4.3  1.1   0:23.38 gnome-terminal  
  14.  ……  
在第一行的最后显示的为 “ load average: 1.16 ,  1.27  ,1.14
使用“uptime”命令,效果也是类似:
  1. long@long-Ubuntu:~$ uptime   
  2.  20:15:01 up  3:07,  6 users,  load average: 0.43, 0.97, 1.05  
这三个数分别是:一分钟内、五分钟内、十五分钟内的系统负载均值。也就是说,从右向左看这几个数据,我们可以判断系统负载的发展趋势。
事实上,这正是CPU负载所需要测量的,因为负载均值不包括那些等待I/O、网络、数据或者其他不依赖CPU的进程或线程,它关注的仅仅是积极要求CPU时间的进程或线程。这与CPU利用率是有很大不同的。

负载均值与CPU利用率在两个方面有很大的区别:
    1) 负载均值用来估量CPU利用率的发展趋势,而不是某一时刻的状况
    2) 负载均值包括所有CPU的需求,而不仅仅是在测量时活跃的

第二节   如何计算CPU利用率

在Linux系统中,可以用/proc/stat文件来计算cpu的利用率(详细可参考)。这个文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。 如:
  1. long@long-Ubuntu:~$ cat /proc/stat   
  2. cpu  426215 701 115732 2023866 27329 4 557 0 0 0  
  3. cpu0 218177 117 57458 1013633 8620 0 6 0 0 0  
  4. cpu1 208038 584 58274 1010233 18709 4 550 0 0 0  
  5. intr 21217894 119 18974 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 146350 0 647836 370 86696 3 146156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  
  6. ctxt 38682044  
  7. btime 1362301653  
  8. processes 10118  
  9. procs_running 1  
  10. procs_blocked 0  
  11. softirq 11177991 0 6708342 2178 148765 86792 0 14537 1507468 29072 2680837  

输出解释:
(CPU 以及CPU0、CPU1、CPU2、CPU3每行的每个参数意思(以第一行为例))
                 
参数解释
user (426215) 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒
nice (701)从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
system (115732)从系统启动开始累计到当前时刻,核心时间(单位:jiffies)
idle (2023866)从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)
iowait (27329)从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,
irq (4)从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)
softirq (557) 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)


CPU时间=user+system+nice+idle+iowait+irq+softirq

“intr”这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。

“ctxt”给出了自系统启动以来CPU发生的上下文交换的次数。

“btime”给出了从系统启动到现在为止的时间,单位为秒。

“processes (total_forks) 自系统启动以来所创建的任务的个数目。

“procs_running”:当前运行队列的任务的数目。

“procs_blocked”:当前被阻塞的任务的数目。


那么CPU利用率可以使用以下两个方法。先取两个采样点,然后计算其差值:
cpu usage=(idle2-idle1)/(total_2 - total_1)*100

cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100

第三节 Linux提供的一些查看系统信息的工具

使用下面这些命令我们可以查询总的CPU使用率、单独的CPU使用率(对于对称多处理机器SMP)、从你上次启动后的平均CPU使用率等。

3.1   老当益壮的top命令
使用top命令可以动态的查看CPU使用率。它会显示当前内核管理着的任务信息,它还会显示上线时间、负载均值、物理和交换内存使用状况。使用如下:
           $ top
按Q键推出top。
  1. long@long-Ubuntu:~$ top  
  2.   
  3. top - 14:52:24 up  6:13,  5 users,  load average: 1.06, 1.02, 1.24  
  4. Tasks: 203 total,   1 running, 201 sleeping,   0 stopped,   1 zombie  
  5. %Cpu(s): 27.5 us,  5.9 sy,  0.0 ni, 66.2 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st  
  6. KiB Mem:   2067372 total,  1808288 used,   259084 free,    41020 buffers  
  7. KiB Swap:  2095100 total,    55040 used,  2040060 free,   539728 cached  
  8.   
  9.   PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND             
  10.  5740 long      20   0  110m  27m  14m S  15.2  1.4   3:13.91 gnome-terminal      
  11.  4597 root      20   0 95000  31m 4848 S  13.9  1.6  25:29.79 Xorg                
  12.  5297 long      20   0  246m  70m  19m S  10.3  3.5  14:09.52 compiz   

3.2   使用"mpstat"命令

使用这个命令,你需要先安装sysstat工具,对于Debian或Ubuntu用户,可以通过apt-get直接安装:
            $ apt-get install sysstat
使用如下命令查看CPU使用率信息:
            $ mpstat
  1. long@long-Ubuntu:~$ mpstat   
  2. Linux 3.7.1 (long-Ubuntu)   2013年03月04日     _i686_  (2 CPU)  
  3.   
  4. 14时53分16秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle  
  5. 14时53分16秒  all   18.91    4.92    5.15    1.00    0.00    0.04    0.00    0.00   69.99  
使用如下命令可以监控单独的CPU使用率信息:
            $ mpstat -P ALL

  1. long@long-Ubuntu:~$ mpstat -P ALL  
  2. Linux 3.7.1 (long-Ubuntu)   2013年03月04日     _i686_  (2 CPU)  
  3.   
  4. 14时53分53秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle  
  5. 14时53分53秒  all   18.91    4.91    5.15    0.99    0.00    0.04    0.00    0.00   70.01  
  6. 14时53分53秒    0   19.02    4.25    5.19    0.66    0.00    0.00    0.00    0.00   70.88  
  7. 14时53分53秒    1   18.79    5.57    5.10    1.33    0.00    0.07    0.00    0.00   69.13  

3.3   使用"sar"命令
使用sar命令显示CPU使用率的语法如下:
            $ sar -u 2 5  ( sar [ 选项 ] [ <时间间隔> [ <次数> ] ])
这条命令会显示2秒内的CPU使用率,总共显示5次。

  1. long@long-Ubuntu:~$ sar -u 2 5  
  2. Linux 3.7.1 (long-Ubuntu)   2013年03月04日     _i686_  (2 CPU)  
  3.   
  4. 14时54分22秒     CPU     %user     %nice   %system   %iowait    %steal     %idle  
  5. 14时54分24秒     all      5.51      0.00      1.50      1.00      0.00     91.98  
  6. 14时54分26秒     all      4.52      0.00      1.26      0.00      0.00     94.22  
  7. 14时54分28秒     all      4.02      0.00      1.76      0.00      0.00     94.22  
  8. 14时54分30秒     all      4.77      0.00      1.51      3.77      0.00     89.95  
  9. 14时54分32秒     all      3.77      0.00      1.51      0.00      0.00     94.72  
  10. 平均时间:     all      4.52      0.00      1.51      0.95      0.00     93.02  

3.4   使用"iostat"命令
"iostat"命令可以用来查询从系统启动以来的是CPU平均使用率以及设备或者分区的I/O状况:
            $ iostat
  1. long@long-Ubuntu:~$ iostat   
  2. Linux 3.7.1 (long-Ubuntu)   2013年03月04日     _i686_  (2 CPU)  
  3.   
  4. avg-cpu:  %user   %nice %system %iowait  %steal   %idle  
  5.           18.89    4.90    5.18    0.99    0.00   70.04  
  6.   
  7. Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn  
  8. sda               6.75        67.08        58.24    1512659    1313268  

4.5   GUI Tools 一些有图形界面的工具
KDE桌面环境有一些系统监控器一类的工具可以用来监控CPU使用率甚至更多的系统信息(比如说CPU负载状况、物理内存以及交换分区的数据占用信息),你还可以使用它来杀死一些进程。

下表总结了若干Linux下的工具:


工具  
                简单介绍
top 
查看进程活动状态以及一些系统状况
vmstat
查看系统状态、硬件和系统信息等
iostat
查看CPU 负载,硬盘状况
sar 
综合工具,查看系统状况
mpstat  
查看多处理器状况
netstat  
查看网络状况
iptraf
实时网络状况监测
tcpdump
抓取网络数据包,详细分析
mpstat 
查看多处理器状况
tcptrace 
 数据包分析工具
netperf  
网络带宽工具
dstat  
综合工具,综合了 vmstat, iostat, ifstat, netstat 等多个信息

第四节  代码实现
想获取一下目标机运行时linux系统的硬件占用情况,写了这个小程序,以后直接用了。
方法就是读取proc/stat下的文件来获取了。 cpu使用率:    /proc/stat ,内存使用情况:      /proc/meminfo
看程序 :
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
/***************************************************************
*    @file:        statusinfo.c
*
*    @brief:        从linux系统获取cpu及内存使用情况
*
*    @version    1.0
*
***************************************************************/
typedef struct         //定义一个cpu occupy的结构体
{
char name[20];      //定义一个char类型的数组名name有20个元素
unsigned int user; //定义一个无符号的int类型的user
unsigned int nice; //定义一个无符号的int类型的nice
unsigned int system;//定义一个无符号的int类型的system
unsigned int idle; //定义一个无符号的int类型的idle
}CPU_OCCUPY;

typedef struct         //定义一个mem occupy的结构体
{
char name[20];      //定义一个char类型的数组名name有20个元素
unsigned long total;
char name2[20];
unsigned long free;                       
}MEM_OCCUPY;

get_memoccupy (MEM_OCCUPY *mem) //对无类型get函数含有一个形参结构体类弄的指针O
{
    FILE *fd;          
    int n;             
    char buff[256];   
    MEM_OCCUPY *m;
    m=mem;
                                                                                                              
    fd = fopen ("/proc/meminfo", "r");
      
    fgets (buff, sizeof(buff), fd);
    fgets (buff, sizeof(buff), fd);
    fgets (buff, sizeof(buff), fd);
    fgets (buff, sizeof(buff), fd);
    sscanf (buff, "%s %u %s", m->name, &m->total, m->name2);
    
    fgets (buff, sizeof(buff), fd); //从fd文件中读取长度为buff的字符串再存到起始地址为buff这个空间里
    sscanf (buff, "%s %u", m->name2, &m->free, m->name2);
    
    fclose(fd);     //关闭文件fd
}

int cal_cpuoccupy (CPU_OCCUPY *o, CPU_OCCUPY *n)
{   
    unsigned long od, nd;    
    unsigned long id, sd;
    float cpu_use = 0;   
    
    od = (unsigned long) (o->user + o->nice + o->system +o->idle);//第一次(用户+优先级+系统+空闲)的时间再赋给od
    nd = (unsigned long) (n->user + n->nice + n->system +n->idle);//第二次(用户+优先级+系统+空闲)的时间再赋给od
      
    id = (unsigned long) (n->user - o->user);    //用户第一次和第二次的时间之差再赋给id
    sd = (unsigned long) (n->system - o->system);//系统第一次和第二次的时间之差再赋给sd
    if((nd-od) != 0)
    cpu_use = (float)((sd+id)*100)/(nd-od); //((用户+系统)乖100)除(第一次和第二次的时间差)再赋给g_cpu_used
    else cpu_use = 0;
    printf("cpu: %f\n",cpu_use);
    return cpu_use;
}

get_cpuoccupy (CPU_OCCUPY *cpust) //对无类型get函数含有一个形参结构体类弄的指针O
{   
    FILE *fd;         
    int n;            
    char buff[256];
    CPU_OCCUPY *cpu_occupy;
    cpu_occupy=cpust;
                                                                                                               
    fd = fopen ("/proc/stat", "r");
    fgets (buff, sizeof(buff), fd);
    
    sscanf (buff, "%s %u %u %u %u", cpu_occupy->name, &cpu_occupy->user, &cpu_occupy->nice,&cpu_occupy->system, &cpu_occupy->idle);
    printf("name = %s, user = %u, nice = %u, system = %u , idle = %u \n",cpu_occupy->name,cpu_occupy->user,cpu_occupy->nice,cpu_occupy->system,cpu_occupy->idle);
    
    fclose(fd);     
}

int main()
{
    CPU_OCCUPY cpu_stat1;
    CPU_OCCUPY cpu_stat2;
    MEM_OCCUPY mem_stat;
    int cpu;
    
    //获取内存
    get_memoccupy ((MEM_OCCUPY *)&mem_stat);
    
    //第一次获取cpu使用情况
    get_cpuoccupy((CPU_OCCUPY *)&cpu_stat1);
    sleep(5);
    
    //第二次获取cpu使用情况
    get_cpuoccupy((CPU_OCCUPY *)&cpu_stat2);
    
    //计算cpu使用率
    cpu = cal_cpuoccupy ((CPU_OCCUPY *)&cpu_stat1, (CPU_OCCUPY *)&cpu_stat2);
    
    return 0;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux系统中,可以使用一些命令和脚本来指定CPU利用率为50%。一种方法是使用stress命令。stress是一个可以用来测试系统稳定性的工具,也可以用来模拟CPU负载。 首先,确保您的系统已经安装了stress工具。在终端中输入以下命令以安装stress: sudo apt-get install stress 安装完成后,可以使用以下命令来指定CPU利用率为50%: stress --cpu 1 --timeout 60 上述命令中,--cpu 1表示只使用1个CPU核心,--timeout 60表示持续运行60秒。这将导致系统的1个CPU核心的利用率保持在50%左右。 如果您希望系统的所有CPU核心都以50%的利用率运行,可以修改上述命令为: stress --cpu $(nproc) --timeout 60 上述命令中,$(nproc)将返回系统的CPU核心数量,并将其作为参数传递给--cpu选项,从而使用全部CPU核心。 运行以上命令后,系统的CPU利用率将接近50%。可以使用top命令或htop命令来查看系统CPU利用率是否已达到目标。当执行完设定的时间(60秒)后,stress命令会自动退出,CPU利用率将会恢复到正常水平。 需要注意的是,这只是一个简单的示例。更复杂的任务可以使用更多选项和参数来实现不同的CPU利用率目标。请确保根据具体需求进行适当的调整。 ### 回答2: 要实现Linux系统指定CPU利用率达到50%的脚本,可以使用stress工具结合任务调度工具来完成。 首先,安装stress工具。在终端中输入以下命令: ``` sudo apt-get install stress ``` 然后,创建一个脚本文件如"cpu.sh",并在终端中输入以下命令: ``` nano cpu.sh ``` 然后在cpu.sh文件中输入以下内容: ```bash #!/bin/bash stress --cpu 1 --timeout 30 ``` 这个脚本会使用stress工具模拟一个CPU负载,并持续运行30秒。 保存并退出cpu.sh文件(按Ctrl + X,然后按Y,最后按Enter)。 接下来,使用任务调度工具来调度这个脚本,以使得脚本定期执行并达到50%的CPU利用率。 在终端中输入以下命令来编辑cron表: ``` crontab -e ``` 然后,在打开的文本编辑器中将以下内容添加到文件的底部: ```bash * * * * * /path/to/cpu.sh ``` 请将"/path/to/cpu.sh"替换为实际的脚本文件路径。 保存并退出文本编辑器。 现在,每分钟脚本文件就会执行一次,模拟CPU负载,并持续运行30秒。根据系统和硬件的不同,这个脚本将尽量使得CPU利用率达到50%的水平。 ### 回答3: 在Linux上指定CPU利用率为50%的脚本可以使用stress命令来实现。stress命令是一个压力测试工具,它可以模拟CPU、内存、磁盘和网络等多种资源的负载。 以下是一个用于指定CPU利用率为50%的简单脚本: ```shell #!/bin/bash # 设置要测试的CPU核心数量 CORES=$(grep -c "^processor" /proc/cpuinfo) # 设置要实现的目标CPU利用率 TARGET_UTILIZATION=50 # 计算每个核心需要的线程数 THREADS=$(echo "scale=0; $CORES * $TARGET_UTILIZATION / 100" | bc) # 启动stress命令,限制CPU利用率 stress --cpu $THREADS --timeout 60s ``` 解释: - `CORES`变量获取当前计算机的CPU核心数量。 - `TARGET_UTILIZATION`变量指定目标CPU利用率为50%。 - `THREADS`变量根据目标利用率和核心数量计算出每个核心需要的线程数。这里使用bc命令进行小数运算。 - `stress`命令用于创建负载,`--cpu`参数指定创建CPU负载,`$THREADS`指定线程数,`--timeout`参数指定持续时间,这里设置为60秒。 可以在终端中将上述脚本保存到一个文件(例如script.sh),并使用以下命令运行它: ```shell chmod +x script.sh ./script.sh ``` 运行脚本后,每个CPU核心的利用率应该接近50%。可以根据需求修改目标利用率或持续时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值