查看php-fpm的內存占用
1、查看php-fpm的進程個數
ps -ef |grep "php-fpm"|grep "pool"|wc -l
2、查看每個php-fpm占用的內存大小
ps -ylC php-fpm --sort:rss
3.查看PHP-FPM在你的機器上的平均內存占用
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
4.查看單個php-fpm進程消耗內存的明細
pmap $(pgrep php-fpm) | less
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 ,則建議根據服務器的負載情況來設置,比較合適的值在5~10之間。
