1. 描述
top
命令是一个常用的 Linux 命令行工具,用于实时监视系统的运行状态和进程信息。它以交互式的方式显示系统的各种运行情况,包括 CPU 使用情况、内存使用情况、进程列表等。
2. 语法
top -hv | -bcEHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols] -M -N num
3. 使用
-
实时更新:
默认情况下,top
命令会实时更新显示系统的状态。在终端窗口中运行top
命令后,你可以看到系统的各种信息实时更新,包括 CPU 使用率、内存使用率、进程列表等。 -
交互式操作:
top
命令支持一系列交互式命令,可以在实时更新的状态下对显示进行控制。例如,按下键盘上的q
键可以退出top
命令;按下k
键可以杀死选定的进程;按下h
键可以显示帮助信息等。 -
显示的内容:
top
命令默认会显示 CPU 使用率、内存使用率、进程列表等信息。你也可以通过按下f
键或者o
键来定制显示的列,以及按照不同的排序方式来显示进程列表。 -
CPU 使用情况:
top
命令会显示 CPU 的使用情况,包括用户空间和系统空间的 CPU 使用率,以及等待 I/O 的 CPU 使用率等。你可以通过按下1
键来查看每个 CPU 核心的使用情况。 -
内存使用情况:
top
命令还会显示系统的内存使用情况,包括总内存、已用内存、空闲内存、缓存和缓冲区的使用情况等。 -
进程列表:
top
命令会列出当前系统中运行的所有进程,并显示它们的 PID、CPU 使用率、内存使用量、状态等信息。你可以按下M
键来按内存使用量排序,或者按下P
键来按 CPU 使用率排序。 -
其他选项:
top
命令还支持许多其他选项,如-d
选项用于指定更新间隔,-u
选项用于指定只显示特定用户的进程等。
4. 显示的字段含义
4.1 顶部字段
在 top
命令的输出中,顶部显示了几个关键指标,包括:
(1)Tasks:显示了系统当前运行的进程总数,以及其中运行中的进程数和睡眠中的进程数。通常格式为:
Tasks: total, X running, Y sleeping, Z stopped, P zombie
total
:系统当前运行的总进程数。running
:正在运行的进程数。sleeping
:睡眠中的进程数,即等待事件的进程。stopped
:已停止的进程数。zombie
:僵尸进程数,即已经终止但父进程尚未处理退出状态的进程数。
(2)%Cpu(s):显示了 CPU 的使用情况,包括用户空间、系统空间、等待 I/O 的 CPU 时间以及空闲 CPU 时间。通常格式为:
%Cpu(s): X.X us, Y.Y sy, Z.Z ni, A.A id, B.B wa, C.C hi, D.D si, E.E st
us
:用户空间 CPU 时间占比,表示进程运行在用户空间的时间占总 CPU 时间的百分比。sy
:系统空间 CPU 时间占比,表示内核执行系统调用和内核运行的时间占总 CPU 时间的百分比。ni
:nice 改变过的用户空间 CPU 时间占比,即优先级改变过的进程在用户空间的 CPU 时间占比。id
:空闲 CPU 时间占比,表示 CPU 空闲的时间占总 CPU 时间的百分比。wa
:等待 I/O 的 CPU 时间占比,表示 CPU 等待 I/O 操作完成的时间占总 CPU 时间的百分比。hi
:硬中断(Hardware Interrupt)CPU 时间占比。si
:软中断(Software Interrupt)CPU 时间占比。st
:被偷取的时间,即被虚拟化层偷取的 CPU 时间占比。
(3)MiB Swap:显示了系统中的交换空间(Swap)使用情况,包括总交换空间、已使用交换空间和可用交换空间的大小(单位为 MiB)。
这些指标提供了关于系统整体运行情况的概要信息,可帮助用户快速了解系统的负载情况、CPU 使用情况和交换空间使用情况。
4.2 每列字段
top
命令显示的每列含义如下:
-
PID:进程的 ID,用于唯一标识每个进程。
-
USER:启动进程的用户的用户名。
-
PR:进程的优先级,数值越小表示优先级越高。在 Linux 中,优先级通常为 -20(最高)到 19(最低)之间的值。
-
NI:进程的 nice 值,用于调整进程的优先级。nice 值越低,表示进程的优先级越高。
-
VIRT:进程使用的虚拟内存大小(单位为 KiB)。
-
RES:进程使用的物理内存大小(单位为 KiB)。
-
SHR:进程使用的共享内存大小(单位为 KiB)。
-
S:进程的状态。可能的状态包括:
R
:正在运行或就绪状态S
:睡眠状态D
:不可中断的睡眠状态Z
:僵尸状态T
:停止状态
-
%CPU:进程使用的 CPU 百分比,即 CPU 时间的百分比。
-
%MEM:进程使用的内存百分比,即占用物理内存的百分比。
-
TIME+:进程自启动以来的累计 CPU 时间。
-
COMMAND:进程的命令名或命令行。