本文由荒原之夢原創,原文連接:http://zhaokaifeng.com/?p=653php
php-fpm即FastCGI進程管理器,用於控制php的內存和進程等。vim
CentOS 7服務器
首先查看php進程總數:php-fpm
pstree|grep php-fpm
回顯:優化
|-php-fpm---20*[php-fpm]
根據回顯信息可知,查詢時有20個php-fpm進程。
也能夠經過下面的命令列出消耗內存最多的前50個進程:spa
ps auxw|head -1;ps auxw|sort -rn -k4|head -50
下面咱們經過修改配置文件來優化php-fpm,以達到下降內存使用率的目的。
個人php-fpm配置文件在 …/server/php/etc/ 目錄下,進入該目錄。
先備份一下原配置文件:code
cp php-fpm.conf php-fpm.conf.bak
注:使用vim打開配置文件後,按Esc鍵,以後輸入」/」, 再輸入「xxx」能夠查找「xxx」這個字符串。server
pm.max_children = 100改成:pm.max_children = 25
pm.start_servers = 20改成pm.start_servers = 5
pm.min_spare_servers = 5改成pm.min_spare_servers = 2
pm.max_spare_servers = 35改成pm.max_spare_servers = 10
重啓服務器:進程
reboot
重啓後能夠發現內存使用率相比於以前下降了。內存
注:
進行上述設置時,我將php-fpm的執行方式設置成了動態:
pm = dynamic
php-fpm有兩種執行方式:
一種是Static靜態,另外一種是Dynamic動態。若是設置成靜態,那麼只有 pm.max_children 這個參數起做用。若是設置成動態則有 pm.start_servers 、 pm.min_spare_servers 和 pm.max_spare_servers 這三個參數起做用。設置成動態後,當php-fpm啓動時會按照 pm.start_servers 的參數設置啓動相應個數的進程,以後php-fpm的進程數量將維持在 pm.min_spare_servers 和 pm.max_spare_servers 指定的個數之間。