Linux CPU监控指标

Linux提供了非常丰富的命令可以进行CPU相关数据进行监控,例如:top、vmstat等命令。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止,比较准确的说,top命令提供了实时的对系统处理器的状态监视,它将显示系统中 CPU 最“敏感”的任务列表。该命令可以按 CPU 使用,内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。 
    top命令提供如下参数:
    top [-] [d delay] [p pid] [q] [c] [C] [S] [s] [i] [n iter] [b]
选项名 称         说明
d  delay   指定每两次屏幕信息刷新之间的时间间隔(delay 即为具体的间隔时间数值,它的单位是秒),可以使用 s交互命令来改变之。 
p pid 通过指定监控进程 ID(pid)来仅仅监控某个进程的状态。
q 该选项将使 top 没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么 top 将以尽可能高的优先级运行。 
c 显示整个命令行而不只是显示命令名。 
C 显示 CPU 总体信息而取代分别显示每个 CPU 的信息,此参数仅对SMP 系统有效。 
S 指定累计模式。
s 使 top 命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使 top 不显示任何闲置或者僵死进程。 
n  iter 指定 top命令迭代输出的次数,iter为具体的迭代次数值。
b "Batch"方式运行top,在这种方式下,所有来自终端的输入都将被忽略(当然除了ctrl+c),该参数可以结合参数“n"运行指定迭代次数退出或者该进程被杀死。这是运行top输出到哑终端或输到非终端的默认运行方式
 
示例一                                                                                                                                                                                                     
在控制台输入“top”,回车如下:
top命令输出信息包含两部分内容:
第一部分为统计信息,包含五行数据信息;第二部分为详细信息,显示了各个进程的详细信息。
 
有必要了解下统计信息部分的输出信息内容的含义:
输出信息 说明
19:47:24 当前时间
up 15 min 系统运行时间
2 users 当前登录用户数,这里是jzhou和root
load average:0.02 , 0.14 , 0.21 系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值,即0.02,0.14,0.21
Tasks:122 total, 1 running,120 sleeping,0 stopped,1 zombie 122个进程(任务),其中有2个处于运行状态,120个处于睡眠状态,没有停止的进程,有1个僵尸进程
Cpus:0.7%us,0.7%sy,0.0%ni,97.6%id,0.0%wa,0.7%hi,0.3%si,0.0%st Cpu运行状态,用户进程(user)占用CPU的0.7%,系统进程(system)占用CPU的0.7%,用户进程没有改变过优先级的进程,所以user nice值为0.0%,97.6%的CPU处于空闲状态(idle),没有等待的输入输出,所以iowait的值也为0.0%,硬件请求终端时间(hardware interrupt)占CPU的0.7%,软终端请求时间占CPU的0.3%,st代表steal time,具体作用不是很清楚,网上说是为其它CPU预留的,不清楚
Mem:1035244k total,537528k used,497716k free,25816k buffers 内存总量为1035244k,已使用的内存总量为537528k,497716k为空闲内存总量,25816k用作内核缓存的内存总量。(这是虚拟机的情况,物理机好像还有其它参数)
Swap:0k total,0k used,0k free,351392k cached 交换分区总量为0k,使用的交换分区总量为0k,空闲交换分区总量为0k,351392k为缓冲的交换区总量(cached)、内存中的内容被患处到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

然后看看详细信息部分输出的信息的内容:

输出信息 说明
PID 进程标识符
USER 进程所有者用户名
PR/PRI 进程执行的优先级
NI NICE值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S/STAT 进程状态
D:不可中断的睡眠状态
R:正在运行,或在队列中的进程
S:处于休眠状态
T:停止或被追踪
Z:僵尸进程
W:进入内存交换
X:死掉的进程

%CPU 上次更新到现在的CPU时间占用百分比
%MEN 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100s
COMMAND 进程被执行的命令名称
 
示例二                                                                                                                                                                                                                
vmstat 命令,可以使您能够在同一行看到系统的内存、CPU 等使用情况,通常您可以用该命令来查看CPU 的利用率和饱和度。 
先连接两个概念:
CPU利用率:CPU利用率可以使用 vmstat通过从 100减去 id 或者 us与 sy之和来计算CPU 利用率
CPU饱和度:CPU 饱和度可以通过 vmstat 命令的“procs:r”来作为衡量标准,由于它是所有 cpu 运行队列的合计值,因此将 procs:r 除以 CPU 数目所得到的值可与其他服务器相比较。
任何持续不变的非零值都会引起性能的下降,但性能的下降是逐渐的。
 
vmstat命令参数如下:
vmstat [-n] [delay [count]] 
也有必要了解下vmstat命令参数的含义:
参数名称 说明
n 通过这个开关参数,如果启用它则仅显示一次表头信息
delay 指定每两次屏幕信息刷新之间的时间间隔,单位:s
count 在结合delay参数使用时,如果给指定数值,则运行指定的次数后退出,否则将无限次运行
在控制台输入“vmstat –n 1”,回车执行后,该命令即为仅显示一次标头信息,每隔 1 秒钟显示一次 vmstat监控信息
然后了解下输出信息内容各部分代表的含义:
   
 
示例三                                                                                                                                                                                                                                  
    还可以通过“uptime”命令来获得 CPU 平均负载的情况。平均负载的计算通常描述为可运行和运行线程的平均数目。举例来说,如果一枚单CPU 服务器上有1 个运行线程占用了 CPU,有3 个运行进程在调度程序队列中,那么平均负载即为 1+3=4。对于一枚 16CPU 的服务器,负载是16 个运行线程,有 24 个运行进程在调度程序队列中,那么平均负载是 40。如果平均负载始终高于CPU 的数目,则可能导致应用程序性能的下降。需要说明的是平均负载只适用于CPU 负载的初始估算,深入的分析我们还需要借助于其他工具来做。再对 CPU平均负载有一个初步了解以后,让我们来看看该命令是如何使用的,它的输出内容又包含那些内容。
