對於PHP-FPM多進程的模式,想要
避免內存洩漏問題很簡單,就是要讓PHP-CGI在處理一定數量進程後退出即可。
否則PHP程序或第三方模塊(如Imagemagick擴展)導致的內存洩漏問題會導致內存耗盡或不足。
php-fpm.conf中有相關配置:
#請自行按需求配置
pm.max_requests = 1024
實際上還有另一個跟它有關聯的值max_children,這個是每次php-fpm會建立多少個進程,這樣實際上的內存消耗是max_children*max_requests*每個請求使用內存。
另外一些粗暴的方法包括
建立cron kill掉占用內存過多的php-cgi,這裡不再介紹。
如果PHP-FPM能夠提供配置子進程內存超過指定大小就被kill,那就省事多了...
*