Linux中的top命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被广泛用于监视服务器的负载。在本篇中,我们会探索top命令的细节。top命令是一个交互命令。在运行top的时候还可以运行很多命令。我们也会探索这些命令。
(译注:不同发行版的top命令在各种细节有不同,如果发现不同时,请读你的帮助手册和命令内的帮助。)
首先,让我们了解一下输出。top命令会显示系统的很多信息。我们需要理解不同部分输出的意义:默认运行时,top命令会显示如下输出:
前几行水平显示了不同系统参数的概括,接下来是进程和它们在列中的属性。
top命令的顶部显示与uptime命令相似的输出。
这些字段显示:
可以使用’l’命令切换uptime的显示。
第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用’t’切换显示。
下一行显示的是CPU状态。 这里显示了不同模式下的所占CPU时间的百分比。这些不同的CPU时间表示:
可以使用’t’命令切换显示。
接下来两行显示内存使用率,有点像’free’命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。
物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。
内存显示可以用’m’命令切换。
在横向列出的系统属性和状态下面,是以列显示的进程。不同的列代表下面要解释的不同属性。
默认上,top显示这些关于进程的属性:
PID
进程ID,进程的唯一标识符
USER
进程所有者的实际用户名。
PR
进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。
NI
进程的nice值(优先级)。越小的值意味着越高的优先级。
VIRT
进程使用的虚拟内存。
RES
驻留内存大小。驻留内存是任务使用的非交换物理内存大小。
SHR
SHR是进程使用的共享内存。
S
这个是进程的状态。它有以下不同的值:
%CPU
自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM
进程使用的可用物理内存百分比。
TIME+
任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND
运行进程所使用的命令。
还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。
我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。
首先,我们可以用’h’或者’?’显示交互命令的帮助菜单。
top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户可以输入回车或者空格。
这个命令在全屏和交替模式间切换。在交替模式下会显示4个窗口(译注:分别关注不同的字段):
这四组字段共有一个独立的可配置的概括区域和它自己的可配置任务区域。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的显示间隔(以秒计)。比如:
将会以1秒的刷新间隔启动top。
这个选项设置top命令的上一次记住的 相反的 ‘i’状态。
用-n选项,你可以设置top退出前迭代的次数。
将会在刷新输出3次后退出。
你可以用-p选项监控指定的PID。PID的值为0将被作为top命令自身的PID。
可以用这些选项浏览特定用户的进程。用户名或者UID可以在选项中指定。-p、-u和-U选项是互斥的,同时只可以使用这其中一个选项。当你试图组合使用这些选项时,你会得到一个错误:
top命令用于显示系统运行的进程信息,作用类似于windows中的任务管理器,只不过top不是图形化的,而是显示实时文本信息\x0d\x0a\x0d\x0a统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。\x0d\x0aPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND\x0d\x0a序号列名含义\x0d\x0aPID进程id\x0d\x0aPPID父进程id\x0d\x0aRUSERRealusername\x0d\x0aUID进程所有者的用户id\x0d\x0aUSER进程所有者的用户名\x0d\x0aGROUP进程所有者的组名\x0d\x0aTTY启动进程的终端名。不是从终端启动的进程则显示为?\x0d\x0aPR优先级\x0d\x0aNInice 值。负值表示高优先级,正值表示低优先级\x0d\x0aP最后使用的CPU,仅在多CPU环境下有意义\x0d\x0a%CPU上次更新到现在的CPU时间占用百分比\x0d\x0aTIME进程使用的CPU时间总计,单位秒\x0d\x0aTIME+进程使用的CPU时间总计,单位1/100秒\x0d\x0a%MEM进程使用的物理内存百分比\x0d\x0aVIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES\x0d\x0aSWAP进程使用的虚拟内存中,被换出的大小,单位kb。\x0d\x0aRES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA\x0d\x0aCODE可执行代码占用的物理内存大小,单位kb\x0d\x0aDATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb\x0d\x0aSHR共享内存大小,单位kb\x0d\x0anFLT页面错误次数\x0d\x0anDRT最后一次写入到现在,被修改过的页面数。\x0d\x0aS进程状态。\x0d\x0aD=不可中断的睡眠状态\x0d\x0aR=运行\x0d\x0aS=睡眠\x0d\x0aT=跟踪/停止\x0d\x0aZ=僵尸进程\x0d\x0aCOMMAND命令名/命令行\x0d\x0aWCHAN若该进程在睡眠,则显示睡眠中的系统函数名\x0d\x0aFlags任务标志,参考sched.htop命令分为汇总区和任务明细区
当前时间是15:39:37. 系统已经运行了90天,15个小时,26分钟。当前有两个活跃用户
上下两行以kb形式展示物理内存和swap内存的总计,空闲(free), 已使用(total)的情况
其中buff/cache ,是在cpu读写硬盘数据时,为了提速在内存中开辟的缓冲(buffer针对写)或缓存区域(cache针对读)
avail mem 是创建新进程时,在不使用swap分区的情况下,能够分配的内存大小。这个大小可能比当前的free还大,这是因为buff/cache中的内存在创建进程时,若需要,也是可以抢占过来的。
总共有27个进程,1个运行,26的sleep中
load average后面的三组数字分别是1分钟、5分钟、15分钟的工作负载情况。这里的Load指的出于R(runing)和D(Uninterruptible sleep)的两种状态下的进程数
在单核cpu情况下。load average 为0.4的表示,其cpu利用率只有40%。 load average 为1,表示cpu利用率为100。load average 为2.12说明,cpu已经超负荷112% (2.12减满负荷1,即为超负荷部分)
在多核cpu的机器上,需要将以上的1,5,15的负载除以对应的cpu核数,才好评估对应的cpu的负载情况
比如,这个cpu为40核的机器上,其cpu过去一分钟的使用情况为:8.26/40=0.2065 ,说明cpu使用率只有20%
展示每个进程的情况
在top名称执行后,按小k,可以进入进程杀死对话框
在后面输入进程号,即可杀死进程
在top命令下
按以下大写字母,分别按不同的维度进行排序
当然你也可以在命令启动时,直接对top加参数。比如以cpu使用情况排序
top命令默认显示的进程的运行情况,在top命令执行后,按大写的H,可进入线程执行情况页面,再按一次H则会到进程展示。或者在启动时对top加参数 top -H
在top执行后,按小c,则能够展示进程路径,并且对内核进程的名称(command列),加上方括号。再按c切换回去
当然也可以在启动时,加参数 top -c
top执行后按大V
在top启动后,按小写u,在输入框中输入对应的用户名
或者在top启动时,通过加参数来过滤用户 top -u root
在top启动后,按大O,进入过滤表达式的输入框
表达式有以下几种类型
输入等号'=',清除filter表达式
在top命令下,按t或m来进行进度条显示
首先基于 ps aux | grep processName 找到对应进程的pid
然后使用 top -c -p pid 方式单过滤查看该进程的资源占用情况
https://www.booleanworld.com/guide-linux-top-command/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)