Linux top 命令

Linux中的top命令用于实时动态查看系统进程活动和负载。它显示系统参数概览、进程状态、CPU和内存使用情况,并支持丰富的交互命令,如调整刷新间隔、选择显示字段、结束或调整进程优先级等。通过'-'选项可以设置批处理模式、延迟间隔、监控特定进程等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

top 命令用于动态地监视进程活动与系统负载等信息。

示例:两秒钟刷新一次

# top -d 2

Linux中的 top 命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被广泛用于监视服务器的负载。top命令是一个交互命令。在运行top的时候还可以运行很多命令。

top 命令输出

img

前几行水平显示了不同系统参数的概括,接下来是进程和它们在列中的属性。

系统运行时间和平均负载

img

top命令的顶部显示与 uptime 命令相似的输出。

这些字段显示:

  • 当前时间
  • 系统已运行的时间
  • 当前登录用户的数量
  • 相应最近 5、10 和 15 分钟内的平均负载。

示例:

00:15:48 — 当前系统时间
0 days, 1:23 — 系统已经运行了1小时23分钟(在这期间没有重启过)
2 users — 当前有2个用户登录系统
load average:0.26, 0.33, 0.47 — load average后面的三个数分别是5分钟、10分钟、15分钟的负载情况。

load average数据是每隔 5 秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU 的数量,结果高于 5 的时候就表明系统在超负荷运转了。

可以使用 ’l’ 命令切换uptime的显示。

任务

img

第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量。这些进程概括信息可以用 ’t’ 切换显示。

CPU 状态

img

这里显示了不同模式下的所占 CPU 时间的百分比。这些不同的 CPU 时间表示:

  • us, user: 运行(未调整优先级的) 用户进程的CPU时间
  • sy,system: 运行内核进程的CPU时间
  • ni,niced:运行已调整优先级的用户进程的CPU时间
  • id:空闲CPU百分比
  • wa,IO wait: 用于等待IO完成的CPU时间
  • hi:处理硬件中断的CPU时间
  • si: 处理软件中断的CPU时间
  • st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。

可以使用 ’t’ 命令切换显示。

1.4 内存使用

img

接下来两行显示内存使用率,有点像 ’free’ 命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。

物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。

内存显示可以用 ’m’ 命令切换。

1.5 字段/列

img

默认上,top显示这些关于进程的属性:

PID:进程ID,进程的唯一标识符

USER:进程所有者的实际用户名。

PR:进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。

NI:进程的nice值(优先级)。越小的值意味着越高的优先级。

VIRT:进程使用的虚拟内存。

RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。

SHR:进程使用的共享内存。

S:进程的状态。它有以下不同的值:

  • D – 不可中断的睡眠态。
  • R – 运行态
  • S – 睡眠态
  • T – 被跟踪或已停止
  • Z – 僵尸态

%CPU

自从上一次更新时到现在任务所使用的CPU时间百分比。

%MEM

进程使用的可用物理内存百分比。

TIME+

任务启动后到现在所使用的全部 CPU 时间,精确到1% 秒。

COMMAND

运行进程所使用的命令。

还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组 ID 和其他更多的信息。

交互命令

手动刷新

top 命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户可以输入回车或者空格。

‘A’: 切换交替显示模式

这个命令在全屏和交替模式间切换。在交替模式下会显示4个窗口(译注:分别关注不同的字段):

  1. Def (默认字段组)
  2. Job (任务字段组)
  3. Mem (内存字段组)
  4. Usr (用户字段组)

这四组字段共有一个独立的可配置的概括区域和它自己的可配置任务区域。4个窗口中只有一个窗口是当前窗口。当前窗口的名称显示在左上方。(译注:只有当前窗口才会接受你键盘交互命令)

img

可以用’a’和’w’在4个 窗口间切换。’a’移到后一个窗口,’w’移到前一个窗口。用’g’命令你可以输入一个数字来选择当前窗口。

img

‘d’ 或‘s’: 设置显示的刷新间隔

当按下’d’或’s’时,你将被提示输入一个值(以秒为单位),它会以设置的值作为刷新间隔。如果你这里输入了1,top将会每秒刷新。

‘l’、‘t’、‘m’: 切换负载、任务、内存信息的显示

会相应地切换顶部的平均负载、任务/CPU状态和内存信息的概况显示。

‘f’: 字段管理

用于选择你想要显示的字段。用’*’标记的是已选择的。

上下光标键在字段内导航,左光标键可以选择字段,回车或右光标键确认。

按’<‘移动已排序的字段到左边,’>’则移动到右边。

‘R’: 反向排序

切换反向/常规排序。

‘c’: 触发命令

切换是否显示进程启动时的完整路径和程序名。

‘i’: 空闲任务

切换显示空闲任务。

‘V’: 树视图

切换树视图。

‘Z’: 改变配色

按下’Z’向用户显示一个改变top命令的输出颜色的屏幕。可以为8个任务区域选择8种颜色。

‘z’: 切换彩色显示

切换彩色,即打开或关闭彩色显示。

‘x’ 或者 ‘y’

切换高亮信息:’x’将排序字段高亮显示(纵列);’y’将运行进程高亮显示(横行)。依赖于你的显示设置,你可能需要让输出彩色来看到这些高亮。

‘u’: 特定用户的进程

显示特定用户的进程。你会被提示输入用户名。空白将会显示全部用户。

‘n’ 或 ‘#’: 任务的数量

设置最大显示的任务数量。

‘k’: 结束任务

top命令中最重要的一个命令之一。用于发送信号给任务(通常是结束任务)。

‘r’: 重新设置优先级

重新设置一个任务的调度优先级。

命令行选项

这些命令行选项与上面讨论的命令大多相同。top的输出可以用命令交互操作,但是也可以带参数运行top来设置想要的效果。

-b: 批处理模式

-b 选项以批处理模式启动 top 命令。当你想要在文件中保存输出时是很有用的。

-c: 命令/程序名 触发:

如上面所讨论到的命令,这个选项会以上次记住的程序/命令显示的状态显示(是否显示完整路径)。

-d: 设置延迟间隔

设置top的显示间隔(以秒计)。比如:

$ top -d 1

将会以 1 秒的刷新间隔启动top。

-i: 切换显示空闲进程

这个选项设置top命令的上一次记住的相反的‘i’状态。

-n: 设置迭代数量

用-n选项,可以设置top退出前迭代的次数。

$ top -n 3

将会在刷新输出 3 次后退出。

-p: 监控特定的PID

可以用-p选项监控指定的PID。PID的值为0将被作为top命令自身的PID。

-u 或 -U: 用户名 或者 UID

可以用这些选项浏览特定用户的进程。用户名或者UID可以在选项中指定。-p、-u和-U选项是互斥的,同时只可以使用这其中一个选项。当试图组合使用这些选项时,会得到一个错误:

$ top -p 28453 -u raghu

top: conflicting process selections (U/p/u)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值