php-fpm佔用記憶體過高分析
阿新 • • 發佈:2018-12-16
1、檢視每個php-fpm佔用的記憶體大小
ps -ylC php-fpm --sort:rss
2、檢視單個php-fpm程序消耗記憶體的明細
pmap $(pgrep php-cgi | head -1)
這裡可以根據需要減少不必要的模組載入。
php-fpm的引數優化
-
pm = dynamic #對於專用伺服器,pm可以設定為static。#如何控制子程序,選項有static和dynamic。如果選擇static,則由pm.max_children指定固定的子程序數。如果選擇dynamic,則由下開引數決定:
-
pm.max_children #子程序最大數
-
pm.start_servers #啟動時的程序數
-
pm.min_spare_servers #保證空閒程序數最小值,如果空閒程序小於此值,則建立新的子程序
-
pm.max_spare_servers #保證空閒程序數最大值,如果空閒程序大於此值,此進行清理
對於記憶體大的伺服器(比如8G以上)來說,指定靜態的max_children
實際上更為妥當,因為這樣不需要進行額外的程序數目控制,會提高效率。
對於記憶體小的伺服器,使用動態方式。具體最大數量根據 記憶體/20M 得到。比如512M的VPS,建議pm.max_spare_servers
設定為20。至於pm.min_spare_servers