3

おそらく、これは Tornado ではなく ab に関する質問ですが、何か意味がありません。

次のようにベンチマークを実行します。

$ ab -n 100 http://localdomainname/ # 2 tornados being 1 nginx
 ...
Concurrency Level:      1
Time taken for tests:   0.162 seconds
Complete requests:      100
Failed requests:        17
   (Connect: 0, Receive: 0, Length: 17, Exceptions: 0)
Write errors:           0

そのため、100 件中 17 件のリクエストが失敗しました。

ベンチマークを実行する前に、ログ ファイルをリセットしてもう一度確認します。

$ wc -l /tmp/gkc.access.log 
100 /tmp/gkc.access.log
$ cat /tmp/gkc.access.log | grep ' 200 ' | wc -l
100

したがって、Nginxによると、失敗したリクエストはありません! ab が 100 件中 17 件が失敗したと言っているのはなぜですか?

(ちなみに、100のうち17はほんの一例です。上がったり下がったりしますが、私が期待する0になることはありません)

アップデート

Tornado + Nginxのセットアップに触れずにhttperfでテストしたところ、失敗したリクエストは0件です。

4

1 に答える 1

14

「長さ」の失敗したリクエストが表示されますが、これはレスポンス コードが 200 ではなかったことを意味するものではありません。これは、リクエスト間のレスポンスの長さが異なっていたことを意味します (最初のものの長さを記憶しています)。

この問題の詳細については、この質問で説明されています: AB を使用した負荷テスト ... 偽の失敗した要求 (長さ)

于 2011-11-06T16:41:26.623 に答える