Linux top 命令详解
主要功能和用途
- 实时监控:提供一个实时的、动态的视图,展示系统当前的状态。
- 进程管理:允许用户查看系统中各个进程的运行状态。
- 资源监控:
- CPU使用情况:监控CPU的总体使用率、用户空间占用率、系统空间占用率等。
- 内存使用情况:展示物理内存和交换空间(swap)的使用情况,包括总量、已用量、空闲量等。
- 进程资源占用:显示每个进程的虚拟内存使用量、物理内存使用量等。
基本用法
在终端中输入top
命令并回车,即可启动top程序。默认情况下,它会显示系统中所有进程的列表,并按照CPU使用率进行排序。
top
主要界面元素
- 顶部区域:显示系统的整体状态,包括当前时间、系统运行时间、登录用户数、平均负载等。平均负载是指在特定时间间隔内,系统处于运行状态和不可中断状态的平均进程数,是衡量系统负载的重要指标。
- 任务(Tasks)区域:显示当前系统中进程的总数、正在运行的进程数、睡眠中的进程数、停止的进程数以及僵尸进程数。
- CPU状态:展示CPU的使用情况,包括用户空间占用率、系统空间占用率、空闲率、等待IO时间等。
- 内存(Mem)和交换空间(Swap)状态:显示物理内存和交换空间的使用情况,包括总量、已用量、空闲量、缓存量等。
- 进程列表:列出系统中各个进程的详细信息,包括PID(进程ID)、用户、优先级、虚拟内存使用量、物理内存使用量、共享内存量、状态(如运行、睡眠、停止等)、CPU使用率、内存使用率、运行时间以及命令行名称等。
示例分析
- 系统时间和状态:
- 00:07:32 up 4:29:表示当前时间是00:07:32,系统已经运行了4小时29分钟。
- 4 users:当前有4个用户登录系统。
- load average: 0.17, 0.27, 0.17:分别表示过去1分钟、5分钟、15分钟的平均负载。平均负载是指系统在特定时间间隔内等待CPU的平均进程数。这里的值表明系统负载较低,但过去1分钟的负载略高于其他时间段。
- 任务统计:
- Tasks: 226 total:系统中共有226个进程。
- 2 running:当前有2个进程正在运行。
- 224 sleeping:有224个进程处于睡眠状态,等待某些条件触发(如I/O操作)。
- 0 stopped:没有进程被停止。
- 0 zombie:没有僵尸进程。僵尸进程是已经结束但父进程尚未通过调用wait()或waitpid()等待其结束状态的进程。
- CPU使用情况:
%Cpu(s): 0.6 us, 24.8 sy, 0.0 ni, 74.5 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st:
- us(用户空间占用CPU百分比):0.6%
- sy(内核空间占用CPU百分比):24.8%,us + sy 就是我们常说的CPU利用率,即 0.6% + 24.8% = 25.4%
- ni(改变过优先级的进程占用CPU百分比):0.0%
- id(空闲CPU百分比):74.5%,表明CPU大部分时间处于空闲状态。
- wa(等待输入输出的CPU时间百分比):0.0%
- hi(硬件中断):0.0%
- si(软件中断):0.1%
- st(虚拟机偷取时间):0.0%
- 内存和交换空间使用情况:
- KiB Mem:
- 5178152 total:物理内存总量为5178152KB。
- 321828 free:空闲内存为321828KB,内存使用率通常用 (total - free) / total 来计算
- 1063612 used:已使用的内存为1063612KB。
- 3792712 buff/cache:用作缓冲/缓存的内存为3792712KB。
- KiB Swap:
- 2097148 total:交换空间总量为2097148KB。
- 2096884 free:空闲交换空间为2096884KB。
- 264 used:已使用的交换空间为264KB。
- 3799532 avail Mem:估计可用内存为3799532KB,这个值考虑了缓冲/缓存的内存,因为这些内存可以在需要时释放给应用程序使用。
- KiB Mem:
- 进程详细信息:
- PID:进程ID,是系统中唯一标识每个进程的数字。
- USER:运行该进程的用户名。
- PR:进程的优先级。较低的数值表示较高的优先级。
- NI:nice值,是一个影响进程优先级的值。负值表示较高的优先级,正值表示较低的优先级。
- VIRT:虚拟内存大小,是进程使用的虚拟内存总量,包括进程使用的库、数据段、堆栈等。
- RES:常驻内存大小,是进程当前占用的物理内存量(不包括交换出去的部分)。
- SHR:共享内存大小,是可被多个进程共享的内存量。
- S:进程状态,常见的状态有S(睡眠/可中断)、R(运行/正在执行)、D(不可中断睡眠)等。
- %CPU:自进程启动以来占用的CPU百分比。
- %MEM:进程使用的物理内存占总内存的百分比。
- TIME+:进程占用的CPU时间总计,格式为分钟:秒。
- COMMAND:启动进程的命令名/命令行。
常用选项
-u 用户名
:仅显示指定用户的进程。
-n 次数
:指定top命令更新的次数,之后自动退出。
-d 秒数
:设置屏幕更新的间隔时间,默认为3秒。
-b
:以批处理模式运行,通常与重定向结合使用,将输出保存到文件中。
-H
:以线程模式显示,显示每个线程的详细信息,而非仅显示进程。
交互命令
在top运行时,用户可以通过一系列交互命令来改变显示的内容或排序方式:
P
:以CPU使用率排序。
M
:以内存使用率排序。
T
:以时间/累计时间排序。
f
或 F
:进入字段管理界面,允许用户自定义显示的字段。
k
:杀死一个进程,需要输入进程的PID和信号。
r
:重新设定进程的优先级。
q
:退出top。