如何使用atop监控工具
使用场景
atop 是一款用于监控 Linux 系统资源与进程的工具,能够报告所有进程的活动。其以一定的频率记录系统和进程活动,采集的数据包含 CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中。对于每个进程,会显示 CPU 使用率、内存增长、磁盘使用率、优先级、用户名、状态和退出码等。当 ECS 实例出现问题后,您可以获取相应的 atop 日志文件进行分析。
安装过程
sudo yum install atop
安装成功后,进入 atop 配置目录编辑变量
vim /etc/sysconfig/atop
其中
LOGINTERVAL:监控周期,建议将默认的监控周期 600s 修改为 30s。
LOGGENERATIONS:日志保留时间,为避免 atop 长时间运行占用太多磁盘空间,建议将默认的日志保留时间 28 天修改为 7 天。
1 | LOGOPTS="" |
键入: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:各层或活动网口发送包大小。 |