Linux中的ap命令教程

时间:2020-02-23 14:37:39  来源:igfitidea点击:

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"键。