I have a server which blocks burst request (if the same IP address accesses the server more than 3 times a second, it will serve 500 error).
So when I use Apache benchmark, I see a lot of failed requests, even when I set concurrency to 1.
Is there an option to set an interval between each request? Or is there similar benchmarking tools that offers this interval functionality?
You could run
ab
throughwatch
to delay the repeated access, but you're not going to be able to use the report summary for much.Or run it through
curl
instead ofab
More about
watch
: http://www.linfo.org/watch.htmlYou're really not going to accomplish any meaningful load testing with concurrency limited to 3. You probably need to remove the requests per second restriction for the IP that you're testing from.
There is no such option.
Only configurable timing settings is
Maximum number of seconds to spend for benchmarking. This implies a
-n 50000
internally. Use this to benchmark the server within a fixed total amount of time. Per default there is no timelimit.However, what is effect of benchmarking if you wait? You will not gain real results at all.
You can use hey instead.
It has similar syntax as apache bench.
sends 50 requests with a pause of 1 sec between.
And you may add a text file to log verbosity.
You may count ocurrence of errors 5xx. In vim for example:
Or permanent moves 3xx
And then fine analyse your hosting for tunning performance.