1

実稼働サーバーでの応答時間に関する統計を取得しようとしています。

呼び出すab -n100 -c1 "http://example.com/search?q=something"と、次の結果が得られます。

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       24   25   0.7     24      29
Processing:   526  874 116.1    868    1263
Waiting:      313  608 105.1    596    1032
Total:        552  898 116.1    892    1288

しかし、私が呼び出すとab -n100 -c3 "http://example.com/search?q=something"、結果ははるかに悪くなります:

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       24   25   0.8     25      30
Processing:   898 1872 1065.6   1689    8114
Waiting:      654 1410 765.5   1299    7821
Total:        923 1897 1065.5   1714    8138

サイトが運用中であることを考慮すると、私のもの以外にもリクエストがあるため、同時実行性のない呼び出しが、同時実行性の少ない呼び出しよりもはるかに高速である理由を説明できません。

助言がありますか?

4

1 に答える 1

1

同時実行数が 1 の場合は、1 つのスレッドを使用してできるだけ早くこの URL にアクセスするように AB に指示していることを意味します。値 -c3 は、AB に同じことを行うように指示していますが、おそらく 3 つのスレッドを使用すると、より多くの呼び出しが発生する可能性があり、あなたの場合、物事が遅くなったようです。(注 AB はシングルスレッドであるため、実際には複数の OS スレッドを使用しませんが、類似性は依然として当てはまります。)

料金所の車線を増やすのと少し似ています。1 つの車線では車の処理速度が非常に速くなりますが、3 つの車線を使用するとスループットが向上します。しかし、トンネルの幅にいくつの車線があっても、料金所の後に車が通過しなければならないことは、おそらくあなたが見ているスループットにも影響を与えます.

一般的な注意として、負荷テストのより良いアプローチは、アプリがサポートできるようにする必要があるトラフィックのレベルを決定し、このレベルのスループットを生成するテストを設計することです。AB のようにできるだけ速くスレッドを実行すると、あらゆる種類の制御されたテストが困難になる傾向があります。JMeterの方が優れています。

また、リスクの少ない、彼のよ​​うなことのためにテストサーバーをセットアップすることを検討することもできます...

于 2012-06-06T15:40:25.040 に答える