引言缓存
Linux以其稳定性,愈来愈多地被用做服务器的操做系统(固然,有人会较真地说一句:Linux只是操做系统内核:)。但使用了Linux做为底层的操做系统,是否咱们就能保证咱们的服务作到7*24地稳定呢?非也,要知道业务功能是由系统上跑的程序实现的,要实现业务功能的稳定性,选择Linux只是迈出的第一步,咱们更多地工做是不让业务程序成为稳定性的短板。服务器
当咱们的服务器出现问题的时候,外在的表现是业务功能不能正常提供,内在的缘由,从程序的角度看,多是业务程序的问题(程序自身的bug),也多是服务器上人为的误操做(不当地执行脚本或命令);从系统资源的角度看,多是CPU抢占、内存泄漏、磁盘IO读写异常、网络异常等。出现问题后,面对各类各样可能的缘由,咱们应如何着手进行分析?咱们有什么工具进行问题定位吗?网络
atop简介工具
本文要介绍的atop就是一款用于监控Linux系统资源与进程的工具,它以必定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用状况和进程运行状况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,咱们可获取相应的atop日志文件进行分析。atop是一款开源软件,咱们能够从这里得到其源码和rpm安装包。spa
atop使用方法操作系统
在安装atop以后,咱们在命令行下敲入”atop"命令便可看到系统当前的运行状况:命令行
安装:yum install atop日志
系统资源监控字段含义code
上图中列出了很多字段以及数值,各字段的含义是什么?咱们应该怎么看?以上每一个字段的含义都是相对采样周期而言的,下面咱们先来关注上图显示的上半部分。orm
ATOP列:该列显示了主机名、信息采样日期和时间点
PRC列:该列显示进程总体运行状况
CPU列:该列显示CPU总体(即多核CPU做为一个总体CPU资源)的使用状况,咱们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO致使CPU空闲,另外一种是彻底空闲)
CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。
cpu列:该列显示某一核cpu的使用状况,各字段含义可参照CPU列,各字段值相加结果为100%
CPL列:该列显示CPU负载状况
MEM列:该列指示内存的使用状况
SWP列:该列指示交换空间的使用状况
PAG列:该列指示虚拟内存分页状况
swin、swout字段:换入和换出内存页数
DSK列:该列指示磁盘使用状况,每个磁盘设备对应一列,若是有sdb设备,那么增多一列DSK信息
NET列:多列NET展现了网络情况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息
进程视图
为了更全面地展现进程信息,atop提供了多种进程视图。
默认视图(Generic information)
进入atop信息界面,咱们看到的就是进程信息的默认视图(上图下半部分),按g键能够从其余视图跳到默认视图。
内存视图(Memory consumption)
内存视图展现了进程使用内存状况,按m键可进入内存视图。
上图下半部分展现了每一个进程占用的虚拟内存空间(VSIZE)、内存空间(RSIZE)大小,以及在上一个采样周期中虚拟内存和物理内存增加大小(VGROW、RGROW),MEM列指示进程所占物理内存大小。
从上图的PAG列的信息,咱们能够知道此时系统内存负载较高,出现页换出状况,从进程视图中VGROW和RGROW列可看出VirtualBox进程占用内存量大量增加,部分进程占用的内存减小(VGROW或RGROW字段为负值),为VirtualBox进程腾出空间。
命令视图(Command line)
按c键咱们能够进入命令视图,该视图展现了与每一个进程相对应的命令。
有时咱们某位“马大哈”同事执行了某个脚本或命令,使得系统资源占用率异常飙高,这时,咱们能够很容易地经过atop的命令视图找到致使异常的命令。
atop日志
每一个时间点采样页面组合起来就造成了一个atop日志文件,咱们可使用"atop -r XXX"命令对日志文件进行查看。那以什么形式保存atop日志文件呢?
对于atop日志文件的保存方式,咱们能够这样:
其实atop开发者已经提供了以上日志保存方式,相应的atop.daily脚本能够在源码目录下找到。在atop.daily脚本中,咱们能够经过修改INTERVAL变量改变atop信息采样周期(默认为10分钟);经过修改如下命令中的数值改变日志保存天数(默认为28天):
(sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \; )&
最后,咱们修改cron文件,天天凌晨执行atop.daily脚本:
0 0 * * * root /etc/cron.daily/atop.daily
小结
本文对Linux系统资源及进程监控工具atop进行了介绍,对atop所记录信息中的部分字段的含义以及进程视图进行了分析,最后讲述了atop日志文件的保存方式。
atop工具会根据终端界面的大小调整所显示的字段,所以你使用atop时看到的部分字段可能与以上截图不相同。