30 个 Linux 监控的top命令示例

37 篇文章 0 订阅

Linux 中的 top 命令显示系统上正在运行的进程。系统管理员最重要的工具之一。它广泛用于监视服务器上的负载。在本文中,我们将详细探讨 top 命令。top 命令是一个交互式命令。top 运行时有许多命令可用。我们还将探索这些命令。

1.默认top命令

首先,让我们了解输出的内容。Top 命令显示了很多关于正在运行的系统的信息。但是我们需要了解这个输出的不同部分的含义。要查看运行过程,请在终端上运行以下命令

top

默认运行时,top 命令显示如下输出:

不同的列和水平线中有一些信息显示不同系统参数的摘要,然后是列中的过程及其属性。

a) 字段/列

默认情况下,top显示与进程相关的一些属性,并且信息类型在列中表示。因此,要了解 top 命令的功能,我们必须了解每一列的作用,以便知道我们应该需要的信息在哪里

PID由唯一值表示的进程ID,它唯一地标识一个进程。

USER进程所有者的有效用户名。它有助于准确识别特定用户启动的进程

PR是进程的实际优先级,从Linux内核来看,是进程的调度优先级。对于普通进程,内核优先级只是nice值的+20。因此,neutral nice 值为 0 的进程的内核优先级为 20。对于实时运行的进程,该字段的值为RT

NI这是对应于用户空间概念的进程的nice值。Nice 值范围是-20 到 +19,其中-20最高,0默认值,+19最低。较低的值意味着较高的优先级。nice 值和优先级之间的关系是PR = 20 + NI

VIRT它是进程使用的虚拟内存量。它代表程序当前可以访问多少内存;它代表一个进程的虚拟大小,它是它实际使用的内存的总和,

RES它是常驻内存大小。常驻内存是任务正在使用的非交换物理内存量。它代表常驻大小,它准确表示一个进程正在消耗多少实际物理内存。(这也直接对应于 %MEM 列。)这实际上总是小于 VIRT 大小,因为大多数程序都依赖于 C 库。

SHR SHR 是进程使用的共享内存,它表明有多少 VIRT 大小实际上是可共享的(内存或库)。就图书馆而言,这并不一定意味着整个图书馆都是常驻的。

S这是进程状态。流程由功能状态定义。它可以具有以下值之一:

  • D - disk sleep不间断睡眠:进程正在等待某事发生的睡眠状态。它不能被信号中断;通常在进程等待磁盘时看到。
  • R - running:该进程已准备好运行,并且将在轮到使用 CPU 时运行
  • S - sleeping:进程正在等待某事发生的睡眠状态。它可以被信号中断
  • T - stopped:这是进程停止的状态,通常通过SIGSTOPSIGTSTP。它也可以由调试器 ( ptrace) 停止。当您看到该状态时,通常是因为您使用 Ctrl-Z 将命令置于后台。
  • Z - zombie:是进程死亡的状态(它已完成执行),唯一剩下的是在内核上描述它的结构。它正在等待其父进程检索其退出代码,仅此而已。在它的父进程用完它后,它就会消失。

%CPU自上次更新以来任务使用的 CPU 时间百分比。进程正在使用的 CPU 百分比。默认情况下,top将其显示为单个 CPU 的百分比在多核系统上,您可以拥有大于 100% 的百分比。

%MEM表示进程使用的可用物理内存的百分比。它可以被认为是该进程使用的总可用内存的份额。

TIME+任务自启动以来使用的总 CPU 时间,精度可达百分之一秒。

COMMAND用于启动进程的命令。

还有许多其他默认不显示的输出,可以显示有关页面错误、进程的有效组和组 ID 等信息。

b) 正常运行时间和平均负载

当您处于“top 模式”时,top 命令结果的第一行会显示类似于 uptime 命令的输出。

这些字段显示以下信息:

* 系统的当前时间

* 系统启动的时间

* 登录系统的用户数

* 分别为 5、10 和 15 分钟的平均负载。

此正常运行时间显示可以用l键切换,并且可以隐藏负载平均信息。

c) 任务

第二行显示任务或流程的摘要。正如我们在上面的“S”列中看到的那样,这些过程可以处于不同的状态。它显示了不同的过程及其状态

d) CPU 状态

第三行显示不同的 CPU 统计信息。

不同CPU时间的含义是:

  • us, user:它向我们展示了处理器花费 1.8% 的时间运行用户空间进程。用户空间程序是任何不属于内核的进程。
  • sy, system:它是 CPU 运行内核所花费的时间。
  • ni, niced显示 CPU 花费了多少时间运行已被 niced 的用户空间进程。在没有处理任何进程的系统上,该数字将为 0。
  • id, idle:它告诉我们处理器在上一个采样周期内空闲时间超过 97%。
  • wa , IO wait : 等待 I/O 操作完成时处于空闲状态
  • :处理器花费了多少时间来处理硬件中断
  • si : 处理器用于服务软件中断的时间
  • st:最后一个数字仅适用于虚拟机。当 Linux 在虚拟机管理程序上作为虚拟机运行时,st(被盗的缩写)统计数据显示虚拟 CPU 等待虚拟机管理程序为运行在不同虚拟机上的另一个虚拟 CPU 服务所花费的时间

