Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

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

share|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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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