More Related Content
Similar to PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Similar to PHP-FPMとuWSGI——mod_php以外の選択肢を探る (20)
More from Yoshio Hanawa (20)
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
- 1. PHP-FPMとuWSGI
̶̶ mod_php以外の選択肢を探る
hnw
第66回PHP勉強会(2013/03/27) 発表資料
13年3月29日金曜日
- 2. 自己紹介
@hnw / id:hnw
勤務先:KLab株式会社
カレーとバグが大好物
宣伝:php-timecopというPHP拡張を作りました
https://github.com/hnw/php-timecop
13年3月29日金曜日
- 3. 今日おはなしすること
PHP環境の選択肢を紹介
PHP-FPM
uWSGI + PHP plugin
動かしてみたよ!
メリット・デメリットは?
13年3月29日金曜日
- 4. PHP-FPM
FPM: FastCGI Process Manager
PHP標準のアプリケーションサーバ実装
PHP 5.3.3からバンドル
PHP 5.4.0から公式サポート
プロトコルはFastCGI
13年3月29日金曜日
- 5. FastCGI
Webサーバ・APサーバ間で使われるプロトコル
Apache・nginx・lighttpdなどがサポート
PHP以外の言語ではボチボチ利用される
バイナリプロトコル
13年3月29日金曜日
- 6. uWSGI
Pythonでボチボチ使われているAPサーバ実装
多数の言語に対応(WSGI, PSGI, Rack, ...)
embed SAPIを利用したPHPプラグインも提供
PHP界隈での知名度はゼロに近い
13年3月29日金曜日
- 10. ミドルウェア構成
対称性からApache+mod_phpの前段にもnginxを入れた
HTTP HTTP
nginx nginx
HTTP FastCGI
Apache
PHP-FPM
mod_php
13年3月29日金曜日
- 11. 前段のnginxいらなくね?
効用
前段のnginxの同時接続数を大きくできる
後段のAPサーバの同時接続数は下げられる
APサーバだけロードバランシングすることも可能
前段をApacheにしても同じ効果が得られる
13年3月29日金曜日
- 12. 速度の比較
有意な差は出なかった
1並列で500μs程度
10ms台のPHPを動かすなら誤差では?
13年3月29日金曜日
- 13. メモリ消費量
起動直後にPHPを叩いてpsコマンドのRSSの値を比較
PHP-FPM : 3MB
Apache + mod_php : 5MB
uWSGI + PHP plugin : 6.5MB
Apacheはチューニングの余地があるはず
13年3月29日金曜日
- 14. ここまでのまとめ
PHP-FPM、uWSGI + PHP pluginともに正常動作する
速度の差はほぼ無い
1プロセスあたりのメモリ消費量の差も誤差に近い
商用環境で試す人、追試をお願いします
13年3月29日金曜日
- 15. PHP-FPMのメリット
PHP公式サポートされていること
安定性が期待できる
ロングサポートが期待できる
乗っかって後悔する可能性が少なそう
13年3月29日金曜日
- 16. PHP-FPMの面白機能(1)
slow_logが出せる
n秒以上かかるアクセスを検出
n秒時点でのbacktraceも取れる
(この機能だけはrootで起動する必要あり)
13年3月29日金曜日
- 17. PHP-FPMの面白機能(2)
暇なときにプロセス数を勝手に減らす機能
「pm = ondemand」
10秒程度アクセスが無いと子プロセスが0個になってる
13年3月29日金曜日
- 18. PHP-FPMの面白機能(3)
fastcgi_finish_request()
レスポンスを返した後、PHPの処理が継続できる
APCが狂ったときに緊急再起動する機能
動作は未確認、期待通りに動くなら面白いかも
13年3月29日金曜日
- 20. まとめ
PHP-FPMは「普通」に使える実装
性能・安定性など特に不安点は無い
Apache + mod_phpより気軽に試せるのは利点
uWSGIでもPHPが動くよ!
普通はPHP-FPMを選ぶ気がします…
13年3月29日金曜日
- 21. ご静聴
ありがとう
ございました
13年3月29日金曜日