Linux系统的atop监控工具
概述
本文主要介绍Linux系统的atop监控工具的使用方法。
详细信息
atop就是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,可获取相应的atop日志文件进行分析。
安装atop
atop通常在系统默认的下载源中,可以通过如下命令安装atop。
说明:CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?。
- CentOS系统执行如下命令。
yum install atop -y
系统显示类似如下。
- Ubuntu系统执行如下命令。
apt-get install atop -y
启动atop
- atop在安装完毕后,可以使用
/etc/init.d/atop
文件进行管理,执行如下命令,启动atop服务。service atop start
系统显示类似如下。
说明:在CentOS7及以上系统中,使用如上命令启动服务时,会发现系统自动将命令重定向为
systemctl start atop
。 - 启动atop服务之后,执行如下命令,可以看到atop服务在后台运行,并且将数据写入指定目录。
ps -eaf|grep atop
系统显示类似如下。
配置atop
atop安装完毕后,有几个重要的配置文件和目录,通常默认路径为如下3个路径。
/etc/sysconfig/atop
:atop配置文件,主要用于调整atop监控周期,默认600s采集一次数据,如下图所示。
/etc/cron.d/atop
:atop的定时任务文件,内容如下图所示。/var/log/atop
:用于存放atop监控日志文件的目录,atop在启动之后,会将采集记录存放在/
var/log/atop
目录,执行如下命令,查看日志文件。atop -r /var/log/atop/atop_20161227
分析atop
atop常用指令如下所示。
- c:按照进程CPU使用率进行降序筛选。
- m:按照进程内存使用率进行降序筛选。
- d:按照进程磁盘使用率进行降序筛选。
- a:按照进程资源综合使用率进行降序筛选。
- n:按照进程网络使用率进行降序筛选,需要额外安装内核模块才支持,默认不支持。
- t:跳转到下一个监控采集点。
- T:跳转到上一个监控采集点。
- B:指定时间点,格式为hh:mm:ss。
测试示例
服务器偶尔会出现IO不稳定,需要定位到具体原因。
- 通过安装部署atop,将采集间隔适当缩短周期,监控一段时间后,当监控出现异常时,通过分析atop采集的日志发现问题为MySQL导致。
- 进一步通过分析对应时间点MySQL的Binlog日志以及error.log日志文件进行问题定位。
系统资源监控字段含义
上图中列出了部分字段以及数值,每个字段的含义都是相对采样周期而言,各字段的含义如下所示。
- ATOP列:显示了主机名、信息采样日期和时间点。
- PRC列:显示进程整体运行情况。
- sys、user字段:分别代表进程在内核态和用户态的运行时间。
- #proc字段:代表进程总数。
- #zombie字段:代表僵死进程的数量。
- #exit字段:代表atop采样周期期间退出的进程数量。
- CPU列:显示CPU整体的使用情况,即多核CPU作为一个整体CPU资源的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态,空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲。
- sys、user字段:CPU在用于处理进程时,进程在内核态、用户态所占CPU的时间比例。
- irq字段:CPU用于处理中断的时间比例。
- idle字段:CPU处在完全空闲状态的时间比例。
- wait字段:CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例。
说明:CPU列各个字段指示值相加结果为N00%,其中N为CPU的核数。
- cpu列:显示某一核CPU的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%。
- 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字段:磁盘忙时比例。
- read、write字段:分别代表读、写请求数量。
- NET列:多列NET展示了网络状况,包括传输层TCP和UDP、IP层以及各活动的网口信息。
- XXXi字段:各层或活动网口收包数目。
- XXXo字段:各层或活动网口发包数目。
适用于
- 云服务器ECS
版权声明:
作者:admin
链接:http://blog.mryxh.cn/2204.html
文章版权归作者所有,未经允许请勿转载。
THE END