由于本人近日在阿里云购买了服务器想玩下,部署了代码并在服务器上运行,但是总是报“内核已死”,服务器内存饱满然后直接中断了代码,所以找到了阿里云的售后服务,他提示了我可以释放内存和安装atop监控,所以在此分享下这个atop方法,希望有助于码农们。
详细信息
atop就是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,可获取相应的atop日志文件进行分析。
安装atop
- 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采集一次数据。
- /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日志文件进行问题定位。
如果有帮助请给个小心心,如果有什么不足的地方也请大神指教,谢谢啦