TOOP命令是用于监视Linux中的系统资源的工具。它显示了与进程级别的系统资源负载量相关的大量信息。如果掌握了这一实用程序,可能会给用户带来无限的好处。
首先,我们必须在系统上安装top命令。Debian/Ubuntu用户可以通过以下方式执行此操作:
1sudo apt install atop
其他Linux用户可以使用他们的标准包管理器,后跟‘topop’
关键字。
此命令能够显示与系统相关的多个机密信息。为了防止数据抽象,我们可以使用sudo su‘
或’sudo-S‘
获取提升访问权限。我们有关于sudo.的完整文档
top命令的基本输出
要显示系统资源的所有进程级使用情况,只需在终端中运行‘top’
即可。
1atop
如我们所见,整个布局分为两个面板。上面的面板提供系统资源的累计使用情况,而下面的面板显示每个进程的分解信息。让我们来看看每一个
TOOP命令累计统计量
此视图中的每个条目都侧重于一个特定的系统资源。
1.流程相关统计
- PRC-代表
过程
。 -前两个值为‘sys’
(系统)和‘user’
进程消耗的时间 。 -后跟进程总数 ,即‘# proc’
。 -下一个值是系统中当前运行的线程数 。(‘# Trun’
) -‘# tslpi’
表示当前处于休眠状态 和** 可中断状态** 的** 线程数** 。 -‘# tslPU’
表示当前处于休眠状态 和** 不可中断状态的** 线程数** 。 -下列值为僵尸进程数 。 -下一步是克隆系统调用数 。 -最后一个值是该时间内结束 的进程数** 。(‘# 退出’
)
2.性能相关统计
- CPU-与CPU利用率相关。
-前两个值表示系统进程和用户进程对所有内核的使用百分比 。
-用于中断请求 的CPU使用百分比。(
‘irq’
) -下一个值是所有核加起来的空闲百分比 。 -下列值表示每个CPU内核需要等待 的时间。 -下一步是窃取时间的百分比。 -‘Guest’
表示Guest-Percent ,即在其他虚拟机上花费的CPU时间。 -后两个值表示CPU的当前频率 。 - 现在
‘top’
显示 每个核** 的上述统计数据** 。 - CPL-指的是CPU负载。
-前三个值分别为1分钟、5分钟、15分钟的平均负载 。
-后跟上下文切换次数 (
‘csw’
) -接下来是中断次数 (‘intr’
) -最后一个值是可用CPU数 。
3.内存相关统计
- MEM-内存利用率
-支持的物理总内存 。
-内存 当前** 空闲** 。
-当前缓存 。
-
缓冲区中的‘buff’
是文件系统元数据占用的内存量。 -内核内存分配 的内存总和,表示为‘slet’
。 -共享内存量。 - SWP-交换内存。
3.磁盘相关统计
- dsk-磁盘使用率 -第一个值表示系统处理请求 忙** 的时间** 百分比。 -阅读请求 发出。 -写入请求 已发出。 -每个读取请求 读取** 数据** 的速率,单位为KB。 -每个写入请求 写入** 数据** 的速率,单位为KB。 -接下来的两个值是磁盘上读写 的** 时间速率** ,单位为MB。 -最后一个值是平均 处理请求的毫秒数。**
4.网络相关统计
- 网络-传输层的网络统计数据
-
传输‘
表示网络中的传输层 ,负责处理数据协议。 -系统遵循TCP协议接收的分段数 。(‘tcpi’
) -发送的段数。 (‘tcpo’
) -UCP协议的类似统计。(‘’udpi‘’表示UDP入站)和(‘udpo’
表示UDP出站)。 -‘tcpao’
为活跃的TCP打开连接数 。 -与之前的‘tcppo’
相对的是被动的tcppo连接数 ,但仍处于开放状态。 -tcp重传次数 为‘tcprs’
。 -UDP输入错误 为‘udbie’
的数字。 - NET-网络层的网络统计数据
-
‘网络’
表示网络层 ,负责处理Internet协议,包括IPv4和IPv6。 -网络接口接收的IP包数 。(‘ipi’
) -接口传出的IP包数 。(‘IPO’
) -转发到其他接口的IP包数 。(‘ipfrw’
) -IP包发送量 。(‘deliv’
) -最后两个条目是网络接口接收和发送的ICMP数据包数 。 - 以下行表示每个活动的网络接口。
-第一个值是网络接口的名称 ,如
‘wlp19s0’
。 -以下两个包是通过特定接口接收和发送的 包的数量。(‘PCKI’
和‘PCKO’
) -网速 ,单位为兆比特(Mbps),单位为‘sp’
。 -每秒接收和发送比特 的** 速率** 。(‘是’‘和’‘所以’‘) -**收发报文中** 错误数** (
‘Erri’和
‘Erro’)。 -后两个值均为**丢包量** 。(
‘drpi’和
‘drpo’`)
对TOOP命令顶部面板的解释到此结束。
每个进程的系统资源
值得注意的是,‘top’
命令中的值在一定的时间间隔后不断更新。
‘atop’
命令的常规输出显示每个进程条目的以下详细信息:
- PID --** 进程ID** 。
- SYSCPU -进程在** 系统处理过程中的** CPU消耗** 。**
- USRCPU -进程在** 用户模式下运行时的** CPU消耗** 。**
- VGROW -进程自** 上次** 值** 更新** 以来** 占用的** 虚拟内存量** 。
- RGROW -自上次值更新以来增长的** 常驻(物理)内存量** 。
- RDDSK -读取磁盘时传输的** 数据** 的大小。
- WRDSK -在** 磁盘写入** 过程中传输的** 数据** 大小。
- RUID -进程执行时使用的** 真实用户ID** 。
- EUID -流程执行的** 有效用户ID** 。
- ST -进程当前的** 状态** 。
- exc -进程终止后的** 退出码**
- THR -进程内的** 线程数** 。
- S -进程的** 主线程** 当前的** 状态** 。
- CPU -整个进程的** CPU使用率** 。
- CMD -进程名称** 。
在此通用输出中,进程根据CPU利用率百分比进行排序。正如我们所看到的,在这个特定的输出中,我们获得了每种类型的系统资源的少量信息。
让我们尝试研究每种类型的系统资源的进程级信息。
top命令基于内存的输出
‘top’
命令提供了研究系统中运行的每个进程的内存消耗的机会。我们可以通过运行以下命令来实现此目的:
1atop -m
正如我们所看到的,即使我们添加了内存选项‘-m’
,顶部面板也保持不变。现在让我们了解每个流程条目的列。
- PID --** 进程ID** 。
- TID -** 线程ID** 。
- MINFLT -通过从空闲页面访问数据来解决的** 小页面错误数** 。
- MAJFLT -通过专门从磁盘取回数据来解决的** 主要页面错误数** 。
- VSTEXT -进程** 文本** 占用的** 虚拟内存** 。
- VSLIBS -进程的** 共享库** 占用的** 虚拟内存** 。
- VDATA -进程的** 私有数据** 的** 虚拟内存** 大小。
- VSTACK -进程的** 私有堆栈** 的** 虚拟内存** 大小。
- VSIZE -进程的** 总虚拟内存** 大小。
- RSIZE -进程占用的** 总驻留内存** 。
- MEM -进程消耗的** 内存百分比** 。
这些进程是根据‘’MEM‘’列进行排序的。
由于
‘atop’
在某种程度上是一个交互式命令实用程序,我们可以从其内部更改列。我们所要做的就是在特定选项显示信息时键入该选项。例如,在终端运行
‘topop’
后,只需输入‘m’
即可切换到内存特定的输出。
Linux下使用ATOM命令输出特定于磁盘的输出
要提取与磁盘利用率相关的信息,可以使用‘-d’
选项和‘topop’
命令。
1atop -d
在特定于磁盘的输出中没有太多需要注意的东西。其中一些主要发现是:
- RDDSK -读取磁盘时传输的** 数据** 的大小。
- WRDSK -在** 磁盘写入** 过程中传输的** 数据** 大小。
- WCANCL --最初** 写入** ,后来** 撤回** 的** 数据大小
- dsk --** 磁盘* ** 占用的** 百分比** 。
- CMD -进程的** 名称** 。
必须注意的是,进程是根据DSK
列进行排序的。
使用TOOP命令查找后台运行的命令
这为我们提供了作为命令行输出格式的进程在后台运行的命令。
1atop -c
如果复制粘贴命令行列下的行,则可以重新运行相同的进程。该输出准确地告诉我们在后台运行了什么命令来启动该进程。
基于线程的信息
除了检查进程信息之外,atop
命令还提供了检查特定于线程的资源利用率的功能。要访问此输出,我们可以运行以下命令:
1atop -y
或者,当该命令已经在显示系统资源信息时,只需按`y‘’键。
很明显,所有系统资源列都没有更改。所有添加的都是它们各自进程的线程数。
其他信息
使用`‘top’‘命令可以提取多种类型的信息。其中一些有用的方法包括:
1.查找流程开始时间
使用‘-v’
选项,我们可以获得进程特征。
1atop -v
2.系统中每个用户的进程数
1atop -au
3.进程运行在哪个核上?
这种特定类型的信息属于进程的调度特性。它可以通过使用-s
选项访问。
1atop -s
几个‘顶端’小把戏
下面是一些可能有用的‘’top‘’命令技巧:
- 暂停
‘顶端’
屏幕-使用‘z’
键。 - 更改值更新的时间间隔-使用``i‘`键,后跟秒数,我们希望将其更改为。
- 中断以立即更新值-使用
‘t’
键。 - 退出显示-使用
‘q’
键。
结论
我们知道,对于任何Linux用户来说,‘top’
命令都太难处理了。学习这一卓越的命令需要耐心和毅力。如有任何疑问,请随时在评论区联系我们。