处理器时间由分离的时间片(ticks)组成。在一些时间片上,cpu繁忙;另一些时间片上,cpu空闲。下图表示,在10个时间片上其中6个是繁忙的,cpu使用百分比是6/10 = 60%,也即是40%的空闲时间。

注意:一个cpu周期是单个脉冲时间,脉冲由高低电压组成。每秒中有上亿个ticks,取决于cpu的频率。

你可以从/proc/stat中获得自计算机启动后的CPU ticks个数:

$ cat /proc/stat

user nice  system  idle   iowait  irq  softirq steal guest guest_nice

cpu  1732 182    590    4682    1022    0      34     0    0      0

计算公式

自计算机启动后总的CPU时间:

@1 = user+nice+system+idle+iowait+irq+softirq+steal

自计算机启动后总的CPU空闲时间:

@2 = idle + iowait

自计算机启动后CPU繁忙的时间:

@3 = @1 - @2

总的cpu使用百分比:

@3 / @1 X 100

注意 Guest 和 Guest_nice已经计算到了 user 和 nice中。

为了获得实时的cpu使用百分比,你需要计算时间间隔的ticks数。

实时计算cpu使用百分比的的bash脚本(Paul Colby编写):

#!/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

cpu百分比linux,Linux:cpu使用百分比的计算相关推荐

  1. Linux查看CPU和内存使用情况详解

    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中, 可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态 ...

  2. linux监测cpu 内存,Linux中CPU与内存性能监测.docx

    Linux中CPU与内存性能监测(出处://chenleixing/article/details 在系统维护的过程中,随时可能有需要查看 CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调 ...

  3. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1, #cat /proc/stat/  信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s   或者 #vmstat    虚拟内存统 ...

  4. linux 使cpu使用率升高_linux命令总结(二)

    每天不断完善和更新自己的认知是件让人很愉悦的事情!!! MOMO:linux命令总结(一)​zhuanlan.zhihu.com MOMO:linux命令总结(二)​zhuanlan.zhihu.co ...

  5. Linux系统cpu负载浅析

    cpu负载就是cpu在一段时间内正在处理以及等待cpu处理的进程数之和的统计信息,也就是cpu使用队列的长度统计信息,这个数字越小越好. 维基百科关于系统负载的解释: the system Load ...

  6. 值得收藏的 14 个 Linux 下 CPU 监控工具

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 8rr.co/wgqK 01. top top ...

  7. 【干货】值得收藏的 14 个 Linux 下 CPU 监控工具

    01. top top是最常用的查看系统资源使用情况的工具,包括CPU.内存等等资源. 这里主要关注CPU资源. 1.1 /proc/loadavg load average取自/proc/loada ...

  8. Linux下查看CPU等基本命令,Linux查看CPU和内存使用情况的常用命令

    1.top top 的全屏对话模式可分为3部分:系统信息栏.命令输入栏.进程列表栏. 第一部分 -- 最上部的 系统信息栏 : 第一行(top): "00:11:04"为系统当前时 ...

  9. Linux按照CPU、内存、磁盘IO、网络性能监测

    系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...

最新文章

  1. 3.2.1 造成误差的原因分析
  2. Tensorboard—使用keras结合Tensorboard可视化
  3. 食品行业ERP选型 需把握关键的20%
  4. Windows Presentation Foundation (WPF)中的命令(Commands)简述
  5. Spring中Quartz的最精简的配置
  6. [HNOI2016]矿区
  7. Java Finalizer和Java文件输入/输出流
  8. Win32汇编学习[7]: 定义符号常量(=、EQU、TEXTEQU)
  9. 文档转换乱码异常解决:unoconv openoffice libreoffice
  10. Centos 5 手动安装yum
  11. Spark-Streaming
  12. android解压sd卡中的压缩文件
  13. 利用C++不使用递归,循环和goto,打印1到100 的某一答案分析
  14. 个人知识管理系统思源笔记
  15. HTML 行间距的设置方法与问题
  16. php detailview,PHP开发框架Yii Framework教程(31) Zii组件-DetailView示例
  17. 计算器的改良(NOIP2000)
  18. 【MyBatis-Plus】CRUD 操作
  19. 国家海洋局的超算应用探索
  20. 怎么把曲线拟合成一条直线 matlab,用matlab怎么拟合一条空间直线

热门文章

  1. 重磅发布!最新版《动手学深度学习》PDF 版今天终于可以下载
  2. 知识图谱理论与实践(以问答系统为例)
  3. CVPR 2018 论文解读 | 基于GAN和CNN的图像盲去噪
  4. 岗位推荐 | 实在智能招聘深度学习算法研究员(可实习)
  5. 数学建模第五节2020.5.8-17补
  6. Opencv-python 3.3版本安装
  7. HDU 2612 Find a way bfs
  8. java download oracle,Oracle Java Products Download
  9. LeetCode 两数之和
  10. C#——《C#语言程序设计》实验报告——继承与多态——银行ATM程序