On May 29, 7:29 pm, "Alex Marandon" <[EMAIL PROTECTED]> wrote: > 2008/5/29 Alex Marandon <[EMAIL PROTECTED]>: > > > > > 2008/5/28 SamDonaldson <[EMAIL PROTECTED]>: > >> Running ab benchmark tests revealed many requests were failing. > >> Should I be starting MORE Paster processes to handle the load? Is > >> this the right thing to do, or is the Paster (SCGI) process itself > >> multi-threaded to handle such synchronous requests. Say the Paster > >> process is doing some I/O (SQL query through sqlalchemy), would that > >> process block and would other requests wait, or would they get > >> serviced? > > > Hi Sam, > > > According > > tohttp://wiki.pylonshq.com/display/pylonscookbook/Pylons+Execution+Anal... > > paster is multithreaded. It should be easy to test. Hit a controller > > action that sleeps for 10 seconds and see if you can still make > > requests to other actions. I actually need to test for myself as soon > > as I get to work. As for why you get failed requests, I don't know. > > class FooController(BaseController): > > def bla(self): > return 'Hello World! %s' % time.time() > > def slow_bla(self): > time.sleep(10) > return 'Hello slow World!' > > With something like that, manual testing works just fine (ie: I'm able > to hit the action bla as many times as I want while the action > slow_bla is still serving). > > When testing with ab though, I do get failed requests, but I actually > get even more failed requests with Apache/mod_wsgi.
What options are you using to 'ab'? The 'ab' program can give a perception of errors, normally manifesting as lots of exceptions on server side in log file, if you use concurrent requests. This occurs because it only stops when it receives responses for the number of requests you tell it to make. With a request handler that takes a long time, because of a sleep() call, the 'ab' program can actually issue more requests than you tell it to. When it does receive responses for the number you told it, it will simply shutdown the connections for all the additional requests it made which it hasn't yet received a response. The result of this is that on the server side it will see a bunch of closed connections causing failures to be able to write the responses for the additional requests. The end result is that one thinks that the hosting mechanism is having problems, when in fact it is due to how the 'ab' program works. Graham --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
