web-dev-qa-db-ja.com

Apacheベンチでの接続、処理、待機の定義

Apacheベンチを実行すると、次のような結果が得られます。

Command: abs.exe -v 3 -n 10 -c 1 https://mysite
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      203  213   8.1    219     219
Processing:    78  177  88.1    172     359
Waiting:       78  169  84.6    156     344
Total:        281  389  86.7    391     564

接続、処理、待機の定義が見つからないようです。それらの数字はどういう意味ですか?

41
rpatel

から http://chestofbooks.com/computers/webservers/Apache/Stas-Bekman/Practical-mod_Perl/9-1-1-ApacheBench.html

接続時間と待機時間

接続を確立して応答の最初のビットを取得するのにかかった時間

処理時間

サーバーの応答時間-つまり、サーバーが要求を処理して応答を送信するのにかかった時間

合計時間

接続時間と処理時間の合計

私はこれを次のように同一視します:

  • 接続時間:ソケットが開くのにかかった時間
  • 処理時間:最初のバイト+転送
  • 待機中:最初のバイトまでの時間
  • 合計:接続+処理の合計
36
Gary Richardson

ソースコードを見ると、次のタイミングポイントが見つかります。

apr_time_t start,           /* Start of connection */
           connect,         /* Connected, start writing */
           endwrite,        /* Request written */
           beginread,       /* First byte of input */
           done;            /* Connection closed */

そして、リクエストが行われると、いくつかのタイミングが次のように保存されます。

        s->starttime = c->start;
        s->ctime     = ap_max(0, c->connect - c->start);
        s->time      = ap_max(0, c->done - c->start);
        s->waittime  = ap_max(0, c->beginread - c->endwrite);

そして、「処理時間」は後で次のように計算されます

s->time - s->ctime;

したがって、これをタイムラインに変換すると、次のようになります。

t1: Start of connection
t2: Connected, start writing
t3: Request written
t4: First byte of input
t5: Connection closed

その場合、定義は次のようになります。

Connect:      t1-t2   Most typically the network latency
Processing:   t2-t5   Time to receive full response after connection was opened
Waiting:      t3-t4   Time-to-first-byte after the request was sent
Total time:   t1-t5
32
kvarnsbacke

接続:リモートホストへの接続にかかる時間

処理:合計時間からリモートホストへの接続にかかる時間を引いたもの

待機中:応答の最初のバイトの受信から最後のバイトの送信を引いたもの

合計:接続前から接続が閉じられた後まで

2
aproka