Top命令是最常用的查看Linux系统信息的命令之一,它可以实时显示系统中各个进程的资源占用情况。
Tasks: 219 total, 1 running, 144 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 4015636 total, 3179708 free, 184460 used, 651468 buff/cache
KiB Swap: 5998588 total, 5998588 free, 0 used. 3526760 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2262 book 20 0 43540 4092 3440 R 0.3 0.1 0:00.01 top
1 root 20 0 119720 5920 4056 S 0.0 0.1 0:03.11 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
7 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0
8 root 20 0 0 0 0 I 0.0 0.0 0:00.32 rcu_sched
9 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh
10 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
14 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
15 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
16 root 20 0 0 0 0 S 0.0 0.0 0:00.06 ksoftirqd/1
17 root 20 0 0 0 0 I 0.0 0.0 0:00.11 kworker/1:0
18 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H
第3行和第4行显示了主存(Mem)和交换分区(Swap)的总量、空闲量以及使用量。另外还显示了缓冲区以及页缓存大小(buffer/cache)。
第5行显示了进程信息区的统计数据,常用的如下所示。
- PID:进程的ID
- USER:进程所有者的用户
- PR:进程优先级
- NI:进程的nice值
- VIRT:进程使用的虚拟内存总量,单位为KB
- RES:进程使用的并且未被换出物理内存的大小,单位为KB
- SHR:共享内存的大小,单位为KB
- S:进程的状态。(D=Disk Sleep 的缩写,也就是不可中断状态睡眠(Uninterruptible Sleep),一般表示进程正在跟硬件交互,并且交互过程不允许被其他进程或中断打断;R=运行;S=睡眠;T=跟踪/停止;z=僵尸进程;I=Idle 的缩写,也就是空闲状态,用在不可中断睡眠的内核线程上。参考:top命令输出中状态含义)
- %CPU:上一次更新到现在的CPU时间占用百分比
- %MEM:进程使用物理内存的百分比
- TIME+:进程使用的CPU时间总计,单位是10ms
- COMMAND:命令名或命令行
上面列出了常用的统计信息,还有一些隐藏的统计信息,比如CODE(可执行代码大小)。SWAP(交换出去的内存大小)、nMai/nMin(产生缺页异常的次数)等,可以通过f键来选择要显示的内容。
除此之外,top命令还可以在执行过程中使用一些交互命令,比如“M”可以根据进程使用内存大小排序。
(以上内容,摘自《奔跑吧Linux内核 入门篇》)