码迷,mamicode.com
首页 > 系统相关 > 详细

Linux Top 命令

时间:2017-11-22 13:16:28      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:tip   soft   软中断   info   个数   linux进程   rup   官方   inf   

linux查看进程使用最多的命令应该是top命令了吧,我们今天主要说明一下,top命令结果中各参数的意义,top命令结果如下:

 技术分享图片

直观上结果分为上下两部分,上部分主要是系统的信息,下部分是系统进程信息,下面详细说明一下:

技术分享图片

第一行代表了系统运行时间,分别表示:

系统时间,系统运行到现在的时间,当前登陆系统的用户数、系统平均负载的三个值,分别是5分钟、10分钟、15分钟。

tip:说明一下什么是系统负载,一般负载值越小越好,值也高说明系统的可能是出现了某种问题的信息,但是也并不是绝对的

借用网友的文章说明一下:https://www.cnblogs.com/TaleG/p/6030992.html

一只单核的处理器可以形象得比喻成一条单车道,数字在0-1之间算正常,这样来一辆车,该车不会等待直接通过;

0表示路上没有车

1.00 表示道路还算正常,但有可能会恶化并造成拥堵。此时系统已经没有多余的资源了,管理员需要进行优化;

1.00-*** 表示路况不太好了,如果到达2.00表示有桥上车辆一倍数目的车辆正在等待。这种情况你必须进行检查了

技术分享图片

如果我们有两条行车道呢?

技术分享图片

满负荷状态的数字为 "1.00 * CPU核数",即双核CPU为2.00,四核CPU为4.00

SO:

单核负载在0.7以下是安全的,超过0.7就需要进行优化了

那应该看那个参数??

看5分钟和15分钟的比较好,即后面2个数字。

CPU的核数如何获取呢??

grep model name /proc/cpuinfo | wc -l

CPU核心数目N,观察后面2个数字,用数字/N,如果得到的值小于0.7即可无忧

 

上一张字段说明图:

技术分享图片

说明了第一行,第二行啥意思?

其实一眼就应该看出来,应该是系统进程数,第一列表示系统总进程数其次是运行进程、休眠进程、停止进程和僵尸进程

技术分享图片

之后是系统CPU运行时间,“用户空间占用CPU百分比”、“内核空间占用CPU百分比”、“用户空间内改变过优先级的进程占用CPU百分比”、“空闲CPU百分比”、“等待输入输出CPU时间百分比”、“CPU服务于硬件中断所耗费的时间总额”、“CPU服务软中断所耗费的时间总额”、“Steal Time”

技术分享图片

那么CPU各个参数都代表了什么意思呢?

看看那官方解释:

us: user cpu time (or) % CPU time spent in user space

sy: system cpu time (or) % CPU time spent in kernel space

ni: user nice cpu time (or) % CPU time spent on low priority processes

id: idle cpu time (or) % CPU time spent idle

wa: io wait cpu time (or) % CPU time spent in wait (on disk)

hi: hardware irq (or) % CPU time spent servicing/handling hardware interrupts

si: software irq (or) % CPU time spent servicing/handling software interrupts

st: steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor (or) % CPU time stolen from a virtual machine

简单翻译一下:

us:用户态使用的cpu时间比

sy:系统态使用的cpu时间比

ni:用做nice加权的进程分配的用户态cpu时间比

id:空闲的cpu时间比

wa:cpu等待磁盘写入完成时间

hi:硬中断消耗时间

si:软中断消耗时间

st:虚拟机偷取时间

然并卵,还是不懂:

我们还是看看CPU的百分比是如何计算的吧:

比如一秒内有100个cpu时间片,这个cpu时间片就是cpu工作的最小单位。那么这100个cpu时间片在不同的区域和目的进行操作使用,就代表这个区域所占用的cpu时间比。也就是这里得出的cpu时间百分比,比如

技术分享图片

将文件从磁盘的src位置拷贝到磁盘的dst位置。文件会从src先读取进入到内核空间,然后再读取到用户空间,然后拷贝数据到用户空间的buf上,再通过用户空间,内核空间,数据才到磁盘的dst上

所以从上面这个程序来看,cpu消耗在kernel space的时候就是sy(系统态使用的cpu百分比),cpu消耗在user space的时候就是us(用户态使用的cpu百分比)。そうか

弄明白了前两个,在说说hi和si两个参数

如果程序都没什么问题,那么是没有hi和si的,但是实际上有个硬中断和软中断的概念。比如硬中断,cpu在执行程序的时候,突然外设硬件(比如硬盘出现问题了)机器需要立刻通知cpu进行现场保存工作。这个时候会cpu会出现上下文切换。就是cpu会有一部分时间会被硬中断占用了,这个时间就是hi。相类似,si是软中断的cpu占用时间,软中断是由软件的指令方式触发的。

相关软中断和硬中断的概念可以参考:

http://blog.csdn.net/pxz_002/article/details/7327668

 

下面是nice参数

ni是nice的意思,nice是什么呢,每个linux进程都有个优先级,优先级高的进程有优先执行的权利,这个叫做pri。进程除了优先级外,还有个优先级的修正值。即比如你原先的优先级是20,然后修正值为-2,那么你最后的进程优先级为18。这个修正值就叫做进程的nice值。

 那么问题来了,修改值是一个数字,怎么会占用系统时间呢???

ni是指用做nice加权的进程使用的用户态cpu时间比,我的理解就是一个进程的所谓修正值就意味着多分配一些cpu时间给这个进程的用户态,这个中间所多分配的cpu时间就是我们这里的ni。(这个理解没啥把握,如果有错误麻烦帮忙指出下)

 

 

之后是内存:

技术分享图片

 

第五行是交换分区:

技术分享图片

 

最后是进程信息:

技术分享图片

 

Linux Top 命令

标签:tip   soft   软中断   info   个数   linux进程   rup   官方   inf   

原文地址:http://www.cnblogs.com/yunfeiqi/p/7878164.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!