6

siege を使用して、ローカル HTTP サービスのベンチマークを行います。

siege -q -b -t 30S -c 64 "http://localhost:8888/endpoint?params=abc"

ベンチマーク結果では、1 秒あたり最大 500 トランザクションのスループットが得られます。

ただし、 の 8 つの同時ループを起動してサービスを手動でベンチマークするとcurl、同じエンドポイントで 1 秒あたり数千のスループットが得られます。

それで、私は包囲で何が間違っていますか?

4

2 に答える 2

8

テストに影響を与える可能性のあることがいくつかあります。-ccurl でテストしている同時実行の数と一致するように同時実行を 8 に設定した場合に何が得られるかを確認してください。サイトが多数の同時ユーザーを処理できない場合があります。

また、Siege はデフォルトではキープアライブを行いません (少なくとも私はそうは思いません)。このオプションを使用しないと、サーバーとクライアントは、コストがかかる可能性のあるソケットをセットアップおよび破棄する必要があります。ヘッダーを設定して、それを受け入れることができるはずです ( siege -H "Connection: Keep-Alive")。

補足として、ベンチマーク時にいくつかのツールを使用すると便利だと思います.Siegeが機能するようになったら、AB(Apacheベンチ)、httperfで遊んで、手動のcurlテストも維持します.

于 2013-10-23T18:42:30.820 に答える