qq:78080458 学习交流群:150633458
分类: LINUX
2019-04-25 17:42:33
top
top指令用来显示Linux的进程信息,这是一个动态显示的过程。top提供运行系统的动态实时视图。它可以显示系统摘要信息以及当前由Linux内核管理的任务列表。所显示的系统摘要信息的类型以及为任务显示的信息的类型、顺序和大小都是用户可配置的,并且可以在重新启动期间使配置持久。
该程序为进程操作提供了有限的交互界面,也为个人配置提供了更广泛的界面-包括其操作的每个方面。虽然TOP是在整个文档中引用的,但您可以随意命名该程序。这个新的名称(可能是别名)将反映在top的显示器上,并在读取和写入配置文件时使用。
当操作top时,最重要的两个键是Help(“h”或“?”)并退出(‘q’)键。或者,您可以简单地使用传统的中断键(‘^C’)。当您第一次启动top时,您将看到传统的屏幕元素:1)摘要区域;2)消息/提示行;3)列标题;4)任务区域。然而,与之前的top相比,会有一些不同之处。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、SUSE、openSUSE。
1、语法
top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]
2、命令行选项
选项 |
说明 |
-a |
按照内存使用排序 |
-b |
批处理模式操作。以“批处理模式”启动top,这对于将输出从top发送到其他程序或文件可能很有用。在这种模式下,top将不接受输入并运行,直到使用‘-n’命令行选项设置的迭代限制或直到终止为止。 |
-c |
以最后一个记忆中的‘c’状态反转开始。因此,如果top正在显示命令行,那么现在该字段将显示程序名,而Visa则相反。 |
-dss.tt |
设置top监视的时间间隔,默认5s。可以使用小数秒,但是负数却不行 |
-h |
显示帮助信息 |
-H |
线程取反。从最后一个记忆中的“H”状态开始。当此切换打开时,将显示所有单独的线程。否则,top将显示进程中所有线程的总和。 |
-i |
不显示僵尸进程。从最后一个记忆中的“I”状态开始。当此切换关闭时,将不会显示闲置或僵尸的任务。 |
-m |
使用的报告(进程RSS和交换总计数之和),而不是VIRT |
-M |
显示内存单元 |
-n |
设置监控更新次数 |
-p |
仅监视指定pid的信息。这个选项可以被给予最多20次,或者您可以提供一个逗号分隔列表和最多20个PIDS。这两种方法都是允许的。 |
-s |
安全模式。以强制的安全模式启动top,即使对于root用户也是如此。通过系统配置文件更好地控制这种模式(参见主题5)。档案) |
-S |
累积时间模式切换。从最后一个记忆中的‘S’状态反转开始。当“累积模式”打开时,每个进程都会列出它及其死子进程使用的CPU时间。有关此模式的其他信息,请参见“S”交互式命令。 |
-u |
只监视具有有效UID或用户名匹配的进程 |
-U |
只监视具有给定UID或用户名匹配的进程。这与实际的、有效的、保存的和文件系统UID匹配。 |
-v |
显示库版本和使用提示,然后退出。 |
3、字段/列
1)字段描述
下面列出了top的可用字段。它们总是与所显示的字母相关联,无论您为它们设置的位置是‘o’(Order字段)交互命令。任何字段都可以选择为排序字段,您可以控制它们是按高低排序还是从低到高排序。
字段 |
说明 |
PID |
任务的唯一进程ID,它定期包装,但从不在零重新启动 |
PPID |
进程的父ID |
RUSER |
任务所有者的真实用户名 |
UID |
任务所有者的有效用户ID |
USER |
任务所有者的有效用户名 |
GROUP |
任务所有者的有效组名称 |
TTY |
控制终端的名称。这通常是设备(串口,pty等)。从其中启动进程,并将其用于输入或输出。但是,任务不需要与终端相关联,在这种情况下,您会看到‘?’显示 |
PR |
任务优先级 |
NI |
任务的nice值。负的好值意味着更高的优先级,而正的好值则意味着较低的优先级。该字段中的零只意味着在确定任务的可调度性时不会调整优先级。 |
P |
表示最后一次使用的处理器的数字。在真正的SMP环境中,由于内核有意使用弱亲和力,这很可能经常发生变化。此外,运行top的行为可能会打破这种微弱的亲和力,导致更多进程更频繁地更改CPU(因为对CPU时间的额外需求)。 |
%CPU |
自上次屏幕更新以来,任务在经过的CPU时间中所占的份额,表示为总CPU时间的百分比。在真正的SMP环境中,如果“Irix模式”关闭,top将在“Solaris模式”中操作,其中任务的CPU使用量将除以CPU总数。使用“i”交互命令切换“Irix/Solaris”模式 |
TIME |
任务自启动以来使用的总CPU时间。当“累积模式”打开时,每个进程都会列出它及其死子进程使用的CPU时间。使用“S”切换“累积模式”,这是命令行选项和交互式命令。有关此模式的其他信息,请参见“S”交互式命令 |
TIME+ |
与“TIME”相同,但通过百分之一秒反映出更多的粒度。 |
%MEME |
任务当前使用的可用物理内存共享 |
VIRT |
任务使用的虚拟内存总量。它包括所有代码、数据和共享库以及已被交换的页面。(注意:您可以定义STATSIZE=1环境变量,并且VIRT将从/proc/#/state VmSize字段中计算。) |
SWAP |
每个进程交换值现在从/proc/#/Status VmABP字段中获取。 |
RES |
任务使用的非交换物理内存。 |
CODE |
用于可执行代码的物理内存量,也称为“文本驻留集”大小或TRS。 |
DATA |
用于可执行代码以外的物理内存量,也称为“数据驻留集”大小或DRS。 |
SHR |
任务使用的共享内存量。它只是反映了可能与其他进程共享的内存。 |
nFLT |
任务发生的主要页面错误数。当进程试图读取或写入当前不在其地址空间中的虚拟页时,会发生页错误。一个主要的页面错误是当磁盘访问涉及到使该页可用时。 |
nDRT |
自上次写入磁盘以来已修改的页数。脏页必须写入磁盘,才能将相应的物理内存位置用于其他虚拟页。 |
S |
任务的状态,可以是 D,不间断睡眠 R,运行 S,睡眠 T,追踪或停止 Z,僵尸 |
Command |
显示用于启动任务的命令行或关联程序的名称。使用‘c’在命令行和名称之间切换,这既是命令行选项,也是交互式命令。当您选择显示命令行时,没有命令行的进程(如内核线程)将仅以括号中的程序名显示,如本例所示 ( mdrecoveryd ) 如果显示的长度太长,无法适应该字段的当前宽度,则这两种显示形式都会受到潜在截断的影响。该宽度取决于所选的其他字段、其顺序和当前屏幕宽度。 |
WCHAN |
根据内核链接映射(‘System.map’)的可用性,该字段将显示任务当前处于休眠状态的内核函数的名称或地址。正在运行的任务将在本列中显示一个‘-’。 |
Flags |
此列表示任务的当前调度标志,这些标志以十六进制表示法表示,零被抑制。这些标志正式记录在中。 |
2)选择和排序列
在按下交互命令‘f’(字段选择)或‘o’(顺序字段)后,将显示一个屏幕,其中包含当前字段字符串,后面跟着所有字段的名称和说明。下面是来自TOP的四个窗口/字段组之一的示例字段字符串,以及对所使用的约定的解释:
示例字段字符串:
ANOPQRSTUVXbcdefgjlmyzWHIK |
显示字段的顺序对应于该字符串中字母的顺序。
如果字母大写,则相应字段本身将显示为任务显示的一部分(屏幕宽度允许)。这也将用一个领先的星号(‘*’)来表示,如以下摘录所示:
... * K: %CPU = CPU usage l: TIME = CPU Time m: TIME+ = CPU Time, hundredths * N: %MEM = Memory usage (RES) * O: VIRT = Virtual Image (kb) ... |
字段选择屏幕---‘f’交互式命令:只需按相应的字母,就可以切换字段的显示。
命令字段屏幕---“o”交互命令:通过按相应的大写字母向左移动一个字段,用小写字母向右移动一个字段。
3)汇总区域字段