9月15日晚上23时许,USTC Blog 服务再次发生 OOM Kill,数据库进程被杀掉,导致 blog 首页显示 “0 users”,无法登录,用户博客也无法显示。

事实上,早在21:30,21:50,22:15,就已三次发生 OOM Kill。不知道为什么,monit 没有发送报警邮件。监控基本服务可用性的 servmon 由于依赖数据库,也挂掉了。因此直到16日上午 zguangyu 给 boj 打电话这事才被知道。解决方法很简单,启动 mysqld 服务,重启 php-sandbox 服务。

统计 nginx access log,每分钟的 HTTP 访问数大多在 100 以下,没有 DDoS 攻击的迹象。不过一个奇特的 IP 202.194.3.59(山东大学)很奇怪,它大量访问形如 http://lttt.blog.ustc.edu.cn/feed/p2.ajax?p2ajax=true&action=get_latest_posts&load_time=2013-09-13%2002:47:50&frontpage=0&vp=&vp=2199&_=1378861410811/wp-admin/install.php 的URL,结果是一个空页面。分析结果出来后再更新。

由于 blog 近期多次发生 OOM Kill,我们做了如下调整:

  1. 停止 blog 上占用资源较多的 BIND9 服务,换用轻量级的 DNSmasq(其实相当于把负载转移到学校DNS上了)。
  2. 调整 php-fpm.conf,最大 PHP 线程数 max_children 由 200 降低到 50。
  3. 将 servmon HTTP 监控服务迁移到 lug 服务器上。