全面详解linux下的top命令——实时监控服务器监控状况

linux下的top命令,可以用来实时监控服务器的健康状况。该命令能够获取到的信息非常多,是服务器运维工程师最好的帮手之一。我们知道,ps这个命令可以监控某一时刻,服务器上各进程的运行情况,相对比ps,top命令则可是持续监控。

top [选项]

常用选项如下:

  • -d 屏幕刷新间隔时间,默认为5秒
  • -n 共刷新屏幕的次数
  • -u 指定用户名
  • -p 指定进程ID

下面,我们看看top命令产生出的信息内容

首先我们来看第一行

  • top – 14:55:21 表示系统当前时间
  • up 12 days, 1:28 表示服务器自上次启动后持续运行的时间
  • 1 user 当前系统有多少个用户已登陆
  • load average: 0.17, 0.09, 0.13 表示系统在过去1分钟、5分钟、15分钟的工作负载情况。负载表示系统在同时运行几个程序。对于单核cpu,负载小于1表示正常,如果有4块cpu并且都是两核,那么负载小于8是正常的。

继续看第二行,第二行是给出系统所有进程的总体信息,总共有多少191个进程,1个进程正在运行中,190进程在休眠中。

第三行显示cpu的使用信息

  • us 表示用户进程占用的cpu百分比,如果是多核,这个表示的是平均值,可以按1来显示每个cpu的使用情况。

  • sy 表示内核空间占用的cpu百分比

  • id 表示空闲时间占cpu的百分比

  • wa表示I/0 wait,即等待输入输出的cpu时间百分比

第四行和第五行分别显示的是内存的使用情况、swap空间的使用情况。

对于top命令,我们不仅要知道几个选项的意义,更需要知道一些交互命令。这些交互命令可以让我们非常方便的查询想要的信息。常用的两个交互命令如下:

  • P:根据CPU使用百分比大小进行排序;
  • M:根据驻留内存大小进行排序
  • c:切换显示命令名称和完整命令行

介绍完top命令后,下面给出一个日常运维中非常有用的小方法。当我们知道了某个进程比较占用资源,那么可能就需要去监控这个进程一段时间,如果一直耗资源,就需要采取相应的措施了。比如,我们知道了mysql进程比较耗资源,并且知道了它的pid为1992,那么我们用top来监控该进程一段时间看看。

top -p 1992