因为“uptime”命令仅提供了一个可选参数项“V”,即:显示该命令的版本信息,所以不用叙述了。
 
在控制台输入“uptime”,回车执行后,运行结果:
可以看到“load average:0.53,0.65,0.34”即为 CPU 平均负载对应系统在第 1分钟,5 分钟和 15 分钟的平均负载值。同时它们也代表 CPU 利用率和饱和度。如果 CPU 数目和平均负载的值相等,通常代表 100%的 CPU利用率,小于 CPU数目,则表示利用率小于 100%,大于 CPU数目需要用饱和度来衡量。
 
 
 
标签: Linux

Linux CPU监控指标的更多相关文章

  1. Linux发送监控指标到内部邮箱

    数据库的健康监控是个很重要的工作.重要的指标\KPI监控结果会有专门的採集.监控.告警系统来做相关事情. 而一些不是很重要的或者还在设计和调试阶段的相关指标,我仅仅是想发送到我自己邮箱,本文就针对在s ...

  2. linux性能监控 -CPU、Memory、IO、Network等指标的讲解

    [操作系统-linux]linux性能监控 -CPU.Memory.IO.Network等指标的讲解(转) 一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,Syst ...

  3. 系统服务监控指标--load、CPU利用率、磁盘剩余空间、磁盘I/O、内存使用情况等

    介绍 大型互联网企业的背后,依靠的是成千上万台服务器日夜不停的运转,以支撑其业务的运转.宕机对于互联网企业来说,代价是沉重的,轻则影响用户体验,重则直接影响交易,导致交易下跌,并且给企业声誉造成不可挽 ...

  4. Linux 性能监控之CPU&内存&I/O监控Shell脚本2

    Linux 性能监控之CPU&内存&I/O监控Shell脚本2   by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...

  5. Linux 性能监控之CPU&内存&I/O监控Shell脚本1

    Linux 性能监控之CPU&内存&I/O监控Shell脚本1   by:授客 QQ:1033553122   #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...

  6. Linux性能监控与分析之--- CPU

    Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...

  7. Linux 系统监控常用命令

    简介 列举操作系统级监控常用的几个方法,建议收藏使用 CPU top 命令可用于监控系统整体负载,包括cpu.内存使用等,能够实时显示系统中各个进程的资源占用状况 输出样例 top - 19:37:4 ...

  8. Linux记录-linux系统监控命令汇总

    命令 功能应用 用法举例     free 查看内存使用情况,包括物理内存和虚拟内存 free -h或free -m     vmstat 对系统的整体情况进行统计,包括内核进程.虚拟内存.磁盘.陷阱 ...

  9. python进行linux系统监控

      python进行linux系统监控 Linux系统下: 静态指标信息: 名称 描述 单位 所在文件 mem_total 内存总容量 KB /proc/meminfo disks 磁盘相关信息 - ...

随机推荐

  1. C/S模式开发中如何利用WebBrowser控件制作导航窗体

    原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见 ...

  2. Linux中加入用户、删除用户时新手可能遇到的问题

    Linux中加入用户.删除用户时新手可能遇到的问题  1.创建新用户后切换到新用户:No directory, logging in with HOME=/     加入用户     #sudo us ...

  3. 我所理解的Spring AOP的基本概念

    Spring AOP中的概念晦涩难懂,读官方文档更是像读天书,看了非常多样例后,写一些自己理解的一些spring的概念.要理解面向切面编程,要首先理解代理模式和动态代理模式. 如果一个OA系统中的一个 ...

  4. 泛型委托及委托中所涉及到匿名方法、Lambda表达式

    泛型委托及委托中所涉及到匿名方法.Lambda表达式 引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到 ...

  5. 逗比学树莓派之GPIO

           wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群.wiringPi的API函数和arduino很相似,这也使得它广受欢迎.作者给出了大量的说明 ...

  6. 把VBScript的函数迁移到C#.NET

    原文:把VBScript的函数迁移到C#.NET VBScript 5.6 Functions C# code Abs System.Math.Abs Array New Object() { } A ...

  7. Google Summer of Code 建议被接收的5个技巧

    Google Summer of Code 建议被接收的5个技巧 本文翻译自:http://www.di.ens.fr/~baghdadi/TXT_blog/5_advices_to_get_your ...

  8. CSS知识总结之设计模式(持续学习中)

    OOCSS 参考:http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss  ...

  9. Fluent NHibernate

    Fluent NHibernate]第一个程序 目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Flu ...

  10. hdu 4858 项目管理(STL集装箱)

    项目管理 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...