web-dev-qa-db-ja.com

Apacheが処理できるWebサーバーの最大ユーザー数?

私の質問は、Apache webserver 2.2.2が処理できるユーザーの最大数は何ですか?300以上の同時ユーザーを取得するWebサイトがありますが、Apacheのデフォルト設定は最大150に設定されています。この値を増やすことができます。ただし、Apacheが処理できる容量を超えて実行するのではないかと心配した場合、私のサーバーは8クワッドコアAMDプロセッサと16 GMメモリ

  1. Apacheが処理できるリクエストの数を判断するにはどうすればよいですか?

  2. 一般に、サーバーの負荷に最適化するためのオプション/構成。つまり、キープアライブなどを無効にします。

  3. 最大ユーザーサイズを増やすと、MySqlがプロセッサ能力のほとんどを使い果たし、CPUが150%を超えることがあります。理由はわかりません。

専門家はいますか?

16
mahen3d

Apacheには最大40-100のスレッドが付属しています。これを増やして、同時に処理できるスレッドを増やすことができます。

アプリケーションを変更する前に、アプリケーションを監視する必要があります。応答に基づいて、「ThreadsPerChild」と「AcceptThreads」を適宜変更してみてください。

通常、「最大」のスレッド数はデフォルトで十分です。ただし、この数を増やす必要がある場合もあります。スレッドの使用状況を監視できます。監視するには、管理インスタンスを起動し、問題のHTTPサーバーを選択して、左下の[リアルタイムサーバー統計]を選択します。

アイドルスレッドがゼロに近いかゼロの場合、これは問題です。 Idle Threadsがゼロである限り、新しいクライアント接続は確立できません。新しいクライアントは、スレッドが使用可能になるまで待機状態になります。この条件についての推奨事項は、増加した値でディレクティブThreadsPerChildを追加することです。これは、現在の値が40〜100の範囲の場合は約2倍、100を超える場合はプラス50です。必要な最小値(最大パラメータ)は試行錯誤によってのみ見つけることができます。値を増やした後、サーバーがスムーズに動作する場合は、テストを停止してください。

ソース

8
user1268571

推奨事項

サーバーのパフォーマンスを向上させるため、キープアライブを使用してください。ウェブまたはアプリの間にファイアウォールがある場合にのみ、キープアライブ設定を無効にします。または、パッケージドロップの問題/接続リセットメッセージに直面しています。

  • 最大クライアント制限を増やすことができますが、制限はサーバー構成に完全に依存します。平均すると、各Apacheスレッドはたとえば25MBを使用します。その場合、最大クライアント値を(MAX *各スレッドのロード)/(RAM割り当て*スレッド)に保ちます。この比率は常に1/2に維持してください。
  • 上記のように、システムのクライアントとサーバーの最大数を増やすことで、ユーザーを任意の数に増やすことができます。
  • 常にmin-maxspareまたはmin-maxthread制限を定義します。
  • クライアントの最大数を増やすことができない場合の非常に重要なポイントの1つは、リッスンバックログの制限を増やすだけで、キューに余分な要求が発生するため、接続のドロップが防止されます。
3
Sourabh Sharma

256のハードコードされた制限を超えてmaxclientsが大きくなるようにhttpd.hファイルを編集してから、httpdプログラムを再コンパイルする必要があります。これは、httpdの構成ファイルで推奨されています。

1
Henry McKelvey

概要については、このガイドを参照してください。 http://www.devside.net/articles/Apache-performance-tuning

選択したのは主にApache MPM(スレッドベース、またはプロセスベース)とその設定です。

次に、それをキープアライブ設定と一致させる必要があります(私はスレッドベースのMPMを使用しているため、キープアライブをオンにして3秒間設定します)。

LinuxまたはWindowsでApacheを使用していますか?どのMPM?

0
rightstuff