Apache 在一段时间后变得无法连接?

Apache 在一段时间后变得无法连接?

大约 20 分钟后,我的 Apache 服务器似乎无法连接。所谓无法连接,是指如果我访问curl任何页面,2-3 分钟内什么都没有,然后什么都没有显示出来。我不得不重新启动 Apache 才能使用。实际的盒子本身似乎很好,因为我总是通过 SSH 登录……所以我认为这只是 Apache 的问题。

在停止/启动 Apache 服务器约 3-5 分钟后,内存使用情况会出现以下变化:

一秒钟后它是:

                                          CPU  MEM
21997 root      20   0  459m 208m 8504 R  45.8 20.8  10:14.56 apache2        

下一个:

21997 root      20   0  459m 208m 8504 S   8.8 20.8  10:37.37 apache2        

因此,一秒钟 CPU 占用率为 40%,内存占用率为 20%

只有 2-3 个小型网站使用 PHP,所以它们不可能消耗那么多内存。我想知道为什么会发生这种情况?!

我的 Apache (prefork) 配置是:

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

服务器版本:Apache/2.2.22(Debian)

在 Debian Wheezy 上使用libapache2-mod-php5

我知道mod_php这可能不是最有效的,并且可能有更好的替代方案,例如php-fpm,和/或使用nginx,但我想真正找到问题的根源,而不是避免它。

如果有任何建议我将非常感激。

我认为 apache2 的配置是原有的。使用 DigitalOcean VPS,1GB 内存 / 30 GB SSD / 2TB 传输层。

编辑#1:我刚刚读了一些 Linode 优化文章,其中提到了KeepAlive在低内存服务器上关闭。我要尝试一下,看看效果如何。

Apache - 保持活动还是不保持活动?

答案1

您检查过您的日志吗?access.log 和 error.log?

相关内容