先來理解一下什麼是php-fpm
PHP-FPM是一個PHP FastCGI管理器,是只用於PHP的。
PHP-FPM其實是PHP源代碼的一個補丁,旨在將FastCGI進程管理整合進PHP包中。必須將它patch到你的PHP源代碼中,在編譯安裝PHP後才可以使用。 現在我們可以在最新的PHP 5.3.2的源碼樹裡下載得到直接整合了PHP-FPM的分支,據說下個版本會融合進PHP的主分支去。相對Spawn-FCGI,PHP-FPM在CPU和內存方面的控制都更勝一籌,而且前者很容易崩潰,必須用crontab進行監控,而PHP-FPM則沒有這種煩惱。
PHP5.3.3已經集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP進程管理方式,可以有效控制內存和進程、可以平滑重載PHP配置,比spawn-fcgi具有更多優點,所以被PHP官方收錄了。在./configure的時候帶 –enable-fpm參數即可開啟PHP-FPM。 使用PHP-FPM來控制PHP-CGI的FastCGI進程
(www.111cn.net)
master進程可以理解以下信號
INT, TERM 立刻終止
QUIT 平滑終止
USR1 重新打開日志文件
USR2 平滑重載所有worker進程並重新載入配置和二進制模塊
示例:
php-fpm 關閉:
代碼如下 復制代碼
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重啟:
代碼如下 復制代碼
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
查看php-fpm進程數:
代碼如下 復制代碼
ps aux | grep -c php-fpm
php-fmp的重啟 (方法二)
先執行
代碼如下 復制代碼
killall php-fpm
再執行(usr/local/php是php的安裝目錄)
代碼如下 復制代碼
/usr/local/php/sbin/php-fpm &
from:http://www.111cn.net/phper/php-gj/52906.htm
笨辦法就是寫個批處理,然後把上述啟動方式寫到批處理裡,然後任務計劃裡定時啟動該批處理。
你可以在啟動之前,先用 taskkill /f /im php-cgi.exe 把php-cgi殺掉,然後再 RunHiddenConsole.exe php\php-cgi.exe -b 127.0.0.1:9000 -c php\php.ini
#!/bin/bash
if[ (top | grep php | cut -d -f 9) -gt $1 ];then
sudo /data/webserver/php-5.2.17/sbin/php-fpm reload -u ××× -p×××;
fi
PS:其中$1替換成你要監測的負載值,比如你想讓fpm的cpu占用率不超過10%,那你就用10代替$1。