この件に関して多くの質問がなされていることは承知していますが、私を助ける答えは見つかりませんでした。
Apache httpd が 200 の同時接続に応答するようにしています。jMeter でテストし、prefork を使用して小さな静的テキスト ファイル (約 100 バイト) を取得します。MaxClient と ServerLimit は 500、メモリも CPU も制限されていません (両方とも 50% 未満)、帯域幅は 1Gbps です。
- 1つの接続のみを開始する場合、応答時間は約7ミリ秒です。
- 同時接続をいくつか(たとえば2つまたは3つ)開始すると、応答時間は70ミリ秒になります。
- もう少し(たとえば20)開始すると、応答時間は2秒を超えます最初の接続でも
keep-alive を使用してもあまり変化はありません。httpd を再起動しても効果はありません。
何か間違ったことをしているのでしょうか? どうすれば修正できますか?
前もって感謝します
グレッグ
答え1
この問題を解決するには、実行中のプロセスの数を永続的に増やす必要がありました。代わりに:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
次のように変更しました:
StartServers 300
MinSpareServers 300
MaxSpareServers 300
今では応答時間は許容範囲です。プロセスの作成/終了は高速なコンピュータでも非常に重いようです...