英文:Linoxide 编译:Linux中国/geekpilinux.cn/article-2352-1.htmlLinux中的top命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被广泛用于监视服务器的负载。在本篇中,我们会探索top命令的细节。top命令是一个交互命令。在运行top的时候还可以运行很多命令。我们也会探索这些命令。 (译注:不同发行版的top命令在各种细节有不同,如果发现不同时,请读你的帮助手册和命令内的帮助。)
1. Top 命令输出
首先,让我们了解一下输出。top命令会显示系统的很多信息。我们需要理解不同部分输出的意义:默认运行时,top命令会显示如下输出:1.1 系统运行时间和平均负载
- 当前时间
- 系统已运行的时间
- 当前登录用户的数量
- 相应最近5、10和15分钟内的平均负载。
1.2 任务
1.3 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处理时间的)。
1.4 内存使用
1.5 字段/列
- D – 不可中断的睡眠态。
- R – 运行态
- S – 睡眠态
- T – 被跟踪或已停止
- Z – 僵尸态
2. 交互命令
我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。2.1 ‘h’: 帮助
首先,我们可以用’h’或者’?’显示交互命令的帮助菜单。2.2 ‘’ 或者 ‘’: 刷新显示
top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户可以输入回车或者空格。2.3 ‘A’: 切换交替显示模式
这个命令在全屏和交替模式间切换。在交替模式下会显示4个窗口(译注:分别关注不同的字段):- Def (默认字段组)
- Job (任务字段组)
- Mem (内存字段组)
- Usr (用户字段组)
2.4 ‘B’: 触发粗体显示
一些重要信息会以加粗字体显示。这个命令可以切换粗体显示。2.5 ‘d’ 或‘s’: 设置显示的刷新间隔
当按下’d’或’s’时,你将被提示输入一个值(以秒为单位),它会以设置的值作为刷新间隔。如果你这里输入了1,top将会每秒刷新。2.6 ‘l’、‘t’、‘m’: 切换负载、任务、内存信息的显示
这会相应地切换顶部的平均负载、任务/CPU状态和内存信息的概况显示。2.7 ‘f’: 字段管理
用于选择你想要显示的字段。用’*’标记的是已选择的。2.8 ‘R’: 反向排序
切换反向/常规排序。2.9 ‘c’: 触发命令
切换是否显示进程启动时的完整路径和程序名。2.10 ‘i’: 空闲任务
切换显示空闲任务。2.11 ‘V’: 树视图
切换树视图。2.12 ‘Z’: 改变配色
按下’Z’向用户显示一个改变top命令的输出颜色的屏幕。可以为8个任务区域选择8种颜色。2.13 ‘z’: 切换彩色显示
切换彩色,即打开或关闭彩色显示。2.14 ‘x’ 或者 ‘y’
切换高亮信息:’x’将排序字段高亮显示(纵列);’y’将运行进程高亮显示(横行)。依赖于你的显示设置,你可能需要让输出彩色来看到这些高亮。2.15 ‘u’: 特定用户的进程
显示特定用户的进程。你会被提示输入用户名。空白将会显示全部用户。2.16 ‘n’ 或 ‘#’: 任务的数量
设置最大显示的任务数量2.17 ‘k’: 结束任务
top命令中最重要的一个命令之一。用于发送信号给任务(通常是结束任务)。2.18 ‘r’: 重新设置优先级
重新设置一个任务的调度优先级。3. 命令行选项
这些命令行选项与上面讨论的命令大多相同。top的输出可以用命令交互操作,但是你也可以带参数运行top来设置你想要的效果。3.1 -b: 批处理模式
-b选项以批处理模式启动top命令。当你想要在文件中保存输出时是很有用的。3.2 -c: 命令/程序名 触发
如上面所讨论到的命令,这个选项会以上次记住的程序/命令显示的状态显示(是否显示完整路径)。3.3 -d: 设置延迟间隔
设置top的显示间隔(以秒计)。比如:$ top -d 1将会以1秒的刷新间隔启动top。 3.4 -i: 切换显示空闲进程 这个选项设置top命令的上一次记住的相反的‘i’状态。 3.5 -n: 设置迭代数量 用-n选项,你可以设置top退出前迭代的次数。
$ top -n 3将会在刷新输出3次后退出。 3.6 -p: 监控特定的PID 你可以用-p选项监控指定的PID。PID的值为0将被作为top命令自身的PID。 3.7 -u 或 -U: 用户名 或者 UID 可以用这些选项浏览特定用户的进程。用户名或者UID可以在选项中指定。-p、-u和-U选项是互斥的,同时只可以使用这其中一个选项。当你试图组合使用这些选项时,你会得到一个错误:
$ top -p 28453 -u raghu top: conflicting process selections (U/p/u)
近期精彩内容推荐:
知乎高赞:高考700分和700万怎么选?
Python这五个坑,怎么避开?
贼好用的Java工具类库,GitHub星标10k+
“新冠牌”啤酒真倒霉:60天赔了20个亿

在看点这里好文分享给更多人↓↓