我们有一个运行Ubuntu 12.04的中型EC2实例 ,通过Apache为十几个小型PHP Web应用程序提供服务。
大约每隔一天,服务器就变得无响应,重新启动实例需要恢复function。 在此期间,无法通过HTTP或SSH访问服务器。
每一次,最后一次logging的Apache请求都是给一个4MB的PDF文档的PHP应用程序。 用户代理始终将客户端标识为iPad(特别是Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 ) IP地址,因此可能是同一个用户。
PHP应用程序是一个传统的应用程序,并在将文件的内容从磁盘回传给客户端之前检查一些权限。 我们无法自己重现这个问题,无论是使用iPad还是通过其他方式访问文件。
我们已经尝试了一些监控解决scheme来尝试更好地了解服务器closures时发生的情况,但是没有一个显示出任何系统资源问题。
我的问题是我们可以使用哪些策略来尝试排除故障并希望解决此问题?
通过监视系统资源(CPU负载,内存,磁盘)启动,例如使用collectd或sysstat。
请记住,我在这里出去,你描述的问题可能是由于资源耗尽(很可能是内存),运行egrep -i 'killed process' /var/log/*来寻找OOM杀手调用。
系统日志可能包含原因的痕迹( /var/log/messages ,apache的错误日志)。
尝试启用更详细的日志,并在testing时密切关注您的系统。