开发者社区> 问答> 正文

Linux系统硬件资源和性能监控命令: top

top命令一般用来查看用了多少CPU,以及哪些进程占用的CPU或者内存最多。

这个命令通常不需要使用参数,直接输入命令即可。
由于服务器之家( http://www.server110.com)的网站是生成静态HTML的方式运行,占用资源极少,所以这篇里以服务器之家的一个代维客户的系统作为例子来讲解。
执行top命令后显示结果如下图:


第三行红色圈出的内容为当前CPU的使用情况,有些数值并不是很好理解,所以这里只讲一下能直观的了解到CPU使用率的参数。
us和sy: 这二者之和是CPU当前正在使用的百分比。
wa: 这个是等待输入输出的时间的百分比,一般是等待硬盘的IO操作,比如有大量的硬盘读取或者写入的操作,这个值就会高些。
st: 这个参数一般在虚拟机中才会用到,在独立物理主机的系统中正常的话应该为0。它和wa类似,不过不是在等待IO处理,而是在等待宿主机器分配CPU资源。因为虚拟机中的CPU并不是完全独享的,同一个CPU核心,可能会有多个虚拟机一起在用,如果所有在使用这个CPU核心的虚拟机需要的CPU计算资源超过了100%,那就意味着需要等待宿主给你分配CPU,这个数值,就是等待分配CPU资源所用的时间的百分比。
id: CPU处于空闲状态的时间的百分比。
这五个参数的关于为
us + sy + wa + id + st = 100%(因为数值只保留到了小数点后1位,所以可能会有0.x的误差)
在上面的截图上这个关系体现的并不明显,我在另一台机器上故意执行了一个很消耗IO的操作,提高了wa的值,截图如下:

5.5+6.1+23.3+9.2+55.8 = 99.9

但是需要注意的是,上面的截图中,CPU一行的数值都是所有CPU核心总和的数值,比如第一张是4核CPU的主机,每一个数值都是代表在这4个CPU核心中所占的百分比。
如果想查看每个CPU核心的数值,需要按下键盘下的数字键“1”,命令结果如下图:


CPU核心的编号是从0开始,可以看到一共有4个CPU核心。这时显示的数值都是在对应的CPU核心中所占的百分比。
再次按下数字键“1”会回到显示总和的界面。

第一张图中,黄色圈住的一列,是对应的进程使用的内存大小;绿色一列是对应的进程使用的CPU的百分比,注意这里是相对于一个CPU核心的百分比,100%即为使用了1个CPU核心的计算资源。

进程默认是按使用的CPU多少来排列(如第1张截图)。按下大写字母“M”键(小写状态下按Shift+M,或者大写状态下直接按下M键)还可以让它按占用的内存大小排列,命令结果如下图:


按下大写字母“P”键(小写状态下按Shift+P,或者大写状态下直接按下P键),会恢复为按占用的CPU来排列。

在虚拟机(云主机或者VPS)中,更需要注意的是wa和st这二个数字。
而且需要按下1键后显示每个CPU核心单独的信息才有意义。举例来说,在一个8 CPU核心的机器上,如果显示的是CPU总和数值,如果其中一个CPU核心的wa时间达到100%(也就是说使用这个CPU核心的某个程序一直在等待硬盘IO处理),其他CPU核心的wa为0,那么8个核心的总数值一平均下,wa总值才为12.5%。
如果在没有太多硬盘IO操作的时候wa数值很高(查看硬盘IO数值的方法会在另一篇中写到,待更新),那么只能说明:要么是母机的硬盘IO性能太差,要么是同台母机上的有其他的虚拟机在进行大量硬盘读写的操作。
如果长时间出现st的数值偏高的情况,那么说明,这台母机上的CPU不够用了。



原创文章,转载请注明出处: http://www.server110.com/linux/201404/10581.html

展开
收起
云代维 2014-04-23 17:17:17 13623 0
2 条回答
写回答
取消 提交回答
  • ReLinux系统硬件资源和性能监控命令top
    能有撸主网站的速度就满足了
    2014-04-23 20:00:54
    赞同 展开评论 打赏
  • 学习了
    2014-04-23 18:16:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
MongoDB在性能监控领域的应用 立即下载
构建微服务下的性能监控 立即下载
微服务架构的应用性能监控 立即下载