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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。