top 命令详解
top 是 Linux 系统中用于实时监视系统状态的工具。它可以显示系统中的 CPU 使用率、内存使用情况、运行中的进程等信息,并且还可以实时更新这些信息。
root@local:~# top
top - 07:47:15 up 18:17, 3 users, load average: 0.17, 0.24, 0.26
Tasks: 260 total, 1 running, 259 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 64308.4 total, 396.3 free, 48245.6 used, 15666.5 buff/cache
MiB Swap: 73728.0 total, 73727.5 free, 0.5 used. 15348.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10 root 20 0 0 0 0 I 0.3 0.0 0:12.14 rcu_sched
1017 redis 20 0 65548 10692 3472 S 0.3 0.0 0:43.57 redis-server
1166 mysql 20 0 55.1g 46.7g 38116 S 0.3 74.4 111:29.71 mysqld
1 root 20 0 167620 11252 8120 S 0.0 0.0 0:02.82 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kblockd
8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
9 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.13 migration/0
1.详情面板解释
top - 07:47:15 up 18:17, 3 users, load average: 0.17, 0.24, 0.26
Tasks: 260 total, 1 running, 259 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 64308.4 total, 396.3 free, 48245.6 used, 15666.5 buff/cache
MiB Swap: 73728.0 total, 73727.5 free, 0.5 used. 15348.0 avail Mem
1) top - 07:47:15 up 18:17, 3 users, load average: 0.17, 0.24, 0.26
- top 这是命令本身,表示正在查看系统的实时状态。
- 07:47:15 当前系统时间是 10 点 32 分 52 秒。
- up 18:17: 系统已经运行了 18 小时 17 分钟。
- 3 user: 有 3 个用户当前登录系统。
- load average: 0.17, 0.24, 0.26: 这表示系统的平均负载。三个数字分别代表过去 1 分钟、5 分钟和 15 分钟的平均负载。负载是系统中等待运行的任务数量
2) Tasks: 260 total, 1 running, 259 sleeping, 0 stopped, 0 zombie
- 260 total: 系统总共有 260 个进程。
- 1 running: 有1个进程正在运行。
- 259 sleeping: 有 259 个进程在休眠状态。
- 0 stopped: 没有进程被停止。
- 0 zombie: 没有僵尸进程。僵尸进程是已完成但其父进程还未收回其资源的进程。
3) %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- 这部分描述了 CPU 的使用情况
- us: user space,用户空间占用的 CPU 时间百分比。
- sy: system space,内核空间占用的 CPU 时间百分比。
- ni: nice value,改变过优先级的进程占用的 CPU 时间百分比。
- id: idle,空闲的 CPU 时间百分比。
- wa: wait,等待 I/O 的 CPU 时间百分比。
- hi: hardware interrupt,硬件中断占用的 CPU 时间百分比。
- si: software interrupt,软件中断占用的 CPU 时间百分比。
- st: steal time,虚拟环境中被其他虚拟机占用的 CPU 时间百分比。
4) MiB Mem : 64308.4 total, 396.3 free, 48245.6 used, 15666.5 buff/cache
- 这描述了系统的内存使用情况。
- 64308.0 total: 总内存为 64308 MiB。
- 396.3 free: 空闲的内存为 396.3 MiB。
- 48245.6 used: 被使用的内存为 48245.6 MiB。
- 15666.5 buff/cache: 被缓冲和缓存的内存为 15666.5 MiB。这部分内存是为了提高文件访问速度而被系统用作缓存的内存。
5) MiB Swap: 73728.0 total, 73727.5 free, 0.5 used. 15348.0 avail Mem
- 这描述了交换空间的使用情况(在物理内存不足时,系统会使用硬盘作为额外的内存,称为交换空间)。
- 73728.0 total: 总交换空间为 73728.0 MiB。
- 73727.5 avail Mem: 可用的物理内存是 600.6 MiB(包括缓冲和缓存)。这部分内存可用于满足新的内存需求,而不必使用交换空间。
2.top数据列解释
- PID:进程ID,唯一标识一个进程的编号。
- USER:进程所有者的用户名。
- PR:进程的优先级。
- NI:nice值,用于调整进程的优先级。默认值是0,范围是-20到19。
- VIRT:进程使用的虚拟内存总量,单位是KB。
- RES:进程当前使用的、驻留在物理内存中的大小,单位是KB。
- SHR:共享内存大小,单位是KB。
- S:进程的状态。常见的状态有R(运行中)、S(休眠)、Z(僵尸进程)等。
- %CPU:该进程占用的CPU使用率。
- %MEM:该进程占用的物理内存使用率。
- TIME+:该进程启动后总共运行的时间,单位是分钟:秒。
- COMMAND:启动进程的命令名称或命令行。
3.常见指令
- (1) 启动top命令:
top:直接输入top,回车后即可启动。
- (2) 设置刷新时间:
top -d 3:设置信息更新周期为3秒。
- (3) 指定刷新次数:
top -n 2:表示更新两次后终止更新显示。
- (4) 显示指定进程:
top -p 139:显示进程号为139的进程信息,包括CPU、内存占用率等。
- (5) 批处理模式:
top -b:以批处理模式显示程序信息。
- (6) 累积模式:
top -S:以累积模式显示程序信息。
- (7) 显示完整命令行:
top -c:此参数可以显示完整的命令行而不仅仅是命令名。
- (8) 高亮显示排序列:
在top运行界面内,可以按z键进行高亮显示的切换。
- (9) 按CPU或内存排序:
在top运行界面内,按M键可以按内存使用排序,按T键可以按CPU使用排序。
- (10) 显示线程信息:
top -H -p 35648:显示进程ID为35648的进程下的所有线程信息。这个命令特别在定位多线程程序问题时非常有用。
- (11) 过滤用户:
top -u username:只显示指定用户的进程。
- (12) 帮助和退出:
在top运行界面内,按h或?键可以查看帮助文档,按q键或Ctrl+C可以退出top命令或帮助文档
