Linux中如何计算特定CPU使用率


当前第2页 返回上一页

有了上面的背景知识,接下来我们就可以计算具体CPU的使用情况了。具体计算方式如下:

1

2

3

4

Total CPU time since boot = user+nice+system+idle+iowait+irq+softirq+steal

Total CPU Idle time since boot = idle + iowait

Total CPU usage time since boot = Total CPU time since boot - Total CPU Idle time since boot

Total CPU percentage = Total CPU usage time since boot/Total CPU time since boot * 100%

有了上面的计算公式,计算某一CPU使用率或者系统总的CPU占用率也就是不难了。

示例:计算系统整体CPU占用情况

首先从/proc/stat中获取 t1时刻系统总体的user、nice、system、idle、iowait、irq、softirq、steal、guest、guest_nice的值,得到此时Total CPU time since boot(记为total1)和 Total CPU idle time since boot(记为idle1)。

其次,从/proc/stat中获取t2时刻系统总的Total CPU time since boot(记为total2)和Total CPU idle time since boot(记为idle2)。(方法同上一步)

最后,计算t2与t1之间系统总的CPU使用情况。也就是:

1

CPU percentage between t1 and t2 = ((total2-total1)-(idle2-idle1))/(total2-total1)* 100%

其中, ((total2-total1)-(idle2-idle1))实际上就是t1与t2时刻之间系统CPU被占用的时间(总时间 - 空闲时间)。

下面是一段计算时间段内CPU被占用情况的脚本:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#!/bin/bash

# by Paul Colby (http://colby.id.au), no rights reserved ;)

PREV_TOTAL=0

PREV_IDLE=0

while true; do

  # Get the total CPU statistics, discarding the 'cpu ' prefix.

  CPU=(`sed -n 's/^cpu\s//p' /proc/stat`)

  IDLE=${CPU[3]} # Just the idle CPU time.

  # Calculate the total CPU time.

  TOTAL=0

  for VALUE in "${CPU[@]}"; do

    let "TOTAL=$TOTAL+$VALUE"

  done

  # Calculate the CPU usage since we last checked.

  let "DIFF_IDLE=$IDLE-$PREV_IDLE"

  let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"

  let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10"

  echo -en "\rCPU: $DIFF_USAGE%  \b\b"

  # Remember the total and idle CPU times for the next check.

  PREV_TOTAL="$TOTAL"

  PREV_IDLE="$IDLE"

  # Wait before checking again.

  sleep 1

done

以上就是Linux中如何计算特定CPU使用率的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

Linux端口不通

nfs服务简介及使用方法

为什么要学习Linux

Linux无法解析域名

Linux如何安装qq

关于迁云工具 windows gui 版本介绍

Linux 文件权限详解

Linux和centos的区别

Linux中xargs的用法详解

Linux不支持所有命令怎么办

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...