如何在Linux中使用top命令作为任务管理器

时间:2020-03-05 15:29:55  来源:igfitidea点击:

TOP命令快速概述系统信息。
它报告有关每3秒刷新(默认情况下)的当前进程的数据。

了解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.0的负载将意味着100%的处理能力目前正在工作中。

任务

Tasks: 210 total,   2 running, 208 sleeping,   0 stopped,   0 zombie

系统进程也称为任务。
操作系统依赖于在后台运行的许多进程,以使其他活动成为可能,例如使用Web浏览器。

过程可以以多种不同的方式运行,并使用各种算法优先考虑。
这有助于优化计算机执行任务的方式。
这是一个高级概述,所以我们将在这里保持简单。
我们希望我们的读者知道计算比在此描述的状态更多的计算。

那说,让我们看看这些方法中的每一个:

|状态|说明|
| --- - | --- |
|Running|活动/在队列中被处理|
|Sleeping|等待一个完成的过程|
|Stopped |由作业控制信号(例如Ctrl + C)中断|
|Zombie|由“孤儿”儿童任务造成/不再运行|

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

这里的每个值是在各个任务上花费的时间百分比。
下表解释了每个缩写的含义。
这给出了如何使用如何使用处理能力的详细细目。

|缩写|描述|
| --- - | --- |
|us|用户模式下的处理率|
| sy |在系统/内核模式下的处理率|
| ni |花在“漂亮”流程上的时间|
| ID |时间花了闲置|
| WA |等待I/O进程完成|
|hi|由于硬件中断而花费的时间|
| SI |由于软件中断而花费的时间|
| st |时间“被盗”虚拟机资源|

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

这些行模拟了Linux中的free命令的输出。

任务表

这真的是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(独特的正整数)|
|USER|用户名|
| PR |优先(内核)|
| ni |优雅|
|VIRT|虚拟存储器|
| Res |居民大小(物理内存)|
| SHR |共享记忆|
| s |进程状态(运行,停止等)|
| %CPU | CPU负载|
| %mem | Res/Total Ram的百分比|
|TIME+ |整个时间花在过程中|
|COMMAND|命令开始处理|

这些是我的系统的默认字段。
系统可能略有不同。
这些是通过键入f而上面运行时的定制。
这将显示一个完整的可用选项列表

使用顶部命令输出自定义和交互

一旦显示器设置了我们喜欢的方式。
是时候完成一些工作了。
让我们来看看顶部的完整选项列表(通过键入h可访问),并查看一些示例。

1.颜色和内存单位

Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale

我们已经介绍了颜色的变化,但我们也可以将内存量表从BYTES从BYTE达到PETABYTES修改。
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,但如果存在倍数,我们可以看到它如何工作。
我们可以使用自己的统计数据分为单个节点。

4. top字段操作

f,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width

我们可以添加或者删除我们想要显示的任何字段,我们还可以调整文本的固定宽度。

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显示所有任务,而不是默认排序函数。
线程将更改详细和摘要视图以进行线程导向而不是面向任务。
Forest View在"树"结构中安排流程以展示亲子关系。
numeric徽章更改数字字段的默认左对齐位置。

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

我们可以轻松过滤OUT特定的用户或者字段/值。
这对于具有许多用户或者大量打开任务的系统非常棒。
过滤器需要字段和值之间的比较运算符。
正如我们在这里看到的那样,我键入了command = top以过滤除顶部外的所有命令。
使用shift与任一命令切换案例灵敏度。

10.过滤进程数

n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)

使用n或者#将为我们选择输入数值。
这将仅显示所需的过程数量。

11.在top命令中使用PID renice或者杀死进程

k,r       Manipulate tasks: 'k' kill; 'r' renice

使用这些命令,我们可以更改漂亮的值或者杀死此过程。
我过滤了特定的PID,以便更容易看到。
我将漂亮的值更改为20.然后我发送了一个kill命令。
默认情况下使用kill发送Sigterm信号。
这允许它在终止之前完成执行代码。

12.更改顶部命令中的默认更新时间

d or s    Set update interval

其中我已经将默认更新时间从每3.0秒更改为每1秒。
我们可以在适合我们需求的任何时间进行调整。
可以使用D或者s执行相同的操作。