Apache 上使用 SSL 后出现意外内存使用情况

Apache 上使用 SSL 后出现意外内存使用情况

我们最近将网站转换为https。在安装和测试证书后,我们在 .htaccess 中创建了 301 重定向。几天内一切正常,几乎没有明显的性能影响。

第三天或第四天我们遇到了OOM问题。在接下来的几天里,我们会看到同样的模式重复出现。大约在上午 9:15(当我们的服务器开始看到负载增加时),我们的内存使用量会逐渐增加,并且经常导致服务器关闭 memcached 或 mysql。这很难理解,因为我们会在当天晚些时候看到更大的使用量(根据谷歌分析),而没有任何问题。

Server Version: Apache/2.4.25 (Unix) OpenSSL/1.0.1e-fips mod_bwlimited/1.4 PHP/5.5.38
Server MPM: prefork
Start servers: 10
Min spare servers: 5
server limit: 256
max request workers: 256
max connections per child: 2500*
keep alive: on
keep alive timeout: 1

我降低了最大连接数,因为我们注意到在问题期间每个子进程的内存使用量似乎显著增加。每个htop子进程的每个 RES 通常为 25000k。在压力期间则超过 50000k。所以我想增加生成新子进程的频率。不清楚这是否有任何不同。

我们检查了所有cron工作,以确保在压力时期没有安排任何特殊工作。

添加是否ssl会显著增加内存使用量apache?为什么只在这个特定时间 - 甚至不在我们最繁忙的时间附近(尽管这可能是使用量增长最快的时间)。

更新。我们删除了 301 重定向,试图确定这是否是原因。果然,服务器今天处理了上午 9:30 的高峰,没有出现丝毫内存或 CPU 压力。所以我们仍然启用了 https - 但不确定我们的 http 和 https 工作负载目前有何不同。

更新 2. 根据要求重写

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

(最初有 301 重定向 - 但因解决内存问题而取消)

答案1

William,https 肯定会增加 Apache 提供网页方式的开销,这就是为什么我询问您是否启用了 http/2,因为 http/2 在处理 https 请求时效率更高……它也会使您的网站速度更快,而所需的性能定制更少。

一定要调查此事。

相关内容