
0 前言
top命令是Unix 和 Linux下常用的性能分析工具,提供了一个动态的、交互式的实时视图,显示系统的整体性能信息,以及正在运行的进程的相关信息,包括各个进程的资源占用状况,类似于Windows的任务管理器。
1 top命令 格式、选项和操作
1.1 top命令 格式
[purpleendurer @ bash ~] top --help
top: inappropriate '-help'
Usage:
  top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
[purpleendurer @ bash ~] 
1.2 top命令选项
| 选项 | 功能 | 
|---|---|
| -b | 以批处理(batch)模式运行,直接将结果输出到文件。 | 
| -c | 显示完整的命令行而不截断。 | 
| -d <秒数> | 指定 top 命令的刷新时间间隔,单位为秒。 | 
| -H | 在进程信息中显示线程详细信息。 | 
| -i | 不显示闲置(idle)或无用的进程。 | 
| -n <次数> | 指定 top 命令运行的次数后自动退出。 | 
| -p <进程ID> | 仅显示指定进程ID的信息。 | 
| -S | 累计显示进程的 CPU 使用时间。 | 
| -u <用户名> -U <用户名> | 仅显示指定用户名的进程信息。 | 
1.3 top命令操作说明
top命令提供了动态的、交互式的实时视图,可以进行以下操作:
| 操作 | 说明 | 
|---|---|
| Ctrl+L | 擦除并且重写屏幕 | 
| K | 终止一个进程。 系统将提示用户输入需要终止的进程PID,以及需要给该进程发送什么样的信号。 默认值是信号15。一般的终止进程可以使用15信号。如果不能正常结束那就使用信号9强制结束该进程。 在安全模式中此命令被屏蔽。 | 
| i | 忽略闲置和僵死进程。这是一个开关式命令。 | 
| q | 退出程序 | 
| r | 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。 输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 | 
| S | 切换到累计模式。 | 
| s | 改变两次刷新之间的延迟时间。 系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。 输入0值则系统将不断刷新,默认值是5 s。 需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。 | 
| f或者F | 从当前显示中添加或者删除项目。 | 
| o或者O | 改变显示项目的顺序 | 
| l | 切换显示平均负载和启动时间信息。 | 
| m | 切换显示内存信息。 | 
| t | 切换显示进程和CPU状态信息。 | 
| c | 切换显示命令名称和完整命令行。 | 
| M | 根据驻留内存大小进行排序。 | 
| P | 根据CPU使用百分比大小进行排序。 | 
| T | 根据时间/累计时间进行排序。 | 
| W | 将当前设置写入~/.toprc文件中。 | 
2 top命令实例
top - 23:49:06 up 3 min,  0 users,  load average: 0.01, 0.03, 0.00
Tasks:   5 total,   1 running,   4 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.2 hi,  0.0 si,  0.0 st
KiB Mem :  3855948 total,  2028368 free,   257300 used,  1570280 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  3350552 avail Mem 
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                        
      1 csdn      20   0   40356   5120   3748 S   0.0  0.1   0:00.19 zsh                                                                                            
     46 csdn      20   0   40156   5112   3844 S   0.0  0.1   0:00.03 zsh                                                                                            
     72 csdn      20   0   40156   5024   3780 S   0.0  0.1   0:00.03 zsh                                                                                            
    100 csdn      20   0   15124   3540   3124 S   0.0  0.1   0:00.00 bash                                                                                           
    114 csdn      20   0   59472   4176   3640 R   0.0  0.1   0:00.00 top                          
显示的信息比较丰富,我们逐行分析说明。
第一行:系统当前状态
备注:第一行信息内容 同 uptime 命令的执行结果相同
第二行:任务(进程)队列信息 Tasks
第三行:cpu状态信息 %Cpu(s)
第四行:内存状态 KiB Mem
第五行:交换分区信息 swap
第六行:空行
第七行以下:各进程(任务)的状态监控
注:计算某个进程所占的物理内存大小公式:RES – SHR









