On Sep 19, 2008, at 10:05 AM, Alen Ribic wrote:
> > Good day. > > I tried to perform a load test on my python web app using sqlalchemy > as follows: > 1000 requests > 20 concurrent connections > > Towards the end, I started getting an error from sqlalchemy module: > TimeoutError: QueuePool limit of size 40 overflow 10 reached, > connection timed out, timeout 30 > > I'm not a load testing expert neither am I a sqlalchemy expert, but I > thought that perhaps 20 concurrent connections would be comfortably > handled by 40 pooled connections (+ the 10 overflowed) even if there > are 1000 requests. Does this mean that the connections are not being > returned to the pool quick enough? If you have connections timing out after 30 seconds, then one or more of your requests is simply not returning. I would look into the possibility of a deadlock, which is something that would eventually time out all connections, or some other reason that connections are being held opened persistently (such as, if they were being placed in a collection somewhere that isn't cleared out). Normally, connections are returned when they are closed or dereferenced, more often the former, so there is not much of an "asynchronous" element to the return of connections. If work couldn't be completed fast enough, the req/sec would go down but the pool would not overflow, as long as the concurrency entering the application is set to be lower than the pool available (which in this case it is). --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" 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/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---
