top的功能是实时监控系统内进程活动信息,也包括CPU利用率、进程状态、内存利用率等信息,为系统管理员提供实时监控系统的工具。
top - 10:40:09 up 4 days, 11:45, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 65 total, 1 running, 64 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1883724 total, 71344 free, 846560 used, 965820 buff/cache KiB Swap: 0 total, 0 free, 0 used. 857524 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 19516 root 0 -20 126596 9188 6412 S 0.7 0.5 18:02.01 AliYunDun 1 root 20 0 125124 3344 2112 S 0.0 0.2 0:02.94 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.78 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 0:02.37 kworker/u2:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 1:03.46 rcu_sched 10 root rt 0 0 0 0 S 0.0 0.0 0:01.73 watchdog/0 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 14 root 20 0 0 0 0 S 0.0 0.0 0:00.07 khungtaskd 15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
...
第一行用于显示系统的活动信息
- 当前时间
- 系统启动后所经历的 时间
- 系统中的当前用户数
- 系统负载在最近1分钟、5分钟、15分钟内的负载平均值。
第二行为系统内进程信息
- 当前系统的进程总数
- 当前系统正在运行的进程数
- 当前系统休眠的进程数
- 当前系统进程停止状态的进程数
- 当前系统进程处于僵死状态的进程数
第三行为与CPU相关的信息
- us:进程在用户地址空间中消耗 CPU 时间的百分比。
- sy:进程在内核地址空间中消耗 CPU 时间的百分比。
- ni:可以通过 nice 值调整进程用户态的优先级。
- id:CPU 处于 idle 状态的百分比。一般情况下, us + ni + id 应该接近 100%。
- wa:CPU 等待磁盘 IO 操作的时间。
- hi & si:这两个值表示系统处理中断消耗的时间。中断分为硬中断和软中断,hi 表示处理硬中断消耗的时间,si 表示处理软中断消耗的时间。
- st:只有 Linux 在作为虚拟机运行时 st 才是有意义的。
第四行为内存情况
- total 列显示系统总的可用物理内存大小。
- free 列显示还有多少物理内存可用。
- used 列显示已经被使用的物理内存。
- buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
第五行为交换分区使用事情
- total 列显示系统总的可用交换空间大小。
- free 列显示还有多少交换空间可用。
- used 列显示已经被使用的交换空间。
- available 列显示还可以被应用程序使用的物理内存大小。
第六行为任务的具体分类
- PID:表示进程ID。
- USER:表示进程所有者的有效用户名称。
- PR:表示进程执行的优先级,PR 的值是以 Linux 内核的视角看到的进程执行的优先级。
- NI:从用户视角看到的进程执行优先级。注意上图中NI值为-20的两个进程,它们的PR值都是0。
- VIRT:表示进程使用的虚拟内存大小。
- RES:表示进程使用的物理内存大小。
- SHR:表示进程使用的共享内存的大小。
- S:表示进程当前的状态。S 值有下面几种:
- D:不可中断的睡眠状态(uninterruptible sleep)
I:idle 状态
R:进程在 running 队列中,正在运行或准备运行(running)
S:睡眠状态(sleeping)
T:停止状态(stopped by job control signal)
t:跟踪状态(stopped by debugger during trace)
Z:僵尸状态(zombie)
- D:不可中断的睡眠状态(uninterruptible sleep)
- %CPU:表示进程使用 CPU 的百分比。
- %MEM:表示进程使用内存的百分比。
- TIME+:表示进程累计使用的 CPU 时间。
- COMMAND:表示运行进程对应的程序。
常用快捷键:
f 可以进入任务信息的配置界面添加更多的信息
e 来进行切换,比如我可以把它切换为以 MB 为单位
1 可以查看各个 CPU 核心单独的数据
W 保存修改的配置
M 以 %MEM 列排序
N 以 PID 列排序
P 以 %CPU 列排序
T 以 TIME+ 列排序
R 可以将当期排序的结果反转。
c 来切换 COMMAND 列的显示模式
u 查看以某个用户权限启动的进程
h 或者是 ? 可以打开 top 命令的帮助文档