Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> ワーカーApacheのpreforkのモードとユーザモード

ワーカーApacheのpreforkのモードとユーザモード

  

preforkのこの多重モード処理モジュール(MPM)は、Apache 1.3のと同様に動作する非ネジ型、プレ誘導体ウェブサーバを実装。それは、スレッディングシステムの互換性の問題を回避する必要性はないスレッドセーフなライブラリに適しています。それは、このような問題は、他の要求への要求には影響しない場合は、独立して、各要求下部ケース最高のMPMを、必要とすることです。

MPMは強い自己規制があり、非常に少ない設定ディレクティブの調整が必要となります。最も重要なのは、それが物理メモリの必要なメモリサイズを超えていることをそれほど大きくないが、要求のピーク電位を処理するのに十分大きな値にMaxClientsのを設定することです。

ワーカーモードこのマルチプロセッシングモジュール(MPM)が混入し、マルチスレッド、マルチプロセスをサポートするために、ネットワークサーバーを有効にします。それは大規模な要求、およびシステムリソースを扱うことができるように、要求を処理するためのスレッドを使用するプロセスベースのMPMのコストよりも小さいです。しかし、それはまた、各処理工程に基づくMPMの安定性を得るために、複数のスレッドが存在する、複数のプロセスを使用します。最も重要な命令

このMPMを制御し、それぞれの子プロセス制御命令が許可されていることをThreadsPerChildを作成したスレッドの数、およびMaxClientsディレクティブにより制御を確立することを許可されたスレッドの合計数です。


preforkの労働者と電流モード1. preforkのモードの起動ファイルを切り替えるMVのhttpd httpd.prefork2。労働者モードの起動ファイルの名前を変更MV httpd.worker httpd3。Apacheの設定変更の名前を変更次の段落の中に発見VI /usr/local/apache2/conf/extra/httpd-mpm.confファイルなどを適宜変更することができる負荷パラメータ:<のIfModule mpm_worker_module>にStartServers 2MaxClients 150MinSpareThreads 25MaxSpareThreads 75ThreadsPerChild 25MaxRequestsPerChild 0≦/のIfModule> 4再び。安定性とセキュリティの考慮にapache2の

を開始するために労働者の道を交換するのapache2 /binに/のapachectl再起動は/usr /local /サービスを開始し、システムのデフォルトのpreforkのを使用することができ、apache2のの動作モードを交換することはお勧めしません。また、PHPのモジュールの多くは労働者モードでは動作しません、例えば、スレッドの安全性をサポートすることができないのRedHat LinuxのPHPが付属しています。だから、動作モードを切り替えることが最善ではありません。比較preforkのモードの

のpreforkと労働者モードでは、それぞれの子プロセス一つだけのスレッドを複数の子プロセスを使用しています。特定の時点での各プロセスは、接続を維持することができます。ほとんどのプラットフォームでは、プリフォークMPMワーカーMPMは、効率よりも高いが、メモリ使用量がはるかに大きいです。 preforkのワイヤレスプロセス設計といくつかのケースでは労働者よりも利点:それはスレッドセーフに対処していないサードパーティ製のモジュールを使用することができ、およびプラットフォームのデバッグスレッドに困難な人のため、それはまた、デバッグ、数に簡単です。

労働者モードは、複数の子プロセスを使用して、それぞれの子プロセスは複数のスレッドを持っています。特定の時点での各スレッドは、接続を維持することができます。ワーカーMPMのメモリ使用量がプリフォークMPMよりもはるかに低いので、一般的に、高トラフィック上のHTTPサーバ、ワーカーMPMは、より良い選択です。死ん'しかし、また、労働者MPMは、欠陥の崩壊によって、スレッドは、プロセス全体が一緒に&'そのすべてのスレッドと一緒になる場合。スレッドがメモリ空間を共有するので、それは実行時に&'プログラムとしてシステムに認識されなければなりません。各スレッドは、安全&'であります;。

全体的に、preforkのモード速度は労働者よりも少し高いですが、それは、CPUとメモリリソースがwokerよりも少しですが必要です。
詳細<で

preforkのモード設定;のIfModule mpm_prefork_module> ServerLimitの256StartServers 5MinSpareServers 5MaxSpareServers 10MaxClients 256MaxRequestsPerChild 0≦/のIfModule> ServerLimitのデフォルトMaxClient最大256スレッド、あなたは大きな値を設定したい場合は、プラスServerLimitの本パラメータ。 ServerLimitの20,000このパラメータの最大値です。あなたがより多くを必要とする場合は、Apacheを再コンパイルするために、すべての必要はありません後、apacheのコンパイルする必要があります。前提の発効:あなたは5に、サーバー、preforkのデフォルトを指定された子にStartServersを確立するプロセスを開始すると、他の命令数が

