top—展示Linux进程信息
概要
top -hv|-bcHIOSs -d secs -n max -u|U user -p pid -o fld -w [cols]
‘-’符号以及空格是可选的。
描述
Top程序提供了运行系统的实时动态视图,它可以显示系统摘要信息以及当前由Linux内核管理的进程和线程列表,所显示的摘要信息的类型、顺序和大小都是可配置的,并且可以设置为持久化,在系统重启后仍然有效。
这提供了一种有限的交互界面方便对于进程进行监控。
目录
文档
- 命令行选项
- 概要展示
- 运行时间和负载平均值
- 任务和CPU状态
- 内存使用情况
- 字段展示
- 字段描述
- 字段管理
- 交互式命令
- 全局命令
- 摘要区域命令
- 任务区域命令
- 外观
- 内容
- 大小
- 排序
- 颜色映射
- 轮流展示
- 窗口概要
- 命令窗口
- 滚动窗口
- 在窗口中查询
- 在窗口中过滤
- 文件
- 系统配置文件
- 个人配置文件
- 添加检查条目
- 诀窍
- 内核魔法
- 弹窗
- 大鸟窗口
- BUGS
- 历史Top
- 参考
操作
top命令结果分为三部分的内容,统计摘要部分,展示的字段区域,任务区域。
- 查看用法
$ top [-]h
$ top [-]v
$ top [-]?
- 退出
$ q
$ ^C
- 暂停
$ ^Z
- 恢复
$ fg
- 窗口操作
Key key-combinations
Up alt + \ | alt + k
Down alt + / | alt + j
Left alt + < | alt + h
Right alt + > | alt + l
PgUp alt + Up | ctrl + alt + k
PgDn alt + Down | ctrl + alt + j
Home alt + Left | ctrl + alt + h
End alt + Right | ctrl + alt + l
- 可选项
- -h|-v查看版本以及用法
- -b以批处理模式运行,这有助于将top的结果发送到其他程序或者文件,在此模式下运行,top程序将不会停止,除非使用-n限定了运行次数。
- -c
展示程序名和命令全路径。 - -H指示top展示单个线程,若无此可选项,则默认只是显示进程(多个线程的总和)
- -i不展示占用CPU 0%的进程
- -O打印所有可用于排序的字段名,主要用于-o选项
- -S列出每个进程使用的CPU时间。
- -s启动安全模式
- -d ss.t每隔多长时间更新一次数据,ss为秒,t为十分位。
- -ntop展示的更新次数。
- -u|U number or name
只展示特定的用户id和用户名的进程信息,-u用于指定的有效的用户名,-U则用于指定任意的用户名。在用户名或者用户id前加上!号,则表示只展示除指定用户名之外的进程信息。 - -pN1 -pN2指定只显示指定的进程ID的信息,最多可以使用-p20次,或者使用-p加上进程id列表,使用逗号进行分割,最多也只允许20个进程ID
- -o +|- filedName指定filedName进行排序,+代表从高到低,-代表从低到高,使用-O可以查看哪些字段可以用于排序。
- -w [cols]指定展示列数
- 摘要展示
- 进程启动时间和负载
top-13:51:50 up 2 days, 3:54 ,7 users ,load average:2.47,1.41,0.90
字段 | 描述 |
top | 程序名 |
13:51:50 up 2 days | 当前时间以及自从上次启动到现在的时间长度 |
7 users | 用户数量 |
load average | 最近1分钟,5分钟,15分钟的系统负载 |
- 任务和CPU状态
Tasks:248 total,3 running,246 sleeping,0 stopped,1 zombie
%Cpu(s): 9.8 us, 8.6 sy, 0.0 ni, 81.9 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
字段 | 描述 |
Tasks | Tasks区域 |
248 total | 248个任务或者线程,使用-H则代表的是线程 |
3 running | 3个运行中 |
246 sleeping | 246个休眠中 |
0 stopped | 0个停止状态 |
1 zombie | 1个僵尸进程 |
%Cpu(s) | CPU区域 |
9.8 us | 用户空间占用CPU百分比 |
8.6 sy | 系统空间占用CPU百分比 |
0.0 ni | 用户进程空间内改变过优先级的进程占用的CPU百分比 |
81.9 id | 空闲的CPU百分比 |
0.0 wa | 等待输入输出的CPU百分比 |
0.0 hi | 硬件中断 |
0.2 si | 软件中断 |
0.0 st | 实时 |
- 以上CPU使用率加起来为100%,实际上是占用整个CPU的平均值,使用top命令以后按1可以看到不同的CPU核的占用情况。
- 内存使用情况
KiB Mem:2914888 total,76692 free,2560520 used,277676 buff/cache
KiB Swap: 4194300 total,3216648 free,977652 used,98468 avail Mem
字段 | 描述 |
KiB Mem | 物理内存 |
2914888 total | 物理内存总量 |
76692 free | 空闲的物理内存总量 |
2560520 used | 已使用物理内存总量 |
277676 buff/cache | 用作内核缓存的内存总量 |
KiB Swap | 虚拟内存 |
4194300 total | 虚拟内存总量 |
3216648 free | 空闲的虚拟内存 |
977652 used | 已使用的虚拟内存 |
98468 avail Mem | 缓冲的交换区总量 |
- 字段和列
- 字段描述
- %CPU 上次更新到现在的CPU时间占用百分比
- %MEM 进程使用的物理内存百分比
- CGROUPS
- CODE 可执行代码占用的物理内存大小,单位KB
- COMMAND 命令名
- DATA 可执行代码意外的部分(数据段+栈)占用的物理内存大小,单位KB
- ENVIRON
- Flags 任务标志
- GID
- GROUP 进程所有者的组名
- NI nice值,负值表示高优先级,正值表示低优先级
- P 最后使用的CPU,仅在多CPU环境下有意义
- PGRP
- PID 进程ID
- PPID 父进程ID
- PR 优先级
- RES 进程使用的,未被换出的物理内存的大小,单位KB
- RUID
- RUSER Real User Name
- S 进程状态
- D 不可中断的睡眠状态
- R 运行
- S 睡眠
- T 跟踪/停止
- Z 僵尸进程
- SHR 共享内存大小,单位KB
- SID
- SUID
- SUPGIDS
- SUPGRPS
- SUSER
- SWAP 进程使用的虚拟内存中,被换出的大小,单位KB
- TGID
- TIME 进程使用的CPU时间总计,单位为秒
- TIME+ 进程使用的CPU时间总计,单位为1/100秒
- TPGID
- TTY 启动进程的终端名,不是从终端启动的进程则显示为?
- UID 进程所有这的用户ID
- USED
- USER
- VIRT 进程使用的虚拟内存总量,单位KB,VIRT=SWAP+RES
- WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
- nDRT 最后一次写入到现在,被修改过的页面数
- nMaj
- nMin
- nTH 跟某个进程关联的所有线程,配合-p选项可以知道一个进程下有多少个线程。
- nsIPC
- nsMNT
- nsNET
- nsPID
- nsUSER
- nsUTS
- vMj
- vMn
- 管理字段执行top命令之后按f按键可以进入字段配置,选中某个字段按‘d’按键即可选中,按q退出可以发现展示页面多出了所选择的字段。