top命令作用,各列的意义
前五行是系统整体的统计信息,称为汇总区(Summary Area)。
第一行是时间相关和任务队列信息,同 uptime 命令的执行结果。
16:07:48 当前时间 up 442 days, 2:51 系统运行的总时长,单位分 3 users 当前登录用户数 load average: 0.00, 0.01, 0.05 系统负载,即任务队列的平均长度。三个数值分别为最近 1 分钟、5 分钟、15 分钟的平均值。
第二行是进程信息统计数据。
217 total 总的进程数 1 running 正在运行的进程数 216 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程数
第三行是 CPU 统计数据。
0.6 us 用户空间占用CPU百分比 0.3 sy 内核空间占用CPU百分比 0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比 99.1 id 空闲CPU百分比 0.0 wa 等待输入输出的CPU时间百分比 0.0 hi 硬中断(Hardware IRQ)占用CPU百分比 0.0 si 软中断(Software IRQ)占用CPU百分比 0.0 st 虚拟机(虚拟化技术)占用百分比
第四行为物理内存的统计数据。
15140452 total 物理内存总量 598296 free 空闲内存总量 383764 used 已使用的物理内存总量 14158392 buff/cache 用作内核缓存的内存量
第五行为交换分区(即虚拟内存)的统计数据。
2104508 total 交换区总量 1550372 free 空闲交换区总量 554136 used 已使用的交换区总量 12974597 avail Mem 实际可用物理内存总量
这里要说明的是不能用 Windows 的内存概念来理解这些数据,如果按 Windows 的方式来理解,此服务器共只剩下 598MB 的内存,实际上系统可用的物理内存远不止这些。free 内存表示尚未被内核占用的空闲内存,但是被内核占用用于 buffer 和 cache 的内存,实际上是可以被进程使用的,内核并不把这些可被重新使用的内存算到 free 中,因此在 Linux 上 free 内存会越来越少,但不用为此担心。
第六行是空行。从第七行开始,显示了各个进程的状态信息,称为任务区(Task Area)。各列含义如下:
PID 进程id USER 进程所有者 PR 进程优先级,范围为0-31,数值越低,优先级越高 NI nice值。范围-20到+19,用于调整进程优先级,新的进程优先级 PR(new)=PR(old)+nice,所以nice负值表示高优先级,正值表示低优先级 VIRT 进程使用的虚拟内存总量,单位 KB RES Resident Memory Size,进程使用的、未被换出的物理内存大小,单位 KB SHR 共享内存大小,单位 KB S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=停止 t=跟踪 Z=僵尸进程 %CPU 上次更新到现在的 CPU 时间占用百分比。注意,在多核或多 CPU 环境中,如果进程是多线程的,而 top 不是在线程模式下运行的,该值由多个核的值累加,可能会大于 100% %MEM 进程使用的物理内存百分比 TIME+ 进程使用的 CPU 时间总计,单位 1/100 秒 COMMAND 进程名称(命令名/命令行)
top 可输出的全部进程指标可以使用命令top -O
查看,其它指标的介绍这里不再赘述,具体可参见 top manual。top -O
输出结果如下:
PID PPID UID USER RUID RUSER SUID SUSER GID GROUP PGRP TTY TPGID SID PR NI nTH P %CPU TIME TIME+ %MEM VIRT SWAP RES CODE DATA SHR nMaj nMin nDRT S COMMAND WCHAN Flags CGROUPS SUPGIDS SUPGRPS TGID ENVIRON vMj vMn USED nsIPC nsMNT nsNET nsPID nsUSER nsUTS