top 命令详解

top - 17:09:16 up 16:57,  1 user,  load average: 0.00, 0.00, 0.00

Tasks: 193 total,   1 running, 192 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:  16330068k total,   541336k used, 15788732k free,   102260k buffers

Swap:  4194300k total,        0k used,  4194300k free,   184000k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                      

    1 root      20   0 19232 1504 1212 S  0.0  0.0   0:00.90 init                                                         

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                     

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

    

第一行 top - 17:09:16 up 16:57,  1 user,  load average: 0.00, 0.00, 0.00

17:09:16  当前时间

up 16:57  系统已运行的时间

1 user    当前登录用户的数量

load average: 0.00, 0.00, 0.00  相应最近1、5和15分钟内的平均负载


按 "字母l" 键,可以显示和隐藏 负载 第一行 


注意:load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。

如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

(逻辑CPU:物理CPU个数×每颗核数就应该等于逻辑CPU的个数; top查看的CPU也是逻辑CPU个数


第二行 Tasks: 193 total,   1 running, 192 sleeping,   0 stopped,   0 zombie

193 total  全部的进程数

1 running  运行、

192 sleeping  睡眠、

0 stopped  停止、

0 zombie   僵尸进程的数量(僵尸是一种进程的状态)


按 "字母t" 键,可以显示和隐藏  第二 三行 


第三行 Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

0.0%us 用户空间占用CPU的百分比

0.0%sy 内核空间占用CPU的百分比。

0.0%ni 改变过优先级的进程占用CPU的百分比

99.9%id 空闲CPU百分比

0.0%wa IO等待占用CPU的百分比

0.0%hi 硬中断(Hardware IRQ)占用CPU的百分比

0.0%si 软中断(Software Interrupts)占用CPU的百分比

0.0%st 虚拟机被hypervisor偷去的CPU时间

     (译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。


注意:何为内核空间,何为用户空间?

Linux 操作系统和驱动程序运行在内核空间应用程序运行在用户空间


第四行 Mem:  16330068k total,   541336k used, 15788732k free,   102260k buffers

物理内存显示如下:   全部可用内存、  已使用内存、   空闲内存、   缓冲内存


第五行 Swap:  4194300k total,        0k used,  4194300k free,   184000k cached

交换部分显示的是:      全部、       已使用、    空闲和      缓冲交换空间


按 "字母m" 键,可以显示和隐藏  第四 五行 


第六行   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND        

PID   进程ID,进程的唯一标识符

USER  进程所有者的实际用户名。

PR 进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态 

NI  进程的nice值(优先级)。越小的值意味着越高的优先级

VIRT  进程使用的虚拟内存 单位kb。VIRT=SWAP+RES 

RES  进程占用的物理内存 驻留内存大小。驻留内存是任务使用的非交换物理内存大小

SHR  进程使用的共享内存

S 进程的状态 D - 不可中断的睡眠态 R – 运行态  S – 睡眠态  T – 被跟踪或已停止 Z – 僵尸态

%CPU  自从上一次更新时到现在任务所使用的CPU时间百分比。

%MEM  进程使用的可用物理内存百分比  

TIME+ 任务启动后到现在所使用的全部CPU时间,精确到百分之一秒 

COMMAND 运行进程所使用的命令


PPID 父进程id 

RUSER Real user name 

UID   进程所有者的用户id


扩展

通过 f 键可以选择显示的内容。

按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

按 o 键可以改变列的显示顺序

按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

不理解做一下测试

序号 列名 含义 

a PID 进程id 

b PPID 父进程id 

c RUSER Real user name 

d UID 进程所有者的用户id 

e USER 进程所有者的用户名 

f GROUP 进程所有者的组名 

g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? 

h PR 优先级 

i NI nice值。负值表示高优先级,正值表示低优先级 

j P 最后使用的CPU,仅在多CPU环境下有意义 

k %CPU 上次更新到现在的CPU时间占用百分比 

l TIME 进程使用的CPU时间总计,单位秒 

m TIME+ 进程使用的CPU时间总计,单位1/100秒 

n %MEM 进程使用的物理内存百分比 

o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES 

p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 

q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA 

r CODE 可执行代码占用的物理内存大小,单位kb 

s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb 

t SHR 共享内存大小,单位kb 

u nFLT 页面错误次数 

v nDRT 最后一次写入到现在,被修改过的页面数。 

w S 进程状态。 

D=不可中断的睡眠状态 

R=运行 

S=睡眠 

T=跟踪/停止 

Z=僵尸进程 

x COMMAND 命令名/命令行 

y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 

z Flags 任务标志,参考 sched.h 


其它命令

h或者? 显示帮助画面

q 退出程序

l 切换显示平均负载和启动时间信息。 

m 切换显示内存信息。 

t 切换显示进程和CPU状态信息。 

c 切换显示命令名称和完整命令行。 

M 根据驻留内存大小进行排序。 

P 根据CPU使用百分比大小进行排序。 

T 根据时间/累计时间进行排序。


要手动刷新,用户可以输入回车或者空格

按下大写'Z' 向用户显示一个改变top命令的输出颜色的屏幕

小写 z’: 切换彩色显示


常用操作

top   //每隔5秒显式所有进程的资源占用情况

top -d 2  //每隔2秒显式所有进程的资源占用情况

top -c  //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)

top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况

top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数


参考链接:

http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316399.html

https://linux.cn/article-2352-1.html