From 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.
If you are testing a "dynamic" page, then the conten-length will change and may result in a failure. Examples are ads or images or varying results on a page.
Exceptions, im guessing, are just exceptions thrown by the application on the page.
Your failure rate could be high because your backend application may not be able to withstand the load or the connections.
UPDATE: From ab source code, Receive (count of err_recv) means
/* 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;
This basically means, your apache/webserver had trouble with the packets sent by ab. This could be because of many things -- network, apache too busy ... When you ran the tests, did you see any errors in apache/webserver logs? specifically, connection reset or timed out?