Top 命令输出
top 命令是 Linux 中一个很常用的命令,其作用是将系统的性能统计和进程运行情况输出到控制台中,本文带着大家解析 top 命令输出的内容具体作用。
命令用法
基础用法
最简单的用法就是不加任何参数,直接输入 top 即可。立即清空当前控制台,并且使用全部空间持续不间断地打印信息,刷新时间为 3 秒,效果类似于 Windows 系统中的任务管理器。
$ top
top - 14:53:52 up 32 days, 31 min, 1 user, load average: 1.13, 1.87, 2.12
Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.4 us, 6.8 sy, 0.0 ni, 80.0 id, 0.8 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8008892 total, 1040724 free, 6073848 used, 894320 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1189592 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback
1818 root 20 0 78684 784 0 S 0.0 0.0 0:29.32 wpa_supplicant
29 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 watchdogd
1650 root 20 0 432588 1624 352 S 0.0 0.0 0:27.61 upowerd
520 root 20 0 451192 2392 828 S 0.0 0.0 1:05.28 udisksd
918 root 20 0 578588 13624 220 S 0.0 0.2 5:14.72 tuned
252 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ttm_swap
9618 root 20 0 162152 2384 1600 R 0.3 0.0 0:00.03 top
390 root 20 0 45096 684 4 S 0.0 0.0 0:00.99 systemd-udevd
525 root 20 0 26488 1200 840 S 0.0 0.0 2:06.54 systemd-logind
23505 root 20 0 48428 10984 10464 S 12.0 0.1 633:05.99 systemd-journal
1 root 20 0 125592 2784 1232 S 0.0 0.0 4:46.29 systemd
1170 root 20 0 112924 1264 236 S 0.0 0.0 0:01.85 sshd
9589 root 20 0 157324 6032 4680 S 0.0 0.1 0:00.04 sshd
29488 root 20 0 157444 2376 904 S 0.0 0.0 0:00.13 sshd
3042 polkitd 20 0 2872 168 60 S 0.0 0.0 0:52.56 sh
26316 root 20 0 11688 196 0 S 0.0 0.0 0:00.05 sh
29491 root 20 0 72252 1284 496 S 0.0 0.0 0:00.18 sftp-server
249 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_1
247 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0
top 还提供了多个参数,可以更方便的进行性能分析。
显示具体的进程信息
$ top -c
默认情况下,top 的输出中只能显示进程的具体文件名,使用 -c 参数可以输出完整的进程启动命令,包含了文件路径和启动参数等。
调整刷新时间
$ top -d 1
top 的默认刷新时间是 3秒钟,使用 -d 参数后面再加上具体的数据就可以调整 top 的刷新时间。
分析信息
下面我们来分析 top 输出的信息都有哪些具体的含义。
top 的输出主要分为了两部分,上半部分是系统性能统计的分析,下半部分则是具体进程的统计显示。
top - 14:53:52 up 32 days, 31 min, 1 user, load average: 1.13, 1.87, 2.12
Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.4 us, 6.8 sy, 0.0 ni, 80.0 id, 0.8 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8008892 total, 1040724 free, 6073848 used, 894320 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1189592 avail
第一行输出的系统统计信息。
top
表示信息是运行 top 命令得到的。
14:53:52
则是当前系统时间。
up 32 days, 31 min
则是表示系统启动后已经运行的时长。
1 user
表示当前只有一个用户再登录。
load average: 1.13, 1.87, 2.12
表示系统当前的性能消耗情况,3 个数字分别表示了 1 分钟、5 分钟和 15 分钟的平均性能消耗统计。
第二行输出的是系统运行的进程任务统计,进程有 4 个状态,分别是 running
、sleeping
、 stopped
和 zombie
,分别对 4 个状态的进程进行和统计,还有所有进程数量统计。对当前系统进行分析时需要重点关注状态为 zombie
的进程,也就是我们经常说到的僵尸进程。僵尸进程会对系统造成非常的性能浪费,极大地拖慢系统运行速度。
第三行输出的是系统的 CPU 性能分析,后面的 8 个都属于 CPU 性能分布,消耗分布以百分比展示,总和为 100。
us
表示用户态的 CPU 比例。
sy
表示内核态的 CPU 比例。
ni
表示运行低优先级进程的 CPU 比例。
id
表示空闲的 CPU 时间比例。
wa
表示等待 IO 的 CPU 比例。
hi
表示硬中断的 CPU 比例。
si
表示软中断的 CPU 比例。
st
表示虚拟机的 CPU 比例。
第四行和第五行输出的都是系统的内存统计信息,第四行是系统实际内存统计分析,第五行是交换内存统计分析。都分为了总内存,空闲内存,已使用内存,缓存和可用内存。