4 ms·
> But still WTF. 89/100 requests failed? That's not happy-making. Unless something has changed recently, ab doesn't handle dynamic pages very well. It takes th
by bbatsell 14y ago
> But still WTF. 89/100 requests failed? That's not happy-making.
Unless something has changed recently, ab doesn't handle dynamic pages very well. It takes the first pageload as a baseline, and any subsequent request with any portion of the page that is randomized, or is a CSRF token, or reflects most recent changes, etc., is marked as "failed" because it doesn't match the baseline's length.
The page in question does have a block in the footer reflecting "hot songs", which I'm guessing changed a bit during the run.
- CoffeeDregs 14y agoAB is not a particularly smart tool (though it's very handy), but I've never seen it reject as not-accurate any non-baseline sized requests... In fact, I can't imagine the rationale that would lead a benchmarking tool to do so. [Obviously, a testing tool might do so...]
- bbatsell 14y agoI've seen it frequently, and yes, this is how it behaves, e.g.: [1]: http://stackoverflow.com/a/579466/94830 http://stackoverflow.com/a/579466/94830 [2]: https://issues.apache.org/bugzilla/show_bug.cgi?id=42040 https://issues.apache.org/bugzilla/show_bug.cgi?id=42040 I imagine the rationale was something along the lines of many servers/apps are written to incorrectly return 200 with a descriptive error page rather than 500 or whatever the appropriate status code would be. And at the time ab was first written, pages were a lot more static than they are now, so a different page would be more likely to indicate an incorrect response.
- stock_toaster 14y agouse wrk[1] or weighttp[2] instead. [1]: https://github.com/wg/wrk https://github.com/wg/wrk [2]: redmine.lighttpd.net/projects/weighttp/wiki