hp-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進程消耗內存的明細

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,則建議根據服務器的負載情況來設置,比較合適的值在5~10之間。



作者:格吾剛哥
鏈接:http://www.jianshu.com/p/0aece01b8536
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章