web-dev-qa-db-ja.com

単一のApacheワーカーは、1つのリクエストのみを処理しますか、それ以上ですか?

同時ユーザー数が約250に達すると、Apacheサーバーで問題が発生します。この問題は、アイドルワーカー番号が0に設定されている場合にのみ発生しました。

だから私の質問は、1つのApacheワーカーが1つのリクエストだけを処理するのか、それ以上のリクエストを処理するのかということです。ワーカーまたは最大ユーザーを少なくとも700の同時実行に増やすにはどうすればよいですか?

私はWindows2008R2でApache2.2を使用しており、MPMタイプはmpm_winntです。

1
Koptan

mpm_winntは、設計がmpm_workerにかなり近いようです。 mpm_workerは、プロセスごとに複数のスレッドを持つ複数のプロセス(サーバー)を使用して接続を提供します。 mpm_winntは1つのプロセスのみを使用します。

したがって、 ThreadLimit および ThreadsPerChild ディレクティブを使用して、同時接続の数を調整できます。

これら2つをやみくもに変更する前に、ドキュメントをお読みください。

2
Fox

MaxClientsを見てください-これはプリフォークとワーカーの一般的な設定です。

http://httpd.Apache.org/docs/2.2/mod/mpm_common.html#maxclients

0
silviud

Prefork MPMを使用する一般的な小規模サーバー構成の場合、次のようなものが必要になる可能性があります。

StartServers 5
MinSpareServers 1
MaxSpareServers 10
ServerLimit 500
MaxClients 500
MaxRequestsPerChild 5000

これにより、制限が500になります。それ以上が必要な場合は、値を増やしてください。値は一般的な小さなWebサイトに適していますが、サイトが「一般的」でない場合は、時間をかけてこれらの値をサイトに合わせて調整する必要があります。

これよりもはるかに大きくなっている場合は、ワーカーやイベントなどの別のMPMに切り替えるときが来ました。ただし、使用しているテクノロジーによっては、サイトのさまざまな側面を変更する必要がある場合があります。

スレッド化されたMPM(イベント、ワーカー)および一般的な小さなWebサイトの場合:

StartServers 5
MinSpareThreads 1
MaxSpareThreads 10
MaxClients 1024
ThreadsPerChild 64
MaxRequestsPerChild 50000

MPM WinNTには単一のプロセス(子)しかないため、ThreadsPerChildを適切なものにバンプする必要があります。別の回答には、関連するApacheのマニュアルページへのリンクがあります。

0
Chris S