如何使用atop监控工具

使用场景

atop 是一款用于监控 Linux 系统资源与进程的工具,能够报告所有进程的活动。其以一定的频率记录系统和进程活动,采集的数据包含 CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中。对于每个进程,会显示 CPU 使用率、内存增长、磁盘使用率、优先级、用户名、状态和退出码等。当 ECS 实例出现问题后,您可以获取相应的 atop 日志文件进行分析。

安装过程

sudo yum install atop
安装成功后,进入 atop 配置目录编辑变量
vim /etc/sysconfig/atop
其中
LOGINTERVAL:监控周期,建议将默认的监控周期 600s 修改为 30s。
LOGGENERATIONS:日志保留时间,为避免 atop 长时间运行占用太多磁盘空间,建议将默认的日志保留时间 28 天修改为 7 天。

1
2
3
4
LOGOPTS=""
LOGINTERVAL=30
LOGGENERATIONS=7
LOGPATH=/var/log/atop

键入:wq 保存退出
atop -u
激活 atop 监控
假设需要激活网络监控,则需要 netatop 模块,这里安装 3.1 版本,也是支持 Centos7 的最后一个版本,也相对较稳定。
sudo apt install zlib1g-dev
执行如下命令,继续下载 netatop 安装包。
sudo wget [https://www.atoptool.nl/download/netatop-3.1.tar.gz](https://www.atoptool.nl/download/netatop-3.1.tar.gz) --no-check-certificate
开始解压,并进入目录
tar -zxvf netatop-3.1.tar.gz
编译与安装
sudo make && sudo make install
假设编译失败,出现了[Module]: /lib/modules/3.10.0-693.11.1.el7.x86_64/一般是开发包没有安装就绪,继续安装模块开发包(注意包头和模块库必须和内核相同)
sudo yum install kernel-devel-uname -r``安装过程中,如果在源中找不到需要的模块开发包,请到以下地址下载:
https://www.central.org/dl/linuxdev/centos7/x86_64/
https://mirror.netcologne.de/oracle-linux-repos/ol7_latest/getPackage/
例如,要安装 3.10.0-693.11.1.el7.x86_64,请运行以下命令:rpm -ivh kernel-devel-3.10.0-693.11.1.el7.x86_64.rpm最后别忘记服务启动sudo systemctl start netatop
atop -n

后注

筛选指引

c 按照进程 CPU 使用率进行降序筛选。
m 按照进程内存使用率进行降序筛选。
d 按照进程磁盘使用率进行降序筛选。
a 按照进程资源综合使用率进行降序筛选。
n 按照进程网络使用率进行降序筛选。
t 跳转到下一个监控采集点。
T 跳转到上一个监控采集点。
b 指定时间点,格式为 YYYYMMDDhhmm。

参数说明

ATOP 行 主机名、信息采样日期和时间点。
PRC 行 进程整体运行情况。
  • sys、user:分别代表进程在内核态和用户态的运行时间。
  • #proc:进程总数。
  • #trun:处于 running 状态进程数。
  • #tslpi:处于 sleeping interruptible 状态的进程数。
  • #tslpu:处于 sleeping uninterruptible 状态的进程数。
  • #zombie:僵死进程的数量。
  • #exit:atop 采样周期内退出的进程数。
    |
    | CPU 行 | CPU 整体的使用情况,即多核 CPU 作为一个整体 CPU 资源的使用情况。CPU 行各个字段数字相加结果为 N*100%,其中 N 为 CPU 的核数。
  • sys、user:CPU 在用于处理进程时,进程在内核态及用户态所占 CPU 的时间比例。
  • irq:CPU 用于处理中断的时间比例。
  • idle:CPU 处在完全空闲状态的时间比例。
  • wait:CPU 处在进程等待磁盘 IO 导致 CPU 空闲状态的时间比例。
    |
    | CPL 行 | CPU 负载情况。
  • avg1、avg5 和 avg15:分别代表过去 1 分钟、5 分钟和 15 分钟内运行队列中的平均进程数量。
  • csw:上下文切换次数。
  • intr:中断发生次数。
    |
    | MEM 行 | 内存的使用情况。
  • tot:物理内存总量。
  • free:空闲内存的大小。
  • cache:用于页缓存的内存大小。
  • buff:用于文件缓存的内存大小。
  • slab:系统内核占用的内存大小。
    |
    | SWP 行 | 交换空间的使用情况。
  • tot:交换区总量。
  • free:空闲交换空间大小。
    |
    | PAG 行 | 虚拟内存分页情况。
    swin、swout:分别代表换入和换出内存页数。 |
    | DSK 行 | 磁盘使用情况,每一个磁盘设备对应一列,如果有 vdb 设备,那么将会增加一行 DSK 信息。
  • vda:磁盘设备标识。
  • busy:磁盘处于 busy 状态的时间比例。
  • read、write:分别代表读、写请求数量。
    |
    | NET 行 | 多列 NET 展示了网络状况,包括传输层 TCP 和 UDP、IP 层以及各活动的网口信息。
  • ****i:各层或活动网口接手包大小。
  • ****o:各层或活动网口发送包大小。
    |
作者

Catooilg

发布于

2023-05-16

更新于

2023-10-15

许可协议

评论