1. 程式人生 > >php-fpm佔用記憶體過高分析

php-fpm佔用記憶體過高分析

1、檢視每個php-fpm佔用的記憶體大小

ps -ylC php-fpm --sort:rss

2、檢視單個php-fpm程序消耗記憶體的明細

pmap $(pgrep php-cgi | head -1)

這裡可以根據需要減少不必要的模組載入。

php-fpm的引數優化

  1. pm = dynamic #對於專用伺服器,pm可以設定為static。#如何控制子程序,選項有static和dynamic。如果選擇static,則由pm.max_children指定固定的子程序數。如果選擇dynamic,則由下開引數決定:

  2. pm.max_children #子程序最大數

  3. pm.start_servers #啟動時的程序數

  4. pm.min_spare_servers #保證空閒程序數最小值,如果空閒程序小於此值,則建立新的子程序

  5. pm.max_spare_servers #保證空閒程序數最大值,如果空閒程序大於此值,此進行清理

對於記憶體大的伺服器(比如8G以上)來說,指定靜態的max_children實際上更為妥當,因為這樣不需要進行額外的程序數目控制,會提高效率。

對於記憶體小的伺服器,使用動態方式。具體最大數量根據 記憶體/20M 得到。比如512M的VPS,建議pm.max_spare_servers設定為20。至於pm.min_spare_servers

,則建議根據伺服器的負載情況來設定,比較合適的值在5~10之間。