目录
一、top 命令基本用法
二、top 的输出解读
解释各部分信息
三、交互命令
四、实用示例
1、基本使用
2、按 CPU 使用率排序
3、 按内存使用率排序
4、监控特定用户的进程
5、实时查看特定 PID 的进程
6、调整屏幕刷新间隔
7、显示批处理模式
8、使用配置文件
9、过滤显示特定进程
10、查看和管理多个窗口
Linux 命令 top
是一个非常实用的动态监控系统性能和运行中的进程的工具。它提供了一个实时的视图,显示了系统的关键统计信息,包括 CPU 使用率、内存使用、进程信息等。这个命令对于系统管理员和性能分析非常有帮助。
一、top 命令基本用法
基本的 top
命令会启动一个交互式的界面,该界面默认每 3 秒更新一次(这个时间间隔可以调整)。要启动 top
,只需在命令行中输入:
top
二、top 的输出解读
启动 top
命令后,你会看到类似于以下的输出:
top - 15:20:18 up 10 days, 3:42, 5 users, load average: 0.00, 0.01, 0.05
Tasks: 193 total, 1 running, 192 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.8 us, 0.7 sy, 0.0 ni, 96.3 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st
MiB Mem : 7976 total, 4671 free, 1603 used, 1702 buff/cache
MiB Swap: 4096 total, 4096 free, 0 used. 5967 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND1087 root 20 0 457392 66420 50876 S 0.0 0.8 0:01.97 Xorg1350 user1 20 0 1632232 229228 157024 S 0.0 2.8 0:13.45 gnome-shell1455 user1 20 0 6491084 526420 176944 S 0.0 6.4 5:18.37 chrome
解释各部分信息
-
第一行:系统概览
- 15:20:18 - 当前时间
- up 10 days, 3:42 - 系统运行时间,这里是 10 天 3 小时 42 分钟
- 5 users - 当前登录用户数
- load average: 0.00, 0.01, 0.05 - 系统平均负载,分别是过去 1 分钟、5 分钟和 15 分钟的平均负载
-
第二行:任务(进程)信息
- 193 total - 总进程数
- 1 running - 正在运行的进程数
- 192 sleeping - 休眠的进程数
- 0 stopped - 停止的进程数
- 0 zombie - 僵尸进程数
-
第三行:CPU 使用情况
- 2.8 us - 用户空间占用 CPU 的百分比
- 0.7 sy - 内核空间占用 CPU 的百分比
- 0.0 ni - 改变过优先级的进程占用 CPU 的百分比
- 96.3 id - 空闲 CPU 百分比
- 0.1 wa - 等待输入/输出的 CPU 时间百分比
- 0.0 hi - 处理硬件中断的 CPU 时间百分比
- 0.1 si - 处理软件中断的 CPU 时间百分比
- 0.0 st - 被虚拟机偷去的 CPU 时间百分比
-
第四行和第五行:内存和交换空间使用情况
- MiB Mem : 7976 total - 总内存
- 4671 free - 空闲内存
- 1603 used - 使用中的内存
- 1702 buff/cache - 缓冲/缓存使用的内存
- MiB Swap: 4096 total - 总交换空间
- 4096 free - 空闲交换空间
- 0 used - 使用中的交换空间
- 5967 avail Mem - 可用内存
-
后续行:各个进程的详细信息
- PID - 进程 ID
- USER - 运行此进程的用户
- PR - 进程优先级
- NI - nice 值,负值表示高优先级,正值表示低优先级
- VIRT - 虚拟内存使用量(KB)
- RES - 物理内存使用量(KB)
- SHR - 共享内存大小(KB)
- S - 进程状态(S=睡眠,R=运行,Z=僵尸)
- %CPU - 进程使用的 CPU 百分比
- %MEM - 进程使用的物理内存百分比
- TIME+ - 进程使用的 CPU 时间总计
- COMMAND - 进程名称/命令
三、交互命令
top
命令提供了一系列的交互命令,用户可以在 top
运行时输入这些命令来改变显示的内容或行为:
h
or?
- 显示帮助信息P
- 根据 CPU 使用率排序(默认)M
- 根据内存使用率排序T
- 根据时间/累计时间排序k
- 杀死一个进程,需要后续输入 PID 和 信号f
- 进入字段选择模式,选择要显示的列u
- 按用户名或 UID 显示进程r
- 改变一个进程的 nice 值z
- 切换彩色显示c
- 切换显示命令完整路径或仅显示命令名d
- 改变屏幕刷新间隔q
- 退出top
四、实用示例
以下是一些实用的 top
使用示例,每个示例都详细解释了它的用途和具体的操作方法。
1、基本使用
启动 top
,显示当前系统的实时信息,包括进程信息、CPU、内存等:
top
这个命令会进入一个交互式界面,显示系统的概览和各个进程的详细信息。使用这个基本命令时,你可以看到:
- CPU 的各种时间占比。
- 内存和交换区的使用情况。
- 每个进程的 CPU 和内存使用情况。
2、按 CPU 使用率排序
默认情况下,top
命令已经按 CPU 使用率排序。如果你从其他排序方式中切换回来,可以在 top
运行时按 P
键:
top
然后按 P
,这将按 %CPU
列的值降序排列所有进程。
3、 按内存使用率排序
在 top
的交互式界面中,按 M
键可以按内存使用率排序。这是监控哪些进程使用了最多内存的快速方法。
操作步骤如下:
-
打开
top
:top
-
按
M
键,界面会根据%MEM
列(内存使用百分比)重新排序。
或者,直接通过命令行选项启动:
top -o %MEM
这条命令直接按内存使用率排序启动 top
。
4、监控特定用户的进程
如果你只对特定用户的进程感兴趣,可以使用 -u
选项后跟用户名。例如,监控用户 username
的进程:
top -u username
这会过滤显示,只列出由 username
用户启动的进程。
5、实时查看特定 PID 的进程
如果你只关心某个特定的进程(通过 PID 指定),可以使用 -p
选项。例如,要监控 PID 为 1234 的进程:
top -p 1234
这种用法适合追踪某个特定服务或应用程序的性能问题。
6、调整屏幕刷新间隔
top
默认每 3 秒更新一次数据,但你可以通过 -d
选项设置不同的刷新间隔。例如,设置为每秒刷新一次:
top -d 1
这对于更密集的监控需求非常有用,可以让你更灵敏地观察系统性能变化。
7、显示批处理模式
批处理模式 (-b
) 用于将 top
的输出用于记录或其他非交互式用途(如脚本处理)。你可以结合 -n
选项来指定更新的次数。例如,获取当前的一次性快照:
top -b -n 1
这条命令让 top
在批处理模式下运行,输出一次当前的全部信息然后退出,非常适合定时任务或一次性性能记录。
8、使用配置文件
如果你经常需要用到特定的 top
设置,可以将这些设置保存在 top
的配置文件中。top
配置文件通常位于 ~/.toprc
。运行 top
并进行一些设置(如排序方式、显示字段等),然后在 top
运行时按 W
,这会将当前设置保存到配置文件中,以便下次直接使用。
9、过滤显示特定进程
在 top
运行的交互式界面中,你可以按 o
或 O
来添加自定义过滤。例如,要显示所有命令名包含 httpd
的进程:
-
运行
top
:top
-
按
o
键,然后输入COMMAND=httpd
。
这样会动态过滤并只显示命令名中包含 httpd
的进程。
10、查看和管理多个窗口
top
支持多窗口管理。可以在 top
交互模式下按 A
切换到多窗口显示模式。在这种模式下,你可以使用不同的窗口来监控不同的资源或进程列表。每个窗口都可以有独立的排序和显示设置。
这些示例展示了 top
命令的多面性和强大功能。通过这些示例,你可以更有效地监控和分析系统和进程的性能问题