如何在 Linux 中使用 Top 命令作为任务管理器
top 命令提供系统信息的快速概览。它报告当前进程的数据,默认每 3 秒刷新一次。
使用和理解像 top 这样的程序是一项必不可少的系统管理技能。在本文中,我将教您如何自信地使用 top 命令。
理解 Linux 中的 top 命令
top
Top 使用起来很简单。这个简单的命令会带你进入 top 应用程序。当你想退出时,输入字母 q 即可退出。还有其他键盘命令可以充分利用它,我将在后面讨论。
您可以轻松检查 CPU 负载、当前任务数以及查看有关内存使用情况的信息。您会注意到,运行时基本上有 2 个部分包含信息。
在终端顶部,我们可以看到概览数据,包括内存使用情况和 CPU 负载。在其下方,我们有一个包含大量详细信息的特定进程的表格。
压缩格式中显示了很多详细信息。让我们将其分解成更小的部分,以便我们有一个更完整的理解。前四行包含我之前提到的概览数据。让我们逐行查看并解释发生了什么。
用户信息、正常运行时间和平均负载
top - 11:49:05 up 27 min, 1 user, load average: 1.13, 0.44, 0.28
第一条信息是时间戳,它的含义非常明显。在它旁边,你会看到系统启动时间。在我的例子中,它显示为 24 分钟。这指的是计算机连续运行了多长时间。接下来,我们会看到三个平均负载值。这些数字分别是 1 分钟、5 分钟和 15 分钟内的读数,顺序依次为 1 分钟、5 分钟和 15 分钟。
就我们的目的而言,负载值可以理解为对系统处理能力的“压力”的估计。例如,负载 1.0 表示您的处理能力目前处于 100% 的工作状态。
任务
Tasks: 210 total, 2 running, 208 sleeping, 0 stopped, 0 zombie
系统进程也称为任务。操作系统依靠后台运行的大量进程来实现其他活动,例如使用 Web 浏览器。
进程可以以多种不同的方式运行,并使用各种算法确定优先级。这有助于优化计算机执行任务的方式和时间。本文旨在提供高层次概述,因此我们将在此保持简单。我们希望读者知道,计算不仅仅是本文描述的状态。
话虽如此,让我们看看这些含义分别是什么:
状态 | 描述 |
---|---|
跑步 | 活动/正在排队等待处理 |
睡眠 | 等待进程完成 |
已停止 | 被作业控制信号(例如 CTRL+C)中断 |
僵尸 | 由“孤立”子任务组成/不再运行 |
top 命令中的 CPU 信息
%Cpu(s):100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
这里的每个值都是在相应任务上花费的时间百分比。下表解释了每个缩写的含义。这给出了处理能力使用情况的相当详细的细分。
缩写 | 描述 |
---|---|
我们 | 在用户模式下完成的处理 |
西 | 在系统/内核模式下完成的处理 |
妮 | 花费在“良好”流程上的时间 |
ID | 闲置时间 |
哇 | 等待 I/O 进程完成 |
你好 | 硬件中断所花费的时间 |
锡 | 软件中断所花费的时间 |
英石 | 虚拟机资源“窃取”的时间 |
top 命令中的内存使用情况
MiB Mem : 7974.7 total, 5974.0 free, 1046.9 used, 953.9 buff/cache
MiB Swap: 4095.5 total, 4095.5 free, 0.0 used. 6660.1 avail Mem
任务表
这实际上是 top 命令的核心。如果您来自 Windows,您可能熟悉使用CTRL+ALT+DEL访问任务管理器。这有点像是更“精简”的版本。您可以看到所有当前正在运行的任务的表格。
以下是顶部显示的一些任务的示例。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1703 christo+ 20 0 2338396 342200 114744 S 7.9 4.2 0:25.05 gnome-shell
1285 root 20 0 237252 72360 46012 S 4.3 0.9 0:04.00 Xorg
2158 christo+ 20 0 496976 42952 32192 S 4.0 0.5 0:01.74 gnome-terminal-
2703 christo+ 20 0 21528 3880 3204 R 0.7 0.0 0:00.40 top
下表可以帮助您理解列标题缩写。
缩写 | 描述 |
---|---|
PID | 进程 ID(唯一正整数) |
用户 | 用户名 |
公共关系 | 优先级(内核) |
国家科学院 | 物有所值 |
虚拟仿真测试系统 | 虚拟内存 |
可再生能源 | 驻留大小(物理内存) |
自发性高血压 | 共享内存 |
年代 | 进程状态(正在运行、已停止等) |
%中央处理器 | CPU 负载 |
%内存 | RES/总 RAM 的百分比 |
时间 + | 流程花费的总时间 |
命令 | 开始进程的命令 |
这些是我的发行版上的默认字段。您的系统可能略有不同。这些可以通过F
在 top 运行时键入来自定义。这将显示可用选项的完整列表
自定义并与 top 命令输出交互
一旦您以自己喜欢的方式设置了显示,就可以开始工作了。让我们看一下 top 的完整选项列表(可通过键入 h 访问)并查看一些示例。
1. 颜色和记忆尺度
Z,B,E,e Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale
我们已经介绍了颜色的变化,但您还可以修改内存比例,从字节一直到 PB。E
修改摘要部分的数字,同时e
调整任务表中的比例。
2. 切换摘要信息视图
l,t,m Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
每个相应的键都会调整显示选项。默认为基于文本的输出,但也有模拟条形图,或者您可以完全关闭项目。
3. 查看 CPU 特定信息
0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
我的虚拟机上只有一个 CPU,但您可以看到如果有多个 CPU 它会如何工作。您可以将其分成具有各自统计数据的单个节点。
4 顶级字段操作
f,F,X Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width
我们可以添加或删除任何我们想要显示的字段,我们也可以调整文本的固定宽度。
类似地,你也可以对 top 命令输出进行排序。
5. 定位字符串
L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
6. 组织你的视图
R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify
这些命令为您提供了组织任务信息的选项。排序将按 PID 显示所有任务,而不是按活动函数默认排序。线程将把您的详细和摘要视图更改为面向线程而不是面向任务。森林视图以“树”结构排列进程以显示父子关系。数字对齐会更改数字字段的默认左对齐位置。
7. 切换完整路径、空闲任务、累计时间和文本对齐
c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
切换时c
,您将看到命令的完整路径。空闲会从显示中删除所有非活动任务。S
使用累积时间。字符串对齐会更改字符串字段的默认左对齐位置。
8. 切换突出显示
x,y . Toggle highlights: 'x' sort field; 'y' running tasks
使用 x 切换排序字段,使用 y 对正在运行的任务进行排序。
9. 按用户或字段/值过滤
u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria
我们可以轻松过滤掉特定的用户或字段/值。这对于拥有许多用户或大量未完成任务的系统非常有用。过滤器需要字段和值之间的比较运算符。正如您在此处看到的,我输入了COMMAND=top
过滤除 top 之外的所有命令。使用 shift 和任一命令都可以切换区分大小写。
10. 过滤进程数
n,#,^O . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
使用任一方式n or #
都可以输入数值。这将仅显示所需的进程数。
11. 在 top 命令中使用 PID 重新缓存或终止进程
k,r Manipulate tasks: 'k' kill; 'r' renice
使用这些命令,我们可以更改 nice 值或终止进程。我过滤掉了特定的 PID,以便更容易看到。我将 nice 值更改为 20。然后我发送了一个 kill 命令。默认情况下,使用 kill 会发送SIGTERM 信号。这允许它在终止之前完成代码执行。
12. 修改top命令中的默认更新时间
d or s Set update interval
这里,我将默认更新时间从每 3.0 秒更改为每 1 秒。您可以根据需要调整任何时间。可以使用d
或s
执行相同的操作。
结论
您喜欢我们的 top 指南吗?我希望这些技巧能让您学到一些有关使用 top 的新知识。如果您喜欢本指南,请在社交媒体上分享。
如果您有任何意见或问题,请在下面留言。如果您有任何建议,或者希望了解哪些主题,也请随时留言。感谢您的阅读。