web-dev-qa-db-ja.com

Apache(MPMワーカー)、FastCGI PHP 4 / 5.2 / 5.3、およびMySQL 5の実行可能性

私のサーバーは、Joomla、Drupal、いくつかのレガシー(読み取り:PHP4)、およびクライアントから継承されたその他のカスタムビルドコードに至るまで、多数のPHP Webアプリケーションをホストします。これは、によって使用される開発マシンになります。十数かそこらのWeb開発者や、変動する負荷や特に高い負荷の期待などの問題は重要ではありません。

さて、私の質問:MPMワーカー付きのApache、PHP 4/PHP 5.2/PHP 5.3(すべてFastCGI経由)、およびMySQL 5( 64MBのクエリキャッシュ)?

私はさまざまなアプリケーションを広範囲にテストしておらず、PHPをインストールし、FastCGIを介してそれを利用する方法を最近学びました(この場合は不可能と思われるmod_phpではなく(=の複数のバージョンを考慮すると) PHPおよびMPMプリフォークよりもMPMワーカーを使用したいという願望))。

XCacheとAPCに関して懸念がある可能性があること、つまり、データが破損し、MPMワーカーを使用する機能が無効になるというスレッドセーフではない問題がある可能性があることを理解しました。これは有効な懸念事項ですか?

2GBのRAMが利用可能)の個人用テストサーバー(VirtualBoxでUbuntu Server Edition 10.04を実行)を使用しています。

使用される構成は次のとおりです(実際のサーバーは、目的に合わせて調整された構成を使用する可能性があります)。

Apache:

Server version: Apache/2.2.14 (Ubuntu)
Server built:   Apr 13 2010 20:22:19
Server's Module Magic Number: 20051115:23
Server loaded:  APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Worker
    threaded:     yes (fixed thread count)
        forked:     yes (variable process count)

ワーカー:

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          400
    MaxRequestsPerChild 2000
</IfModule>

PHP ./configure(PHP 4.4.9、PHP 5.2.13、PHP 5.3.2):

--enable-bcmath \
--enable-calendar \
--enable-exif \
--enable-ftp \
--enable-mbstring \
--enable-pcntl \
--enable-soap \
--enable-sockets \
--enable-sqlite-utf8 \
--enable-wddx \
--enable-Zip \
--enable-fastcgi \
--with-zlib \
--with-gettext \

Apache php-fastcgi-setup.conf

FastCgiServer /var/www/cgi-bin/php-cgi-5.3.2
FastCgiServer /var/www/cgi-bin/php-cgi-5.2.13
FastCgiServer /var/www/cgi-bin/php-cgi-4.4.9

ScriptAlias /cgi-bin-php/ /var/www/cgi-bin/
1
Adrian

あなたが自分自身に尋ねるべき唯一のことは:あなたは本当にあなたのサイトの非常に多くのトラフィックがそのような複雑で危険なセットアップを正当化することを期待していますか(モジュールとしての「通常の」プリフォーク+ phpとは対照的)。

スレッドモデルに切り替える必要なしに、1日あたり1,000万ヒット以上でピークに達するPHPヘビーサイトをいくつか実行しています。 PHPそれ自体は混乱であり、フープを飛び越えさせることはそれを求めています。

上記の答えに同意できません。それはあなたが期待するトラフィックの量とは関係ありませんが、誰かが作成できるトラフィックの量とは関係ありません。悪党が気まぐれでシャットダウンできるサービスを楽しんでいない限り、平均的な悪党が作成できるよりも多くの負荷に耐えるように設計する必要があります。

4
David Schwartz