我已经在Debian上配置了一个简单的LAMP堆栈,而且我在Apache服务器上遇到了一些问题。
每3-4个小时,web服务器就会进入一个死锁和所有访问数据库块的请求。服务器正在为每个请求创建一个新的子服务器。进程的数量增长很快。几秒钟后,Monit注意到出了问题,重新启动了Apache服务器。
我怀疑这个问题是由PHP处理数据库连接池的方式产生的,因为服务器仍然能够响应静态内容请求。你经历过这种行为吗?我该怎么做?
更新:问题解决了。使用APC进行操作码缓存和用户数据似乎是个坏主意。我现在使用Memcache存储用户数据,APC只用于代码。我仍然不时地收到一些分割错误,但是服务器大部分时间是稳定的。
发布于 2008-11-23 22:02:33
我怀疑问题是:
这两件事合谋导致了你所看到的问题。它们都需要修复,因为它们可能单独造成问题。
这完全是基于猜测和经验。
发布于 2008-11-23 21:40:21
为什么不看看日志呢?/var/log/apache2/*是个很好的起点。在服务器死前请求什么?从那以后,你可能可以推断出出了什么问题。默认情况下,当php脚本在30秒后终止时,需要相当大的错误才能导致类似的情况。
发布于 2008-11-23 21:47:54
检查/etc/apache2/apache2.conf中的超时设置,我已经看到了类似的问题,当超时设置得很高时,系统会被一堆丢弃的连接击中。
https://stackoverflow.com/questions/312983
复制相似问题