php-fpm佔用內存過高分析及解決

1、查看php-fpm的進程個數

ps -fe |grep "php-fpm"|grep "pool"|wc -l
2、查看每個php-fpm佔用的內存大小

ps -ylC php-fpm --sort:rss
3、配置php-fpm參數

找到php-fpm的配置文件php-fpm.conf

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之間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章