Apache MPM-ワーカーとプリフォーク


13

VPSにインストールできる最高のApache MPMはどれかを見つけようとしています。いくつかのベンチマークを見ましたが、MPMワーカーはPreforkベンチマークよりもパフォーマンスが高いようですが、何らかの理由で、PHPのセットアップにはワーカーがPreforkを推奨しているようです。

これは、一部のPHP関数がスレッドセーフではないというだけの理由ですか?setlocale()頭に浮かぶだけですが、すべてのインスタンスで同じロケールを使用するので、それが問題になるとは思いません。私のVPSのメモリはほとんどなく、ワーカーのMPMが私のニーズに合っていると思いますが、よくわかりません。

誰かが私についてこれについて決心するのを手伝ってくれますか?ありがとう!


PS: nginxとlighttpdも調べました。nginxは素晴らしいように見えますが、ソースからのコンパイルを避けようとしていますが、php-fpmの目的がまだよくわかりません。lighttpdについて-PHP / FCGIをセットアップするのは信じられないほど簡単でしたが、メモリリークがあると聞きました。これはまだ本当ですか?


2
問題は、PHPのコアはスレッドセーフになるはずですが、拡張機能に関しては、すべての賭けがオフになっていることです。
mattdm

回答:


12

apache + mod_phpを使用する場合は、preforkを使用する必要があります。FAQには、次の理由が明確に記載されています。

http://www.php.net/manual/en/faq.installation.php#faq.installation.apache2

実稼働環境でスレッドMPMでApache2を使用するべきではないのはなぜですか?

PHPは接着剤です。これは、多数のサードパーティライブラリを結び付けて、直感的で習得しやすい言語インターフェイスを通じてすべてを1つのまとまったエンティティとして表示することにより、クールなWebアプリケーションを構築するための接着剤です。PHPの柔軟性とパワーは、基盤となるプラットフォームの安定性と堅牢性に依存しています。動作するOS、動作するWebサーバー、動作するサードパーティライブラリが必要です。これらのいずれかが動作を停止した場合、PHPは問題を特定して迅速に修正する方法を必要とします。完全に独立した実行スレッド、完全に独立したメモリセグメント、再生するリクエストごとの強力なサンドボックスを持たないことで、基盤となるフレームワークをより複雑にする場合、PHPのシステムにさらなる弱点が導入されます。

nginx + php-fpmは、PHPアプリケーションを実行する優れた方法でもあります。nginxはFastCGIをネイティブでサポートしており、php-fpmはFastCGI環境でphpを実行する最良の方法の1つです。こちらのphpドキュメントをご覧ください。

http://www.php.net/manual/en/install.fpm.php


Apache MPMについては、preforkが最適な方法だと思います。Apacheのメモリ消費量が多いため、nginxまたはlighttpdのセットアップに興味があります。LighttpdとPHP-FCGIはaptitudeでインストールするとすぐに動作しますが、06/07に誰もが話し続けているメモリリークがまだ存在するかどうかはわかりません。また、NginxのCPU使用率が低いことも読んでいますが、PHP-FPMだけでなく、PHP-CGIで動作させることもできません。パッケージマネージャーを使用してこれをUbuntuに簡単にインストールする方法はありますか?このテーマに関する読書をお勧めしますか?
アリックスアクセル

マルチバースを有効にすると、明快に「apt-get install nginx」を実行でき、チャンピオンのように動作します-本番システムで使用しています。ここには良い出発点の例、howtoforge.com /…がありますが、いつものようにYMMVです。
dialt0ne

aptを使用してnginxをインストールできますが、PHPインタープリターにバインドできません。指定したリンクには、php5-fpmパッケージを提供していると思われる新しいソースがあります。私はそれを試してみるつもりです。
アリックスアクセル

このリンクは、howtoforge.com /…の方が良いかもしれません php5-fpmの本​​番システムにbrianmercerリポジトリを使用しています。
dialt0ne
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.