很不幸机器最近1周一台跑了3年多的机器挂了两次.为了过好5/1决定好好检查一下情况,不幸的是到目前为止还是没有确认最终的因素.
1.检查案发时间:通过cacti的记录,发现机器发生不幸发生在0点到2点之间.这个时间段是后台定时任务运行的高发期.
2.判断一:夜间机器后台任务太过集中,机器load太高,机器年久老化导致机器不堪重负
3.措施: 排查所有crontab中的任务,注释了其中有可以有计算压力太大的任务.把nagios的load报警设到5以下.
4.结果: 不幸在第二次发生.
5.查询日志: 发现在案发时间的日志中记录有关 oom-killer (out of memory)的记录.难道是这个做怪?有关oom请移步http://www.aikaiyuan.com/7424.html. 看了一下本机的内存.发现没有swap分区(当年装机的同事为了提高工作效率) . 再次观察cacti中的内存趋势.内存第天基本没有free. 细看一下crotab中的任务.发现每天2点左右确实有一个吃内存的awstats有跑着.
6.措施: 添加swap别让oom-killer 工作了.
7.添加SWAP:
7.1: 设置swap路径及大小: dd if=/dev/zero of=/var/swap bs=1024 count=8192000 (内存4G,swap习惯设为其2倍)
7.2: 设置交换文件: mkswap /var/swap
7.3: 启用交换分区: swapon /var/swap
7.4: 开机自挂: 在/etc/fstab中加上这一行 /var/swap swap swap defaults 0 0
8: 先到这儿吧,让他跑几天,查看日志看看问题解决情况,祝自己好运,能睡个好觉
转载请注明:爱开源 » oom-killer 的发现 与 swap分区搭建