Linux中的top命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被普遍用于监视服务器的负载。在本篇中,咱们会探索top命令的细节。top命令是一个交互命令。在运行top的时候还能够运行不少命令。咱们也会探索这些命令。ruby
(译注:不一样发行版的top命令在各类细节有不一样,若是发现不一样时,请读你的帮助手册和命令内的帮助。)服务器
首先,让咱们了解一下输出。top命令会显示系统的不少信息。咱们须要理解不一样部分输出的意义:默认运行时,top命令会显示以下输出:工具
前几行水平显示了不一样系统参数的归纳,接下来是进程和它们在列中的属性。字体
top命令的顶部显示与uptime命令类似的输出。spa
这些字段显示:命令行
当前时间3d
系统已运行的时间code
当前登陆用户的数量orm
相应最近五、10和15分钟内的平均负载。排序
能够使用’l’命令切换uptime的显示。
第二行显示的是任务或者进程的总结。进程能够处于不一样的状态。这里显示了所有进程的数量。除此以外,还有正在运行、睡眠、中止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程归纳信息能够用’t’切换显示。
下一行显示的是CPU状态。 这里显示了不一样模式下的所占CPU时间的百分比。这些不一样的CPU时间表示:
us, user: 运行(未调整优先级的) 用户进程的CPU时间
sy,system: 运行内核进程的CPU时间
ni,niced:运行已调整优先级的用户进程的CPU时间
wa,IO wait: 用于等待IO完成的CPU时间
hi:处理硬件中断的CPU时间
si: 处理软件中断的CPU时间
st:这个虚拟机被hypervisor偷去的CPU时间(译注:若是当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。
能够使用’t’命令切换显示。
接下来两行显示内存使用率,有点像’free’命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。
物理内存显示以下:所有可用内存、已使用内存、空闲内存、缓冲内存。类似地:交换部分显示的是:所有、已使用、空闲和缓冲交换空间。
内存显示能够用’m’命令切换。
在横向列出的系统属性和状态下面,是以列显示的进程。不一样的列表明下面要解释的不一样属性。
默认上,top显示这些关于进程的属性:
PID
进程ID,进程的惟一标识符
USER
进程全部者的实际用户名。
PR
进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。
NI
进程的nice值(优先级)。越小的值意味着越高的优先级。
VIRT
进程使用的虚拟内存。
RES
驻留内存大小。驻留内存是任务使用的非交换物理内存大小。
SHR
SHR是进程使用的共享内存。
S
这个是进程的状态。它有如下不一样的值:
D – 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已中止
Z – 僵尸态
%CPU
自从上一次更新时到如今任务所使用的CPU时间百分比。
%MEM
进程使用的可用物理内存百分比。
TIME+
任务启动后到如今所使用的所有CPU时间,精确到百分之一秒。
COMMAND
运行进程所使用的命令。
还有许多在默认状况下不会显示的输出,它们能够显示进程的页错误、有效组和组ID和其余更多的信息。
咱们以前说过top是一个交互命令。上一节咱们已经遇到了一些命令。这里咱们会探索更多的命令。
首先,咱们能够用’h’或者’?’显示交互命令的帮助菜单。
top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户能够输入回车或者空格。
这个命令在全屏和交替模式间切换。在交替模式下会显示4个窗口(译注:分别关注不一样的字段):
Def (默认字段组)
Job (任务字段组)
Mem (内存字段组)
Usr (用户字段组)
这四组字段共有一个独立的可配置的归纳区域和它本身的可配置任务区域。4个窗口中只有一个窗口是当前窗口。当前窗口的名称显示在左上方。(译注:只有当前窗口才会接受你键盘交互命令)
咱们能够用’a’和’w’在4个 窗口间切换。’a’移到后一个窗口,’w’移到前一个窗口。用’g’命令你能够输入一个数字来选择当前窗口。
一些重要信息会以加粗字体显示。这个命令能够切换粗体显示。
当按下’d’或’s’时,你将被提示输入一个值(以秒为单位),它会以设置的值做为刷新间隔。若是你这里输入了1,top将会每秒刷新。
这会相应地切换顶部的平均负载、任务/CPU状态和内存信息的概况显示。
不显示平均负载
不显示CPU概况
不显示内存和交换内存概况
上面三个全不显示
用于选择你想要显示的字段。用’*’标记的是已选择的。
管理显示列
上下光标键在字段内导航,左光标键能够选择字段,回车或右光标键确认。
按'<‘移动已排序的字段到左边,’>’则移动到右边。
切换反向/常规排序。
切换是否显示进程启动时的完整路径和程序名。
完整命令路径
切换显示空闲任务。
不显示空闲命令
切换树视图。
树视图
按下’Z’向用户显示一个改变top命令的输出颜色的屏幕。能够为8个任务区域选择8种颜色。
定制颜色
下面显示的是4中颜色显示的top视图。
彩色显示
切换彩色,即打开或关闭彩色显示。
切换高亮信息:’x’将排序字段高亮显示(纵列);’y’将运行进程高亮显示(横行)。依赖于你的显示设置,你可能须要让输出彩色来看到这些高亮。
X 和 Y高亮
显示特定用户的进程。你会被提示输入用户名。空白将会显示所有用户。
raghu的进程
设置最大显示的任务数量
设置最大显示的任务数量
top命令中最重要的一个命令之一。用于发送信号给任务(一般是结束任务)。
杀死一个任务
从新设置一个任务的调度优先级。
这些命令行选项与上面讨论的命令大多相同。top的输出能够用命令交互操做,可是你也能够带参数运行top来设置你想要的效果。
-b选项以批处理模式启动top命令。当你想要在文件中保存输出时是颇有用的。
如上面所讨论到的命令,这个选项会以上次记住的程序/命令显示的状态显示(是否显示完整路径)。
设置top的显示间隔(以秒计)。好比:
$ top -d 1
将会以1秒的刷新间隔启动top。
这个选项设置top命令的上一次记住的相反的‘i’状态。
用-n选项,你能够设置top退出前迭代的次数。
$ top -n 3
将会在刷新输出3次后退出。
你能够用-p选项监控指定的PID。PID的值为0将被做为top命令自身的PID。
能够用这些选项浏览特定用户的进程。用户名或者UID能够在选项中指定。-p、-u和-U选项是互斥的,同时只能够使用这其中一个选项。当你试图组合使用这些选项时,你会获得一个错误:
$ top -p 28453 -u raghu top: conflicting process selections (U/p/u)