以下では、デフォルトではインストールされないいくつかの重要なモジュールについて説明します。 。 (プリフォークを除く)
一般的に使用されるモジュール:
おそらく最も一般的に使用されるモジュールは、PHP および JAVA アプリケーション サーバーのフロントエンドですが、現在のアプリケーションでは必要ありません。また、パフォーマンスの面でも、mod_gzip を使用するとトラフィックが約 40% 削減され、送信時のマシンの負荷が軽減されますので、使用することをお勧めします。使用するファイルは比較的小さいため、圧縮アルゴリズムの時間オーバーヘッドと送信負荷の削減が費用対効果に優れているかどうかを確認できます。 Mod_expires を使用すると、繰り返しのリクエストを約 10% 削減できるため、繰り返しのユーザーは、サーバーにリクエストをまったく行わずに、指定されたページ リクエストの結果をローカルにキャッシュできるようになります。ただし、メモリ ファイル システムを使用しているため、キャッシュの最適化は完全に無視できます。
リバース プロキシに基づく WEB アクセラレーション:
squid と mod_proxy の両方でリバース プロキシ アクセラレーションを実現できます。キャッシュベースのプロキシの高速化は、元の WEB サービスよりも桁違いに高速になります。同じメモリ ファイル システムは必要ありません。
パフォーマンスに影響を与える主要な指標MPM:
MPM (マルチプロセッシングモジュール、マルチプロセッシングモジュール)。 MPM は他の Apache モジュールと非常によく似ています。他のタイプのモジュールとは異なり、Apache では MPM を 1 つだけ実行する必要があります。 。 MPM
$ ./configure --help|grep mpm
の指定方法は以下のように表示されます:
--with-mpm=MPM
Apacheが使用するプロセスモデルを選択してください。
MPM={beos |worker| prefork|mpmt_os2| perchild|leader|threadpool}
Beos と MPMt_os2 は、それぞれ BeOS と OS/2 のデフォルトの MPM です。perchild の主な設計目的は、異なる子プロセスを異なるユーザーおよびグループとして実行することです。これは、CGI を必要とする複数の仮想ホストを実行する場合に特に便利で、バージョン 1.3 の SuExec メカニズムよりも優れた機能を発揮します。リーダーとスレッドプールはどちらもワーカーベースの亜種であり、まだ実験段階にあるため、場合によっては期待どおりに動作しないため、Apache 当局はこれらの使用を推奨していません。したがって、パフォーマンスと最も大きな関係がある 2 つの製品レベルの MPM である、プリフォークとワーカーについて主に詳しく説明します。
「--with-mpm」で特定の MPM を明示的に指定しない場合、Unix プラットフォームでは prefork がデフォルトの MPM になります。
prefork 自体はスレッドを使用しません。バージョン 2.0 はバージョン 1.3 との互換性を維持するためにスレッドを使用します。prefork は異なるリクエストを処理するために別個のサブプロセスを使用し、プロセスは互いに独立しているため、最も安定しています。 MPM。
プリフォークの動作原理は、制御プロセスが最初に「StartServers」サブプロセスを確立した後、MinSpareServers 設定のニーズを満たすプロセスを作成し、1 秒間待機し、2 つのプロセスを作成し続け、さらに 1 秒間待機するというものです。 、引き続き 4 つの ...このようにして、作成されるプロセスの数は、MinSpareServers で設定された値に達するまで、1 秒あたり最大 32 まで指数関数的に増加します。ここでプリフォークの出番です。このモードでは、リクエストが到着したときに新しいプロセスを作成する必要がなくなるため、システムのオーバーヘッドが削減され、パフォーマンスが向上します。
上記は Apache パフォーマンスの最適化 (3) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。