top.1

TOP(1)

TOP(1)

FreeBSD General Commands Manual

TOP(1)

top

显示和更新有关顶级 cpu 进程的信息

top [-CHIPSTabijnpqtuvxz] [-J jail] [-U uid] [-d count] [-m cpu|io] [-s time] [-o field] [-p pid] [number]

top 显示系统上的顶级进程并定期更新此信息。 如果标准输出是智能终端(见下文),则默认显示终端屏幕上的尽可能多的进程。 否则,会显示很多(大约 20 个)。 原始 cpu 百分比用于对进程进行排名。 如果给出了 number ,那么将显示排名靠前的 number 进程而不是默认进程。

top 对支持高级功能的终端和不支持高级功能的终端进行了区分。 这种区别会影响某些选项的默认值的选择。 在本文档的其余部分中, “intelligent” 终端是支持光标寻址、清除屏幕和清除到行尾的终端。 相反, “dumb” 终端是不支持此类功能的终端。 如果 top 的输出被重定向到一个文件,它就像在一个哑终端上运行一样。

-C

切换 CPU 显示模式。 默认情况下,top 在 WCPU 列中显示加权 CPU 百分比(这与 ps(1) 显示为 CPU 的值相同)。 每次传递 -C 标志时,它都会在 “raw cpu” 模式和 “weighted cpu” 模式之间切换,分别显示 “CPU” 和 “WCPU” 列。

-S

在显示屏中显示系统进程。 通常,不会显示寻呼机和交换程序等系统进程。 此选项使它们可见。

-a

显示从 argv[] 向量派生的命令名称,而不是真正的可执行文件名称。 当您想观看应用程序时,它很有用,可以将它们的状态信息放在那里。 如果真实姓名与 argv[0] 不同,则会显示在括号中。 命令行中的不可打印字符以 C 样式的反斜杠序列或三位八进制序列编码。

-b

使用 “batch” 模式。 在这种模式下,来自终端的所有输入都将被忽略。 中断字符(如 ^C 和 ^\) 仍然有效。 这是哑终端上的默认设置,或者当输出不是终端时。

-H

分别显示多线程进程的每个线程。 默认情况下,每个流程都会显示一个摘要行。

-i

使用 “interactive” 模式。 在这种模式下,任何输入都会立即被读取以进行处理。 有关哪些键执行哪些功能的说明,请参见 “Interactive Mode” 部分。 处理完命令后,即使不理解命令,也会立即更新屏幕。 当标准输出为智能终端时,此模式为默认模式。

-I

不显示空闲进程。 默认情况下,top 同时显示活动和空闲进程。

-j

显示 jail(8) ID。

-T

切换显示线程 ID (tid) 而不是进程 ID (pid)。

-t

不显示 top 进程本身。

-m display

显示“cpu”或“io”统计信息。 默认为“CPU”。

-n

使用 “non-interactive” 模式。 这与 “batch” 模式相同。

-P

显示每个 cpu 的 CPU 使用统计信息。

-q

Renice top 到 -20 以便它运行得更快。 这可以在系统非常缓慢时使用,以提高发现问题的可能性。 此选项只能由 root 使用。

-u

不要将 uid 号映射到用户名。 通常, top 会根据需要读取文件 “/etc/passwd” 中的所有内容,以将它遇到的所有用户 ID 号映射到登录名中。 此选项禁用所有这些,同时可能减少执行时间。 显示的是 uid 编号而不是名称。

-v

将版本号信息写入 stderr 然后立即退出。

-w

显示每个进程的大致交换使用情况。

-z

不显示系统空闲进程。

-d count

仅显示 count 显示,然后退出。 显示被认为是屏幕的一次更新。 哑终端的默认值为 1。 请注意,对于 count = 1 ,没有关于 CPU 在每个状态中花费的时间百分比的信息。

-s time

将屏幕更新之间的延迟设置为 time 秒,这可能是小数。 更新之间的默认延迟为 1 秒。

-o field

对指定字段的进程显示区域进行排序。 字段名称是在输出中看到的列的名称,但小写: “cpu“, ”size“, ”res“, ”time“, ”pri“, ”threads“, “total“, ”read“, ”write“, ”fault“, ”vcsw“, ”ivcsw“, “jid“, ”swap“ 或 ”pid“。

-p pid

仅显示进程 pid 。

-J jail

仅显示 jail 拥有的那些进程。 这可能是监狱的 jid 或 name 。 使用 0 来限制主机进程。使用此选项意味着 -j

-U username

仅显示 username 拥有的那些进程。 这个选项目前只接受用户名,不会理解 uid 号码。

count 和 number 字段都可以指定为 “infinite” ,表示它们可以尽可能地拉伸。 这是通过使用关键字 “infinity”, “maximum”, 或 “all” 的任何适当前缀来实现的。 布尔标志是切换。 任何这些选项的第二个规范将否定第一个。

top 在 “interactive mode” 下运行时,它会从终端读取命令并相应地对其进行操作。 在这种模式下,终端被置于 “CBREAK” ,这样一输入字符就会被处理。 几乎总是,当 top 位于显示之间时会按下一个键;也就是说,当它等待 time 秒数过去时。 如果是这种情况,则将处理该命令并在其后立即更新显示(反映该命令可能指定的任何更改)。 即使命令不正确也会发生这种情况。 如果在 top 更新显示过程中按下某个键,它将完成更新然后处理命令。 有些命令需要额外的信息,用户会得到相应的提示。 在输入此信息时,会识别用户的擦除和终止键(由命令 stty(1) 设置),并以换行符终止输入。

