top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

  • 用法:top option

option:

-a        按照进程占用内存大小进行排序

-b        后台模式运行,可以将结果输出到指定文件

-c        显示进程启动完整路径

-d        延迟刷新秒数

-m        使用used代替virt,即实际使用内存=res+swap,如果没有使用到swap,那么used=res

-M        将大于1024KB的内存项使用M来代替

-n        刷新几次

-p        指定进程号

-u        指定用户的进程

-U        指定用户的进程,个人未能区分开与-u的区别

-s        以安全模式运行top命令

示例1 将进程按照内存大小进行排序,显示具体命令行内容,使用used代替virt,大于1024KB的mem使用单位为M,采集5次记录,每次记录延迟5秒,将内容输出到out.log中

top -a -b -c -d 5 -m -M -n 5 >out.log

示例2 将指定用户的进程显示

top -umysql

示例3 将进程号26531和23744显示

top -p26531 -p23744

  • 字段说明

    • top - 16:39:31 up 1 day,  2:38,  2 users,  load average: 0.00, 0.02, 0.00

16:39:31 up 1 day                                      主机运行时间                                  

2 users                                                        当前登录用户数 

 load average: 0.00, 0.02, 0.00                   系统负载,1分钟,5分钟,15分钟的平均队列长度,大于3说明负载很高



    • Tasks:  98 total,   2 running,  96 sleeping,   0 stopped,   0 zombie

98 total                                                           进程总数

2 running                                                        正在运行的进程

96 sleeping                                                     睡眠进程

0 stopped                                                        停止的进程

0 zombie                                                         僵尸进程



    • Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 97.7%id,  2.0%wa,  0.0%hi,  0.0%si,  0.0%st

0.0% us 用户空间占用CPU百分比
0.3% sy 内核空间占用CPU百分比,大于3%需要关注
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
97.7% id 空闲CPU百分比
2.0% wa 等待io输入输出的CPU时间百分比
0.0% hi 硬件中断百分比
0.0% si 软件中断百分比



    • Mem:   1020288k total,   729784k used,   290504k free,    56960k buffers    

Mem: 1020288k total 物理内存总量
729784k used 使用的物理内存总量
290504k free 空闲内存总量
56960k buffers 用作内核缓存的内存量



    • Swap:  2064380k total,      120k used,  2064260k free,   544944k cached

Swap: 2064380k total 交换区总量
120k used 使用的交换区总量
2064260k free 空闲交换区总量
544944k cached 缓冲的交换区总量。


    • PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND     2401 postfix   20   0 81408 3816 2904 S  2.0  0.4   0:00.02 pickup        1 root      20   0 19232 1340 1128 S  0.0  0.1   0:00.57 init 

PID:进程号

USER:用户

PR:进程优先级

NI:负值表示高优先级,正值表示低优先级,一般NI=PR-20

VIRT:分配的内存

RES:实际占用的物理内存

SHR:共享内存

S:进程的状态,分别有D(不间断睡眠),R(正在运行),S(SLEEP),T(TRACE或者STOPED),Z(僵尸)

%CPU:CPU占用率

%M:物理内存占用率 

TIME+:进程启动时间

COMMAND:进程对应的命令,使用-c参数可看到完整命令