首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复Apache的不稳定性?

如何修复Apache的不稳定性?
EN

Stack Overflow用户
提问于 2008-11-23 21:28:31
回答 4查看 664关注 0票数 0

我已经在Debian上配置了一个简单的LAMP堆栈,而且我在Apache服务器上遇到了一些问题。

每3-4个小时,web服务器就会进入一个死锁和所有访问数据库块的请求。服务器正在为每个请求创建一个新的子服务器。进程的数量增长很快。几秒钟后,Monit注意到出了问题,重新启动了Apache服务器。

我怀疑这个问题是由PHP处理数据库连接池的方式产生的,因为服务器仍然能够响应静态内容请求。你经历过这种行为吗?我该怎么做?

更新:问题解决了。使用APC进行操作码缓存和用户数据似乎是个坏主意。我现在使用Memcache存储用户数据,APC只用于代码。我仍然不时地收到一些分割错误,但是服务器大部分时间是稳定的。

EN

回答 4

Stack Overflow用户

发布于 2008-11-23 22:02:33

我怀疑问题是:

  • 是一个困难的长时间运行的数据库查询,它阻止进一步的请求.如果您使用的是只具有表级锁定的MySQL MyISAM引擎,并且读取器可以很容易地阻止写入器,反之亦然,那么在数据库等待I/O时,用户表这样一个复杂的查询几乎可以阻塞整个服务器--您通常可以通过使用"SHOW PROCESSLIST“或一个为您这样做的工具来诊断这一点。
  • 已经将MaxClients设置得对预叉服务器上可用的RAM来说太高了--几乎每个人都这样做。如果您使用的是"fat“预叉Apache (例如,使用进程内PHP),那么不要将MaxClients设置得比有足够的ram更高。这可能比100或150的典型值少得多。

这两件事合谋导致了你所看到的问题。它们都需要修复,因为它们可能单独造成问题。

这完全是基于猜测和经验。

票数 3
EN

Stack Overflow用户

发布于 2008-11-23 21:40:21

为什么不看看日志呢?/var/log/apache2/*是个很好的起点。在服务器死前请求什么?从那以后,你可能可以推断出出了什么问题。默认情况下,当php脚本在30秒后终止时,需要相当大的错误才能导致类似的情况。

票数 1
EN

Stack Overflow用户

发布于 2008-11-23 21:47:54

检查/etc/apache2/apache2.conf中的超时设置,我已经看到了类似的问题,当超时设置得很高时,系统会被一堆丢弃的连接击中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/312983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档