在apache bench中定义连接,处理,等待

时间:2010-05-12 15:31:06

标签: performance apache benchmarking

当我运行apache bench时,我得到的结果如下:

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

我似乎无法找到连接,处理和等待的定义。这些数字意味着什么?

3 个答案:

答案 0 :(得分:35)

来自http://chestofbooks.com/computers/webservers/apache/Stas-Bekman/Practical-mod_perl/9-1-1-ApacheBench.html

  

连接和等待时间

     

建立连接并获取响应的第一位所花费的时间

     

处理时间

     

服务器响应时间 - 即服务器处理请求和发送回复所花费的时间

     

总时间

     

连接和处理时间的总和

我把它等同于:

  • 连接时间:套接字打开所需的时间
  • 处理时间:第一个字节+传输
  • 等待:到第一个字节的时间
  • 总计:连接+处理总和

答案 1 :(得分:25)

通过查看源代码,我们找到了这些时间点:

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

答案 2 :(得分:2)

连接:连接远程主机所需的时间

处理:总时间减去连接远程主机所需的时间

等待:响应第一个字节接收减去发送的最后一个字节

总计:从连接之前到连接关闭之后