在Apache上使用SSL之后意外的内存使用情况

我们最近将我们的网站转换为https 。 证书安装和testing之后,我们在.htaccess中创build了301redirect。 事情进展良好,几乎没有明显的性能影响。

第三天或第四天,我们遇到了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 

我降低了最大连接数,因为我们注意到在问题期间,每个孩子的内存使用量似乎大大增加了。 每个孩子的每个RES通常为25000k。 在压力期间,它超过50000K。 所以我有一个想法,我想增加新的孩subprocess产生的频率。 不清楚这是否有所作为。

我们已经检查了所有的cron工作,以确保在压力期间没有特别的计划。

添加ssl是否会为apache创build更多的mem用法? 为什么只在这个特定的时间 – 甚至不在我们最繁忙的时间附近(尽pipe可能是使用量增长最多的时间)。

更新。 我们删除了301redirect,试图明确地确定这是否是原因。 服务器确实已经处理了上午9点30分的繁忙事件,而没有显示出丝毫的内存或CPU负担。 所以我们仍然有https启用 – 但不知道我们的http与https工作负载如何不同atm。

更新2.按要求重写

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

(最初有301redirect – 但等待解决内存问题起飞)

William,https肯定会增加Apache服务网页的开销,这就是为什么我问你是否启用了http / 2,因为http / 2在处理https请求方面更有效率……它也会让你的网站更快需要较less的性能定制。

绝对考虑一下。