这可以用t决定如何显示任务并可以隐藏任务和 cpu 信息的键来切换。

e) 内存使用

这部分由两行组成,根据当前安装的物理内存量,可以用千字节 (KiB)、兆字节 (MiB) 或千兆字节 (GiB) 表示值。

  • 第1行反映物理内存,分类为:total、used、free、buffers
  • 第2行反映虚拟内存,分类为:total、used、free、cached

  • 物理内存是您的 RAM,提供随机存取内存的物理硬件
  • 交换是虚拟内存,可以是硬盘驱动器上的文件或分区,基本上用作额外的 RAM。它不是一个单独的 RAM 芯片,它位于您的硬盘驱动器上。

内存可以用m决定如何显示内存使用情况的键来切换,并且可以隐藏内存信息。

2.显示交互式帮助菜单

它具有强大的交互模式,默认情况下在 Top 启动时处于活动状态。可以使用各种命令以仅按字母键的形式来操作所看到的内容。在这里,我们进一步探索这些命令。

首先,您可以按h?来显示交互式命令的帮助菜单或命令的精简列表。我们可以看到可以在 top 命令执行中使用的 differents 键的角色。

3.手动刷新显示

top 命令默认会在一定的时间间隔(3 秒)后刷新显示的信息。要手动刷新这些信息,用户可以按ENTERSPACE

4) 切换交替显示模式

默认情况下,我们有全屏显示模式,其中摘要和任务数据显示在单个窗口中。因此,任何时候都只能显示一个字段组。还有交替显示模式,最多可以有四个窗口,每个窗口显示一个字段组。这些窗口被命名为Def、Job、Mem和Usr

  • Def按 %CPU 排序
  • Job:按PID排序
  • Mem:按 %MEM 排序
  • Usr:按用户字段排序

A可以使用显示模式切换命令进入交替显示模式。4 个字段组中的每一个都有一个独特的可单独配置的汇总区域和自己的可配置任务区域。这 4 个窗口中只有一个是当前窗口。当前窗口显示在左上角。

a您可以使用和w键在 4 个窗口之间切换。a移动到下一个和w上一个窗口。使用g命令,您可以输入一个数字来选择当前窗口。

5) 粗体显示

一些重要信息以粗体显示。B命令切换粗体的使用。此命令将影响粗体 terminfo 功能的使用,并更改当前窗口的摘要区域和任务区域。当此切换为“ ON ”且top在单色模式下运行时,整个显示将显示为普通文本。因此,除非x和/或y切换使用反向来强调,否则不会有视觉确认它们是否打开。

6) 设置显示时间间隔

ds键更改刷新之间的延迟。提示新的延迟时间,应该以秒为单位。在安全模式下被抑制。d按下或时s,将提示您输入一个值(以秒为单位),该值将设置为显示间隔。如果在这里输入 1,top 会每秒刷新一次。

7) 切换负载、任务、内存信息

l,tm键将分别切换平均负载、任务/cpu 状态和内存信息,如Uptime 和 Load AverageCPU StateMemory Usage中所述。

8) 显示字段管理

F键用于选择要在输出屏幕上显示的字段。要选择要显示的字段,请在名称上按SPACEd键。标记为 * 的字段被选中。完成后按qESC退出。

<>符号

<命令将排序的字段向左和 >向右移动

9)反向排序

默认情况下,排序按降序进行。按下R将反转当前排序列的排序顺序,使用此交互式命令显示 pProcesses 消耗最少的 cpu 将首先显示。

10) 显示命令路径

c在 COMMAND 列中显示完整的命令路径以及命令行参数。

11) 空闲任务

i键不显示空闲任务 切换空闲任务。它显示所有任务或仅显示活动任务。当此切换关闭时,将不会显示自上次更新以来未使用任何 CPU 的任务。但是,由于 %CPU 和 TIME+ 字段的粒度,可能仍会显示一些似乎没有使用 CPU 的进程。

12) 层次结构

V键将显示父子层次结构中的进程,如下所示

13) 改变颜色图

按下该Z键将用户带到一个屏幕,在该屏幕上可以更改 top 命令的显示颜色。您将看到一个单独的屏幕。该屏幕可用于更改当前窗口或所有四个窗口的颜色,然后返回top显示。当您发出Z交互式命令时,您有 4 个大写字母来选择目标 8 个数字来选择颜色

下面的屏幕显示了所有 4 个屏幕都打开的全彩色顶视图。

14) 切换颜色

z打开或关闭彩色显示屏。它在您上次使用的配色方案和旧的黑白或黑白形式之间切换当前窗口。此命令将同时更改摘要区域和任务区域

15) 更改当前排序字段和正在运行的任务的突出显示

xfor Column-Highlight 切换更改当前排序字段的突出显示。如果您忘记了正在对哪个字段进行排序,则此命令可以用作快速的视觉提醒,前提是正在显示排序字段。排序字段可能不可见,因为屏幕宽度不足和/或 f交互式命令将其关闭

