1

I am running Apache Bench against a Ruby on Rails XML-RPC web service that is running on Passenger via mod_passenger.

All is fine when I run 1000 requests without concurrency. Bench indicates that all requests successfully complete with no failures. When I run Bench again with a concurrency level of 2, however, requests start to fail due to content length. I am seeing failures rates of 70-80% when using concurrency. This should not happen. The requests I am sending to the web service should always results in the same response. I have used cURL to verify that this is in fact the case.

My Rails log is not showing any errors as well so I am curious to see what content Bench actually received and interpreted as a failure. Is there any way to print these failures?

1

Try removing the passenger layer and test your service with Mongrel. You will see the errors in your Shell (if any). Also, this may help you. Try setting the passenger debugging level as per this URL

http://modrails.com/documentation/Users%20guide%20Nginx.html#_logging_and_debugging_options

| improve this answer | |
  • It turned out that the SQLite3 database under the actual application was causing this. By outputting the responses to the shell I saw that ActiveRecord was throwing BusyException's. Thanks for the leads! – Laurens Dec 2 '11 at 10:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.