# Linux 中 top 命令的使用

# 简介

top 命令是 Linux 中常用的性能分析工具,能够实时显示系统中各进程的资源占用状况,类似于 Windows 的任务管理器,显示系统当前的进程和其他状况

top 是一个动态显示过程,即可以通过用户案件来不断刷新当前状态,如果在前台执行该命令,它将一直占用前台,知道用户终结该程序为止

# 使用方法

# 使用格式

top [-] [选项 ]

# 参数说明

  • b:以批处理模式操作;
  • c:显示完整的治命令;
  • d:屏幕刷新间隔时间;
  • I:忽略失效过程;
  • s:保密模式;
  • S:累积模式;
  • i <时间>:设置间隔时间;
  • u <用户名>:指定用户名;
  • p <进程号>:指定进程;
  • n <次数>:循环显示的次数。

# 交互命令

  • h:显示帮助画面,给出一些简短的命令总结说明;
  • k:终止一个进程;
  • i:忽略闲置和僵死进程,这是一个开关式命令;
  • q:退出程序;
  • r:重新安排一个进程的优先级别;
  • S:切换到累计模式;
  • s:改变两次刷新之间的延迟时间(单位为 s),如果有小数,就换算成 ms。输入 0 值则系 - 统将不断刷新,默认值是 5s;
  • f 或者 F:从当前显示中添加或者删除项目;
  • o 或者 O:改变显示项目的顺序;
  • l:切换显示平均负载和启动时间信息;
  • m:切换显示内存信息;
  • t:切换显示进程和 CPU 状态信息;
  • c:切换显示命令名称和完整命令行;
  • M:根据驻留内存大小进行排序;
  • P:根据 CPU 使用百分比大小进行排序;
  • T:根据时间 / 累计时间进行排序;
  • w:将当前设置写入~/.toprc 文件中。

# 进程区信息

序号 列名 含义
a PID 进程 id
b PPID 父进程 id
c RUSER Real user name
d UID 进程所有者的用户 id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为?
h PR 优先级
i NI nice 值。负值表示高优先级,正值表示低优先级
j P 最后使用的 CPU,仅在多 CPU 环境下有意义
k % CPU 上次更新到现在的 CPU 时间占用百分比
l TIME 进程使用的 CPU 时间总计,单位秒
m TIME+ 进程使用的 CPU 时间总计,单位 1/100 秒
n % MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位 kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位 kb。
q RES 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位 kb
s DATA 可执行代码以外的部分 (数据段 + 栈) 占用的物理内存大小,单位 kb
t SHR 共享内存大小,单位 kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
D = 不可中断的睡眠状态
R = 运行
S = 睡眠
T = 跟踪 / 停止
Z = 僵尸进程
x COMMAND 命令名 / 命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、% CPU、% MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

更改显示内容

通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。