swap_pager_getswapspace failed(その4:12.0-BETA4でも駄目)

12.0-BETA4でもswap不足が発生します。
swapを増やそうかと思っていたのですが、httpdのchild processが時間と共に肥大化しているのが原因なので、どうもphpのmemory leakが発生しているみたいです。swapを増やしてもいずれは溢れると思われます。
そこで、httpd.confのInclude etc/apache24/extra/httpd-mpm.conf行のコメントを外し、httpd-mpm.conf中のmpm_event_moduleのMaxConnectionsPerChildを0から100に変更してみました。これで100回呼ばれたchild processはkillされる筈なのでswap不足が解消するのではと期待しています。

P.S. StartServersを4以上にしないとMaxConnectionsPerChildが効かないbugがあるようです。StartServersが3以下の場合には当初httpdのchildは三つ起動しますが、http接続を行うと4個目のchild httpdが起動して、これはMaxConnectionsPerChildを無視して居続けます。StartServersを4にすれば大丈夫ですが、MaxConnectionsPerChildで殺されるタイミングで接続すると接続に失敗してbrowserにエラーが表示されてしまいます。
そのため、vsz(virtual size)が100MBを超えたらkillするscriptを書いて1時間毎にcronで起動することにしました。

その3へ戻る その5へ続く