跑fastcgi,用spawn-fcgi 管理還是用php_fpm管理

下面是關於啓用 FastCGI SAPI 時的問題和 php-fpm 是如何解決他們的對比列表。

描述

php自帶的

spawn-fcgi + spawn-php.sh + daemontools

php-fpm

php守護進程化: pid file, log file, setsid(), setuid(), setgid(), chroot()

(-)

(+)

(+)

進程管理。可以用 "graceful" 來停止並啓動 php worker 進程而不會丟失請求。能夠平滑地升級配置和二進制程序而不丟失任何請求。

php4 (-), php5 (只有 graceful)

(-)

(+)

嚴格限制來源請求的 web server ip 地址

php4 (-) php5 (+) ( 5.2.2 開始)

(-)

(+)

根據負載動態調整進程數

(-)

(-)

Todo

用不同的 uid/gid/chroot/environment 和不同的 php.ini 選項啓動 worder 進程。你不需要 safe mode 了!

(-)

(-)

(+)

記錄 worker 進程 stdout stderr 日誌

(-)

(-)

(+)

如果使用優化器,在共享內存意外破壞的情況下緊急重啓所有的進程

(-)

(-)

(+)

如果 set_time_limit() 失敗,確保進程會結束

(-)

(-)

(+)

特色功能 Error header、優化的上傳支持、fastcgi_finish_request()

 

由對比來看,用php_fpm管理的好處是可以在不停止服務的情況下進行平滑啓動,

 

接下來再轉載另外一個測試結果:

 

php-fpm的使用非常方便,配置都是在php-fpm.ini的文件內
而啓動,重啓都可以從php/sbin/php-fpm中進行
更方便的是修改php.ini後可以直接使用php-fpm reload進行加載
無需殺掉進程就可以完成php.ini的修改加載
結果顯示使用php-fpm可以使php有不小的性能提升

php-fpm控制的進程.cpu回收的速度比較慢.內存分配的很均勻
spawn-cgi控制的進程CPU下降的很快.而內存分配的比較不均勻.
有很多進程似乎未分配到,而另外一些卻佔用很高
.
可能是由於進程任務分配的不均勻導致的.而這也導致了總體響應速度的下降

php-fpm合理的分配.導致總體響應的提高以及任務的平均
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章