の前に配置する必要があります。

MinSpareServersの最小数は、アイドル状態の子プロセスを指定し、デフォルトは5です。現在は子供の数がアイドルMinSpareServersを処理よりも小さい場合、第2の最大速度はApacheは新しい子プロセスを生成します。このパラメータは、あまりにも高く設定されていません。

MaxSpareServersもがアイドル状態の子プロセスの最大数を設定し、デフォルトは10です。あなたは現在、子供の数がMaxSpareServersもがアイドル状態のプロセスよりも多くを持っている場合は、親プロセスが不要な子供を殺すでしょう。このパラメータは、あまりにも高く設定されていません。あなたは値が設定MinSpareServersよりも小さい命じる場合は、Apacheは自動的に'を、&に変更されます。MinSpareServers + 1&プライム;。数(同時スレッドの数単一プロセス)

MaxClientsの同じ時間が最大のクライアントアクセス要求を定義し、デフォルトは256です。より多くのMaxClientsの制限よりもすべての要求は、リンクが解放されると、キュー内の要求がサービスされ、待機キューに入ります。この値を増やすには、同時にServerLimitのを増やす必要があります。最大

のMaxRequestsPerChildそれぞれの子プロセスはリクエストの寿命番号、デフォルトではサーボは子プロセスが終了し、リミットのMaxRequestsPerChildに到達した後10000であることができます。 MaxRequestsPerChildは&'場合; 0&プライム;、子プロセスが終了することはありません。ゼロ以外の値に設定するのMaxRequestsPerChildは、2つの利点を有する:1は、メモリの不足への無制限のメモリリークのために(偶発的)を防止することができます。 2.ので、時間がアクティブなプロセスの数を減らすために、ときにサーバーの負荷を削減でき、プロセスに制限された命を与えます。
詳細<に

ワーカーモード設定;のIfModule mpm_worker_module>にStartServers 2MaxClients 150MinSpareThreads 25MaxSpareThreads 75ThreadsPerChild 25MaxRequestsPerChild 0≦/のIfModule>

にStartServersサーバが起動されたときにサブプロセスの数が作成され、デフォルト値は'で&; 3&プライム;。最大

MaxClientsのは、同時アクセス要求の数(スレッドの最大数)を許可サーボ。より多くのMaxClientsの制限よりもすべての要求は、待機キューに入ります。 25(ThreadsPerChildの)Aを乗じた400&プライム;, 16(ServerLimitの)デフォルト値は&'です。したがって、MaxClientsのを高めるために、あなたもServerLimitの値を増やす必要があります。

MinSpareThreadsアイドルスレッドの最小数を、デフォルトは&'です; 75&プライム;。 MPMは、サーバ全体に基づいて監視するアイドルスレッドの数。アイドルスレッドの合計数は、サーバーが小さすぎると、子プロセスは新しいアイドルスレッドを生成します。

MaxSpareThreadsの取るには、アイドル状態のスレッドの最大数を設定します。デフォルト値は' 250&プライム;。 MPMは、サーバ全体に基づいて監視するアイドルスレッドの数。アイドルスレッドの総数サーバーが多すぎる場合は、子プロセスが超過したアイドル状態のスレッドを殺すでしょう。 MaxSpareThreadsの取る範囲が限られています。労働者のプラスのThreadsPerChildとMinSpareThreads以上が必要です:Apacheは自動的に次のような制限に応じた補正値を設定します。

子プロセスあたりの永続的な実行スレッドの数はThreadsPerChildの確立します。デフォルト値は25です。子プロセスの後、もはや起動時にこれらのスレッドを確立していない新しいスレッドを構築します。その生涯サーボにおけるそれぞれの子プロセスに

のMaxRequestsPerChild設定は、要求の最大数を許可します。リミットのMaxRequestsPerChildに到達した後、子プロセスは終了します。 MaxRequestsPerChildは&'場合; 0&プライム;、子プロセスが終了することはありません。ゼロ以外の値に設定するのMaxRequestsPerChildは、2つの利点を有する:1は、メモリの不足への無制限のメモリリークのために(偶発的)を防止することができます。 2.ので、時間がアクティブなプロセスの数を減らすために、ときにサーバーの負荷を削減でき、プロセスに制限された命を与えます。キープアライブリンクのために注意してください、最初のリクエストがカウントされます。実際には、リンクの動作の最大数に、各サブプロセスの上限を変更します。

Copyright © Windowsの知識 All Rights Reserved