Linux 命令 —— top
相对于 ps 是选取一个时间点的进程状态,top 则可以持续检测进程运行的状态。使用方式如下:
用法:
top [-d secs] | [-p pid]
选项与参数:
-d secs
:整个进程界面更新 secs 秒。默认是 5 5 5 秒。比如top -d 2
表示每两秒更新一次 top。-p pid
:指定某些个 PID 来执行查看检测。
在top
执行过程中可以使用的按键命令(注意大小写):?
或h
:显示在 top 中可以输入的按键命令。P
:以 CPU 的使用排序显示。M
:以 Memory 的使用排序显示。N
:以 PID 排序显示。T
:以该进程使用的 CPU 时间积累(TIME+)排序显示。k pid
:给予某个 PID 一个信号(signal) / Kill 一个任务。q
:退出 top。
top
主要分为两部分界面。
- 上面的界面为整个系统的资源使用状态,基本上总共有六行,显示的内容依序是:
- 第一行(top…):
- 目前的时间,即
19:56:21
; - 开机到目前为止所经过的时间,即
up 2 days,2:29
; - 已经登陆系统的用户人数,即
1 user
; - 系统在 1、5、15 分钟的平均任务负载。代表的是 1、5、15 分钟,系统平均要负责运行几个进程(任务)的意思。数值越小代表系统越闲置,若高于 1 就要注意系统进程是否太过频繁了。
- 目前的时间,即
- 第二行(Tasks…):显示目前进程的总量与个别进程在什么状态(
running
、sleeping
、stopped
、zombie
)。 - 第三行(%Cpus…):显示的是 CPU 的整体负载。需要特别注意的是 wa 项目,其代表
I/O wait
,通常系统变慢都是 I/O 产生的问题比较大。另外,如果是多内核设备,可以按下数字键【1】来切换成不同 CPU 的负载率(这里的显示板载和PC端不太一样)。 - 第四行与第五行:表示目前的物理内存与虚拟内存(Mem/Swap)的使用情况。注意, swap 的使用量要尽量的少,如果 swap 被用很多,表示系统的物理内存存在不足。
- 第六行:这个是当在 top 进程当中输入命令时,显示状态的地方。
- 第一行(top…):
- 至于 top 下半部分的画面,则是每个进程使用的资源情况,需要注意的是:
- PID:每个进程的 ID;
- USER:该进程所属的用户;
- PR:Priority 的简写,进程的优先执行顺序,越小则越早被执行;
- NI:Nice 的简写,与 Priority 有关,也是越小则越早被执行;
- %CPU:CPU 的使用率;
- %MEM:内存的使用率;
- TIME+:CPU 使用时间的累加。
top 默认使用 CPU 使用率(%CPU)作为排序的一句。如果你想要使用内存使用率排序,则可以按下【M】,若要恢复则按下【P】即可。如果想要退出 top,则按下 【q】。
一般来说,如果想要找出最消耗 CPU 资源的那个进程时,大多使用的就是 top 这个程序,然后强制以 CPU 使用资源来排序,就可以很快知道了。