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