当前可以识别这些命令(^L 指的是 control-L):

^L

重绘屏幕。

h

显示命令摘要(帮助屏幕)。 此显示中包含版本信息。

q

退出 top

d

更改要显示的显示器数量(提示输入新数量)。请记住,下一个显示计为一个,因此键入

d1

将使 top 显示一个最终显示,然后立即退出。

m

在 “cpu” 和 “io” 模式之间切换显示。

n or #

更改要显示的进程数(提示输入新数字)。

s

更改显示之间延迟的秒数(提示输入新数字)。

S

切换系统进程的显示。

a

切换进程标题的显示。

k

向进程列表发送信号(默认为 “kill” )。 这与命令 kill(1) 的作用类似。

r

更改进程列表的优先级 “nice”) 。 这类似于 renice(8) 。

u

仅显示由一组特定用户名拥有的进程(提示输入用户名)。 如果指定的用户名只是 “+” 或 “-” ,则将显示属于所有用户的进程。 可以通过分别在用户名前面加上 “+” 和 “-” 来将用户名添加到集合中和从集合中删除。

o

更改显示的排序顺序。 排序键名称包括 “cpu”, “res”, “size”, “time” 。 默认为 cpu。

p

显示特定进程(提示 pid)。 如果指定的 pid 只是 “+” ,则显示所有进程。

e

显示最后一个命令生成的系统错误列表(如果有)。

B H

切换线程的显示。

i or I

切换空闲进程的显示。

j

切换 jail(8) ID 的显示。

J

仅显示特定监狱拥有的进程(提示监狱)。 如果指定的监狱只是简单的 “+”, 那么属于所有监狱和主机的进程将被显示。 这也将启用 JID 的显示。

P

切换每个 CPU 统计信息的显示。

T

切换显示 TID 和 PID

t

切换 top 进程的显示。

w

切换交换使用的显示。

z

切换系统空闲进程的显示。

显示屏的前几行显示有关系统状态的一般信息,包括分配给进程的最后一个进程 ID(在大多数系统上)、三个平均负载、当前时间、现有进程的数量、每个状态(睡眠、运行、启动、僵尸和停止)的进程,以及在每个处理器状态(用户、nice、系统和空闲)中花费的时间百分比。 它还包括有关物理和虚拟内存分配的信息。

屏幕的其余部分显示有关各个进程的信息。 此显示在本质上与 ps(1) 相似,但并不完全相同。 PID 是进程 id,JID 显示时是进程对应的 jail(8) ,USERNAME 是进程所有者的名称(如果指定 -u ,UID 列将替换 USERNAME),PRI 是进程的当前优先级,NICE 是 nice(1) 数量,SIZE 是进程的总大小(文本、数据和堆栈),RES 是当前驻留内存的数量,SWAP 是交换的大致数量,如果启用(SIZE、RES 和 SWAP 以千字节为单位),STATE 是当前状态( “START”, “RUN” (在 SMP 系统上显示为 “CPUn” ), “SLEEP”, “STOP”, “ZOMB”, “WAIT”, “LOCK” 或进程等待的事件),C 是进程正在执行的处理器编号(仅在 SMP 系统上可见),TIME 是系统和用户 cpu 秒数进程已使用,WCPU,当显示时,是加权 cpu 百分比(这与 ps(1) 显示为 CPU 的值相同),CPU 是原始百分比,是排序以确定进程顺序的字段,COMMAND 是命令的名称进程当前正在运行(如果进程被换出,此列标记为 “”)。

如果进程处于 “SLEEP” 或 “LOCK” 状态,状态列将报告进程正在等待的事件或锁的名称。 锁名称以星号 “*” 为前缀,而睡眠事件则没有。

Mem: 61M Active, 86M Inact, 368K Laundry, 22G Wired, 102G Free ARC: 15G Total, 9303M MFU, 6155M MRU, 1464K Anon, 98M Header, 35M Other 15G Compressed, 27G Uncompressed, 1.75:1 Ratio, 174M Overhead Swap: 4096M Total, 532M Free, 13% Inuse, 80K In, 104K Out

Active

活动字节数

Inact

未激活的干净字节数

Laundry

排队等待清洗的脏字节数

Wired

连接的字节数,包括 IO 级缓存文件数据页

Buf

用于 IO 级磁盘缓存的字节数

Free

空闲字节数

这些统计信息仅在使用 ARC 时显示。

Total

用于 ZFS ARC 的有线字节数

MRU

保存最近使用数据的 ARC 字节数

MFU

保存最常用数据的 ARC 字节数

Anon

飞行数据中保存的 ARC 字节数

Header

包含标头的 ARC 字节数

Other

其他 ARC 字节

Compressed

ARC 缓存使用的内存字节数

Uncompressed

压缩前存储在 ARC 缓存中的数据字节数

Ratio

ARC缓存数据的压缩率

Total

总可用交换使用量

Free

总免费交换使用量

Inuse

交换使用

In

从交换设备调入的字节数(最后一个间隔)

Out

换页到交换设备的字节数(最后一个间隔)

TOP

top 的默认参数集。

LC_CTYPE

指定 argv 标志时显示 -a 向量时使用的语言环境。

kill(1), ps(1), stty(1), getrusage(2), humanize_number(3), mem(4), renice(8)

William LeFebvre, EECS Department, Northwestern University

应该跟踪交换进程的命令名称,但这会使程序运行得更慢。

与 ps(1) 一样,当 top 为更新收集信息时,情况可能会发生变化。 它给出的画面只是与现实的近似。

September 21, 2019

FreeBSD 13.1-RELEASE

最后更新于

FreeBSD 中文社区