ab(Apache Benchmark)“失败”中的“接收”和“异常”是什么意思?

ab(Apache Benchmark)“失败”中的“接收”和“异常”是什么意思?

从 ab 获得此结果:

并发级别:10000

测试时间:69.153 秒

已完成请求:30000

失败请求:10379  

(连接:0,接收:3424,长度:3531,例外:3424

写入错误:0

总共传输:48414203 字节

HTML 传输:41042477 字节

每秒请求数:433.82

[#/秒](平均)

接收和异常到底是什么意思。谢谢。

答案1

http://httpd.apache.org/docs/2.2/programs/ab.html

Failed requests
The number of requests that were considered a failure. If the number is greater
than zero,another line will be printed showing the numer of requests that
failed due to connecting, reading, incorrect content length, or exceptions.

如果您测试的是“动态”页面,则内容长度会发生变化,可能会导致失败。例如,广告、图片或页面上的不同结果。

我猜测,异常只是页面上的应用程序抛出的异常。

您的失败率可能很高,因为您的后端应用程序可能无法承受负载或连接。

更新:从 ab 源代码来看,接收(err_recv 计数)意味着

/* catch legitimate fatal apr_socket_recv errors */
    else if (status != APR_SUCCESS) {
        err_recv++;
        if (recverrok) {
            bad++;
            close_connection(c);
            if (verbosity >= 1) {
                char buf[120];
                fprintf(stderr,"%s: %s (%d)\n", "apr_socket_recv", apr_strerror(status, buf, sizeof buf), status);
            }
            return;

这基本上意味着,您的 apache/webserver 在处理 ab 发送的数据包时遇到了问题。这可能是由很多原因造成的——网络、apache 太忙……当您运行测试时,您是否在 apache/webserver 日志中看到任何错误?具体来说,是连接重置还是超时?

相关内容