17

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

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

  2. 一般に、サーバーの負荷に最適化するためのオプション/構成は何ですか。つまり、keepalive..etcを無効にします

  3. 最大ユーザーサイズを増やすと、MySqlはプロセッサパワーのほとんどを消費し、CPUが150%を超えることがあります....理由はわかりません..

専門家はいますか?

4

4 に答える 4

8

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

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

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

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

ソース

于 2012-09-09T13:59:49.130 に答える
3

推奨事項

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

  • クライアントの最大制限を増やすことができますが、制限はサーバー構成に完全に依存します。平均して、各 apache スレッドは 25MB とします。その場合、最大クライアント値を (最大 * 各スレッドの負荷)/(RAM 割り当て * スレッド) に保ちます。この比率を常に 1/2 に維持します。
  • 上記で説明したように、システムのクライアントとサーバーの最大制限を増やすことで、ユーザーを任意の数に増やすことができます。
  • min-maxspare または min-maxthread 制限を常に定義します。
  • クライアントの最大制限を増やすことができない場合の非常に重要なポイントの 1 つは、リッスン バックログの制限を増やすことです。これにより、キュー内の余分なリクエストが取得され、接続のドロップが防止されます。
于 2012-12-08T22:56:46.477 に答える
1

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

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

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

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

于 2012-05-26T14:02:34.537 に答える
1

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

于 2013-10-22T14:34:23.810 に答える