Linux中的ap命令教程
atop命令是用于监视Linux中的系统资源的工具。
它在进程级别显示大量信息,这些信息与系统资源上的负载量有关。
如果掌握了该实用程序,对用户可能会有无限的好处。
首先,我们必须在系统上安装atop命令。
Debian/Ubuntu用户可以通过以下方式进行操作:
sudo apt install atop
其他Linux用户可以使用其标准软件包管理器,后跟关键字"'atop'""。
此命令具有显示与系统有关的多个机密信息的能力。
为了防止任何数据抽象,我们可以使用'sudo su'或者'sudo -s'获得更高的访问权限。
我们有关于sudo的完整文档。
atop命令的基本输出
要显示系统资源的所有进程级使用,我们只需在终端中运行'atop'即可。
atop
如我们所见,整个布局分为两个面板。
上方的面板提供了系统资源的累积使用,而下方的面板则显示了每个进程的分解信息。
让我们看看每个
atop命令的累积统计信息
此视图中的每个条目都集中在特定的系统资源上。
1.与进程有关的统计
PRC –代表"进程"。
前两个值是" sys"(系统)和" user"进程消耗的时间。其后是进程总数" #proc"。
下一个值是系统中当前正在运行的线程数。
('#trun'
)" #tslpi"表示当前正在休眠和可中断的线程数。
" #tslpu"表示当前正在休眠且不可中断的线程数。
以下值为僵尸进程数。
接下来是克隆系统调用的数量。
最后一个值是在经过的时间内结束的进程数。
('#exit'
)
2.与效率有关的统计
CPU –与CPU利用率有关。
前两个值显示系统和用户进程所有内核的利用率百分比。用于中断请求的CPU百分比。
('irq'
)下一个值是所有组合内核的空闲百分比。
以下值表示每个CPU内核必须等待的时间。
接下来是偷时间的百分比。
" guest"表示来宾百分比,即在其他虚拟机上花费的CPU时间。
最后两个值指示CPU的当前频率。
现在," atop"会独立显示每个内核的上述统计信息。
CPL –称为CPU负载。
前三个值是不同时间段(1、5和15分钟)的平均负载。紧随其后的是上下文切换次数(
'csw'
)接下来是中断数(
'intr'
)最后一个值是可用CPU的数量。
3.内存相关统计
MEM –内存利用率支持的总物理内存。
内存当前可用。
当前缓存。
"缓冲区"中的" buff"是文件系统元数据中消耗的内存量。
内核的内存分配的内存总和显示为'slab'。
共享内存量。
SWP –交换内存。
3.磁盘相关统计
DSK –磁盘使用率第一个值表示系统忙于处理请求的时间百分比。
发出了阅读请求。
发出书面要求。
每个读取请求读取数据的速率(以KB为单位)。
每个写入请求写入数据的速率(以KB为单位)。
接下来的两个值是磁盘上的读写时间率,以兆字节为单位。
最后一个值是处理请求所花费的平均毫秒数。
4.与网络有关的统计
NET –传输层"传输"中的网络统计信息表示网络中的传输层,它处理数据协议。
系统遵循TCP协议接收的段数。
('tcpi'
)传输的段数。
('tcpo'
)UCP协议的类似统计信息。
(对于UDP输入而言为''udpi')和(对于UDP输出而言为''udpo'
对于UDP输出)。" tcpao"是活动的TCP打开连接的数量。
与先前的" tcppo"相对的是被动TCP连接的数量,但仍处于打开状态。
TCP重传的数字为" tcprs"。
UDP输入错误的数字为" udpie"。
NET –网络层的网络统计信息"网络"表示网络层,它处理Internet协议,IPv4和IPv6的组合。
网络接口接收到的IP数据包的数量。
('ipi'
)从接口发送出去的IP报文数。
('ipo'
)转发到其他接口的IP数据包的数量。
('ipfrw'
)传送的IP数据包的数量。
('deliv'
)最后两个条目是网络接口接收和发送的ICMP数据包的数量。
下面的行引用每个活动的网络接口。
第一个值是网络接口的名称,例如" wlp19s0"。以下两个数据包是通过特定接口接收和传输的数据包的数量。
('pcki'
和'pcko'
)网络速度,以兆位(Mbps)为" sp"。
每秒接收和发送位的速率。
(" si"和" so")接收和发送的数据包中的错误数。
(erri
和'erro'
)。最后两个值都是两种方式丢弃的数据包。
('drpi'
和'drpo'
)
到此结束对atop命令顶部面板的说明。
每个进程
值得注意的是," atop"命令中的值在一定时间间隔后会不断更新。
" atop"命令的通用输出为每个进程条目显示以下详细信息:
PID –进程ID。
SYSCPU –系统处理进程中进程消耗的CPU数量。
USRCPU –进程在用户模式下运行期间消耗的CPU数量。
VGROW –自上次值更新以来,该进程已占用的虚拟内存量。
RGROW –自上次值更新以来增长的常驻(物理)内存量。
RDDSK –磁盘读取期间传输的数据大小。
WRDSK –磁盘写入期间传输的数据大小。
RUID –执行进程所依据的真实用户ID。
EUID –执行进程所依据的有效用户ID。
ST –进程的当前状态。
EXC –进程终止后的退出代码
THR –进程中的线程数。
S –进程主线程的当前状态。
CPU –整个进程的CPU利用率百分比。
CMD –进程的名称。
在此通用输出中,将根据CPU利用率百分比对进程进行排序。
如我们所见,在此特定输出中,对于每种类型的系统资源,我们获取的信息量很少。
让我们尝试研究每种系统资源的进程级信息。
atop命令的基于内存的输出
" atop"命令提供了研究系统中运行的每个进程的内存消耗的机会。
我们可以这样运行:
atop -m </code>
基于内存的输出
如我们所见,即使我们添加了内存选项"'-m'",顶部面板也保持不变。
现在让我们了解每个进程条目的列。
PID –进程ID。
TID –线程ID。
MINFLT –通过访问空闲页面中的数据已解决的次要页面错误数。
MAJFLT –通过特别从磁盘检索数据已解决的主要页面错误数。
VSTEXT –进程文本占用的虚拟内存。
VSLIBS –进程的共享库占用的虚拟内存。
VDATA –进程专用数据的虚拟内存大小。
VSTACK –进程专用堆栈的虚拟内存大小。
VSIZE –进程的总虚拟内存大小。
RSIZE –进程占用的总驻留内存。
MEM –进程消耗的内存百分比。
相对于" MEM"列对进程进行排序。
在Linux中使用atom命令的磁盘特定输出
为了提取与磁盘利用率有关的信息,我们可以使用'-d'选项和'atop'命令。
atop -d
磁盘特定的输出
在特定于磁盘的输出中没有太多需要注意的东西。
一些主要发现是:
RDDSK –磁盘读取期间传输的数据大小。
WRDSK –磁盘写入期间传输的数据大小。
WCANCL –最初写入但后来撤回的数据大小
DSK –磁盘占用百分比。
CMD –进程的名称。
必须注意的是,这些进程是基于"'DSK'"列进行排序的。
使用atop命令查找在后台运行的命令
这为我们提供了作为命令行输出格式在后台运行的命令。
atop -c
每个进程的命令行
如果将命令行行下的行复制粘贴,则可以重新运行相同的进程。
此输出准确地告诉我们在后台运行了什么命令来启动该进程。
基于线程的信息
" atop"命令不仅可以检查进程信息,还可以检查特定于线程的资源利用率。
要访问此输出,我们可以运行:
atop -y
或者在命令已经显示系统资源信息时按" y"键。
特定于线程的输出
显然,系统资源列均未更改。
添加的只是它们各自进程的线程计数。
杂项信息
使用" atop"命令可以提取多种信息。
一些有用的是:
1.查找进程开始时间
使用'-v'选项,我们可以获得进程特征。
atop -v
进程开始时间
2.系统中每个用户的进程数
atop -au
基于用户的进程
3.进程在哪个核心上工作?
这种特定类型的信息属于进程的调度特性。
可以使用'-s'选项进行访问。
atop -s
每个进程的核心编号
atop技巧
有一些" atop"命令技巧可能有用:
使用" z"键暂停" atop"屏幕。
更改值更新的时间间隔–我们希望使用" i"键和秒数来更改它。
中断以立即更新值-使用"'t'"键。
退出显示–使用" q"键。