Linux top命令详解

Linux top命令详解教程

Linux 中的 top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器。

top 是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。

比较准确的说,top 命令提供了实时的对系统处理器的状态监视,它将显示系统中 CPU 最 “敏感” 的任务列表,该命令可以按 CPU 使用,内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

Linux top命令详解

功能

显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等。

语法

top [options]

参数

参数 描述
options top 命令使用的参数。

top命令常用参数

选项 含义
-b 批处理。
-c 显示完整的命令。
-d 表示top命令显示的页面更新一次的间隔,默认是 5 秒。
-I 忽略失效过程。
-s 保密模式。
-S 累积模式。
-i<时间> 设置间隔时间。
-u<用户名> 指定用户名。
-p<进程号> 指定进程。
-n<次数> 循环显示的次数。

Linux top命令交互指令

说明

在 top 命令的显示窗口中,还可以使用按键,进行一下交互操作。

交互指令

交互指令 含义
?, h 显示交互模式的帮助。
P 按照 CPU 的使用率排序,默认就是此选项。
M 按照内存的使用率排序。
N 按照 PID 排序。
T 按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序。
k 按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号。
r 按照 PID 给某个进程重设优先级(Nice)值。
q 退出 top 命令。

Linux top命令显示信息

说明

top 命令显示部分总体分为两部分,即表头部分分为五行,以及下面主体部分,动态显示的进程信息。

第一行

第一行为任务队列信息,具体内容如下表所示:

内 容 说 明
12:26:46 系统当前时间
up 1 day, 13:32 系统的运行时间.本机己经运行 1 天 13 小时 32 分钟
2 users 当前登录了两个用户
load average: 0.00,0.00,0.00 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)

第二行

第二行为进程信息,具体内容如下表所示:

内 容 说 明
Tasks: 95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程数
0 stopped 正在停止的进程数
0 zombie 僵尸进程数。如果不是 0,则需要手工检查僵尸进程

第三行

第三行为 CPU 信息,具体内容如下表所示:

内 容 说 明
Cpu(s): 0.1 %us 用户模式占用的 CPU 百分比
0.1%sy 系统模式占用的 CPU 百分比
0.0%ni 改变过优先级的用户进程占用的 CPU 百分比
99.7%id 空闲 CPU 占用的 CPU 百分比
0.1%wa 等待输入/输出的进程占用的 CPU 百分比
0.0%hi 硬中断请求服务占用的 CPU 百分比
0.1%si 软中断请求服务占用的 CPU 百分比
0.0%st st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行

第三行为物理内存信息,具体内容如下表所示:

内 容 说 明
Mem: 625344k total 物理内存的总量,单位为KB
571504k used 己经使用的物理内存数量
53840k&ee 空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存
65800k buffers 作为缓冲的内存数量

第五行

第五行为交换分区(swap)信息,具体内容如下表所示:

内 容 说 明
Swap: 524280k total 交换分区(虚拟内存)的总大小
Ok used 已经使用的交换分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交换分区的大小

负载

我们通过 top 命令的第一部分就可以判断服务器的健康状态。如果 1 分钟、5 分钟、15 分钟的平均负载高于 1,则证明系统压力较大。如果 CPU 的使用率过高或空闲率过低,则证明系统压力较大。如果物理内存的空闲内存过小,则也证明系统压力较大。

ps命令输出字段解释

说明

ps 命令主体部分显示的信息是动态展示进程信息的。

字段解释

显示信息 描述
PID 进程的 ID。
USER 该进程所属的用户。
PR 优先级,数值越小优先级越高。
NI 优先级,数值越小、优先级越高。
VIRT 该进程使用的虚拟内存的大小,单位为 KB。
RES 该进程使用的物理内存的大小,单位为 KB。
SHR 共享内存大小,单位为 KB。
S 进程状态。
%CPU 该进程占用 CPU 的百分比。
%MEM 该进程占用内存的百分比。
TIME+ 该进程共占用的 CPU 时间。
COMMAND 进程的命令名。

Linux top命令常用实例

实例

实例 描述
top 显示进程信息。
top -d 3 设置 top 命令更新时间为 3 秒。
top -p pid 显示指定的进程信息。

说明

top 命令默认的刷新时间为 5 秒,我们可以通过 d 参数修改刷新时间。

动态显示所有进程信息

语法

top

案例

我们使用 top 命令,显示进程信息,具体命令如下:

top

运行后,终端输出如下:

12_Linux top命令详解.png

我们看到,我们使用了 top 命令,动态显示了所有进程的信息,运行完毕后,我们按下 q 即可退出 top 命令。

设置top命令刷新时间

语法

top -d num

案例

我们使用 top 命令,加上 d 参数,可以设置 top 命令的刷新时间,具体命令如下:

top -d 3

运行后,终端输出如下:

13_Linux top命令详解.png

我们看到,此时动态显示了所有进程的信息,并且刷新时间变成了 3 秒。

查看指定进程信息

语法

top -p pid

案例

我们使用 top 命令,加上 p 参数跟上进程 id,可以查看指定进程的信息,具体命令如下:

top -p 1195

运行后,终端输出如下:

14_Linux top命令详解.png

我们看到,此时只显示了指定进程的进程信息。

top命令排序

语法

top M

案例

我们使用 top 命令,查看所有进程的信息,具体命令如下:

top

运行后,终端输出如下:

15_Linux top命令详解.png

我们看到,此时显示了所有进程的进程信息,默认是按照 CPU 使用率排序的,现在,我们按下 M 可以实现按照内存排序,按下后,如下图所示:

16_Linux top命令详解.png

我们看到,此时是按照内存排序了,即,我们使用了 top 命令,加上 M 交互命令,可以实现让 top 命令安装内存排序。

Linux top命令详解总结

Linux 中的 top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器。

top 是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。