菜鸟科技网

top命令参数有哪些常用选项?

下面我将为你详细解析 top 命令的各种参数,分为两部分:

top命令参数有哪些常用选项?-图1
(图片来源网络,侵删)
  1. 启动参数:在命令行后直接跟的参数,用于控制 top 启动时的初始显示状态。
  2. 交互式命令:在 top 运行界面中,按下的按键,用于动态改变显示内容和行为。

启动参数

这些参数在 top 命令后面直接指定,top -p 1234 -b

参数 全称 描述 示例
-b batch 批处理模式,不使用交互式界面,将输出重定向到文件或管道中,非常适合用于脚本自动化。 top -b -n 1 > top.log (抓取一次快照并保存到文件)
-c command 显示完整的命令行,而不仅仅是进程名,这对于识别具体是哪个命令或脚本在消耗资源非常有用。 top -c
-d delay 设置刷新间隔,单位为秒,默认是 3 秒,可以使用小数,如 5 表示半秒刷新一次。 top -d 1 (每秒刷新一次)
-H threads 线程模式,将每个线程(轻量级进程 LWP)都作为一个独立的进程显示,而不是将它们汇总到父进程下,这对于排查多线程程序的瓶颈至关重要。 top -H
-i idle 忽略空闲进程,不显示处于空闲状态(D 状态,不可中断睡眠)或僵死状态(Z 状态)的进程,这样可以更专注于活跃的进程。 top -i
-n iterations 设置 top 刷新的次数,与 -b 参数配合使用,可以实现抓取指定次数的快照后自动退出。 top -b -n 5 (批处理模式,刷新5次后退出)
-p pids 监控指定进程,只监控指定的一个或多个 PID(进程 ID),多个 PID 用逗号隔开。 top -p 1234,5678 (只监控 PID 为 1234 和 5678 的进程)
-s sorting 指定排序的字段,默认是按 %CPU 降序排列,可以指定 或 来控制升序或降序。 top -s +MEM (按内存使用率升序排列)
-u user 监控指定用户,只显示属于特定用户的进程。 top -u nginx (只显示 nginx 用户的进程)
-U user 监控指定用户(按真实用户ID),与 -u 类似,但它匹配的是真实的用户 ID,而不是用户名。 top -U 0 (只显示 UID 为 0 的用户,即 root)

交互式命令

top 命令运行后,你可以在其界面中按下各种按键来实时改变显示,这些命令是大小写敏感的。

按键 功能描述
q 退出 top,这是最常用的退出命令。
h 显示帮助界面,列出所有可用的交互式命令。
c 切换命令行显示,在完整命令行和进程名之间切换。
m 切换内存显示,在内存占用(MEM%)和虚拟内存占用(VIRT, RES, SHR)的详细信息之间切换。
t 切换进程和线程显示,在进程视图和线程视图(类似 -H 参数)之间切换。
p 按 CPU 使用率排序,默认排序方式,降序排列。
M 按内存使用率排序,按 MEM% 字段降序排列。
T 按时间/累计 CPU 时间排序,按 TIME+ 字段降序排列。
A 按进程年龄排序,按进程启动时间排序。
P 按 CPU 使用率排序,与 p 键功能相同,确保按 CPU 降序排列。
N 按 PID 排序,按进程 ID 数字升序排列。
fF 添加/删除字段,进入字段编辑界面,你可以通过按 d 删除字段,按 s 添加字段,按 q 退出编辑。
S 累计模式开关,切换显示进程的 CPU 时间是瞬时值还是累计值。
i 忽略空闲/僵死进程,与启动参数 -i 功能相同,可以实时开关。
s 修改刷新间隔,会提示你输入新的刷新时间(秒)。
k 终止进程,提示你输入要终止的 PID 和信号(默认是 15,即 SIGTERM)。
r 重新设置进程优先级,提示你输入 PID 和新的 nice 值(范围 -20 到 19)。
l 切换负载平均信息显示,显示或不显示顶部的系统负载信息。
t 切换任务/CPU 信息显示,显示或不显示顶部的任务和 CPU 核心信息。
1 切换总 CPU 和各核心 CPU 显示,在显示所有核心的占用情况和只显示总 CPU 占用情况之间切换。

top 界面主要字段解释

理解这些字段是使用 top 的基础:

字段 含义
PID 进程 ID (Process ID)
USER 进程所有者
PR 优先级
NI nice 值,负值表示高优先级,正值表示低优先级。
VIRT 虚拟内存总量 (Virtual Memory Size),包括进程使用的所有内存,如代码、数据、共享库、被交换出的页面等。
RES 常驻内存大小 (Resident Memory Size),这是进程当前实际物理内存占用,不包括被交换到磁盘的部分。
SHR 共享内存大小 (Shared Memory Size),进程与其他进程共享的内存大小。
S 进程状态。R (运行), S (睡眠), D (不可中断睡眠), Z (僵尸), T (已停止)
%CPU CPU 使用率,进程当前占用的 CPU 百分比。
%MEM 内存使用率,进程当前占用的物理内存百分比。
TIME+ 进程自启动以来占用的总 CPU 时间。
COMMAND 启动进程的命令。

常用组合示例

  1. 查看指定用户的进程,并按内存排序

    top命令参数有哪些常用选项?-图2
    (图片来源网络,侵删)
    top -u nginx -s +MEM

    或者进入 top 后按 u 键输入 nginx,再按 M 键。

  2. 以批处理模式抓取一次系统快照并保存到文件

    top -b -n 1 > top_snapshot.txt
  3. 查看指定 PID 的线程详情

    # 先找到 PID
    ps aux | grep my_app
    # 假设 PID 是 1234
    top -H -p 1234
  4. 实时监控系统负载,并每秒刷新

    top命令参数有哪些常用选项?-图3
    (图片来源网络,侵删)
    top -d 1
  5. 查看系统中占用 CPU 最高的前10个进程

    # 启动后按大写 P 键排序,或者直接用管道
    top -b -n 1 | head -n 17  # 前17行是头部信息
    top -b -n 1 | grep '[0-9]' | sort -k %CPU -r | head -n 10

希望这份详细的参数和命令列表能帮助你更好地掌握 top 命令!

分享:
扫描分享到社交APP
上一篇
下一篇