y对于 Row-Highlight 切换更改突出显示正在运行的任务。使用此规定可让您深入了解系统的健康状况。唯一的成本将是一些额外的 tty 转义序列

根据您的显示设置,您可能必须将输出设置为彩色才能注意到这些亮点。

16) 显示用户的进程

u显示特定用户的进程。系统会提示您输入用户名。空白将为所有用户显示。它仅显示与给定的用户 id 或用户名匹配的进程,匹配有效用户

17) 显示显示的任务数

n#设置显示的最大任务数。它提示输入要显示的任务数。将使用您的号码和可用屏幕行的出租人。在交替显示模式下使用时,此命令可让您精确控制每个当前可见任务显示的大小,最后一个除外。它不会影响最后一个窗口的大小,因为所有先前的任务显示都已被绘制。

18) 杀死任务

top 最重要的命令之一。k用于向任务发送信号(通常是杀死任务)。系统将提示您输入 PID,然后是要发送的信号。不输入 PID 或负数将被解释为提示中显示的默认值(显示的第一个任务)。PID 值为零表示top程序本身。提示中反映的默认信号是 SIGTERM。但是,您可以通过号码或姓名发送任何信号。如果您希望中止终止进程,请根据您的进度执行以下操作之一:在

  • 在 pid 提示符下,输入无效数字
  • 在信号提示符下,键入 0(或任何无效信号)
  • 在任何提示符下,键入 <Esc>

19) 完成任务

r选项用于更改进程的优先级。此操作也称为 renice a task 以更改调度优先级。系统将提示您输入 PID,然后输入值。不输入 PID 或负数将被解释为提示中显示的默认值(显示的第一个任务)。PID 值为零表示top程序本身。一个正的 nice 值会导致进程失去优先级。相反,负的 nice 值将导致内核更喜欢进程。

一般来说,普通用户只能增加nice值,不能降低nice值。如果您希望中止 renice 过程,请根据您的进度执行以下操作之一:

  • 在 pid 提示符下,输入无效数字
  • 在 nice 提示符下,键入 <Enter> 而不输入
  • 在任何提示符下,键入 <Esc>

20) 分离CPU状态

此命令会影响t命令的 Cpu 状态部分的显示方式。当您在摘要区域中看到 %Cpu(s) 时,1切换为 On,并且所有 cpu 信息都收集在一行中。否则,每个 cpu 分别显示为:`%Cpu0, %Cpu1, ...' 直到可用的屏幕高度。

21)总结CPU状态

此命令在命令 cpu 摘要显示(仅)或摘要显示加上每个 NUMA 节点的 cpu 使用统计信息2之间切换。1

22) 以批处理方式显示top命令

-b选项以批处理模式启动 top 命令。当您想将输出保存在文件中时,它会很有用。

# top -b
top - 01:05:36 up 4 days,  2:59,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 117 total,   1 running, 116 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.6 us,  0.2 sy,  0.0 ni, 99.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   500096 total,    50244 free,    45732 used,   404120 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   414836 avail Mem 
 
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1373 root      20   0   40388   3672   3160 R  6.2  0.7   0:00.02 top
    1 root      20   0   38052   5600   3488 S  0.0  1.1   0:23.26 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   0:09.17 ksoftirqd/0
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    7 root      20   0       0      0      0 S  0.0  0.0   0:27.64 rcu_sched
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
    9 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
   10 root      rt   0       0      0      0 S  0.0  0.0   0:04.02 watchdog/0

23) 命令/程序名称切换

如上述命令所述,该-c选项将从上次记住的命令/程序名称显示状态切换。

24) 在命令行中设置延迟间隔

-d设置 top 的延迟间隔(以秒为单位)。例如:

$top -d 1

将以 1 秒的延迟间隔启动 top 命令。

25) 命令行中的空闲进程切换

此选项设置top命令与最后记住的i状态相反。

$top -i

26) 在命令行中设置迭代次数

使用-n选项,您可以设置 top 结束的迭代次数。

$top -n 3

3次输出后将自动退出top。在下图中,它自动退出

27) 在命令行中监控特定的 PID

您可以使用选项指定要监视的 PID -p。PID 值 0 将被视为 top 命令本身的进程 ID。

$ top -p pid_value

28) 在命令行中显示每个用户名或 UID 的任务

可以使用这些选项查看特定用户的进程。可以为选项指定用户名或 UID。,-p和选项是互斥的-u-U一次只能使用其中一个选项。当您尝试使用这些选项的任意组合时会出现错误:

$ top -u franshesco
 

29) 在命令行中按 ... 进行排序

-o可以与 top 命令一起使用进行过滤。它确定哪些任务将显示在“当前”窗口中。例如,我们将按 %CPU 排序

# top -o %CPU
 

30) 检查顶级命令版本

要检查顶级命令版本,我们使用 -v 选项

# top -v
  procps-ng version 3.3.10

结论

现在我们可以通过 top 命令来操作我们的进程。我们有它的强大和优势。可以在命令行或交互模式下使用它。现在,我们可以轻松地选择如何使用它来满足我们的需求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值