php-fpmをずっと動かしていると、徐々にメモリ使用量が増えて、終いにはメモリを食い潰してしまう。アプリなのか、ミドルウェアなのか、どこかでメモリリークが起きているのだろうと想像できるものの、その原因を突き止めるのは難しそうだ。
メモリリークは起きて仕方ないとあきらめて、一定期間が経過したらphp-fpmのデーモンを再起動したら良いのではないか。そんなことを思ったら既にそういうオプションが用意されていた。
/etc/php-fpm.d/www.conf
1 2 3 4 5 |
; The number of requests each child process should execute before respawning. ; This can be useful to work around memory leaks in 3rd party libraries. For ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. ; Default Value: 0 pm.max_requests = 500 |
参考サイト
php-fpm の設定を理解してサイトのパフォーマンスを向上させる – Hacker’s High
https://hackers-high.com/linux/php-fpm-config/