问题 1:Apache 每天在特定时间 1 分钟内消耗超过 50% 的内存
我已经通过验证 apache 日志详细检查了这个问题,也检查了我的代码中的所有文件,但现在代码文件不存在问题,因为它全天候运行,但内存消耗时间是特定于一天的。
我也检查了 cron 时间,但没有同时执行 cron。
在这里,我还提供了有关 apache 服务器配置的详细信息,该配置已在 /etc/apache2/mods-available/mpm_prefork.conf 中设置
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
ServerLimit 128
MaxClients 128
MaxConnectionsPerChild 100
问题 2:随着时间的推移,服务器消耗了所有内存,需要在 24 小时内重新启动服务器
一旦服务器消耗了 xxxMB 的内存,它就无法释放该内存,当我们每 30 分钟检查一次时,可能会有 +/- 50MB 的波动,但在大多数情况下,它会顺利减少,并且在 24 小时内我们没有内存。
当我们尝试 top 或 htop 命令时,它只会在顶部列出 apache,因此我们只能知道 apache 消耗了更多内存,但无法确切知道现在哪个进程消耗了内存,而且似乎旧进程没有释放该内存。
供参考:
- 我已经在 ubuntu 16 上安装了 apache
- 该 Apache 服务器上运行着一个 PHP 网站
- 服务器有 2GB RAM,之前是 1 GB,但问题仍然没有解决。
- 一个月前,网站运行良好。这段时间内,我们没有对代码或服务器端进行任何重大更改,而且现在许多更改也已撤销,因此几乎与以前一样。上个月的在线用户数量也没有增加。
有人能帮助追踪并修复确切的问题吗?