Forum OpenACS Development: Re: Res: Re: Res: Re: OpenACS performance issues

Collapse
Posted by Brian Fenton on
Hi Gustaf,

I'm just reading over this old thread and I spotted your comment "for maxthreads=60, i would recommend 50 connections in pool1, the other ones smaller (e.g. 10)". Can I ask you why you said this, instead of just giving each pool 20 connections? I'm just curious, as it seems more intuitive to equally divide the connections between each pool.

many thanks
Brian Fenton

Is more related to your applications and how many nested queries (api-db-calls) you run.

Gustaf, when you mention "i would as well recommend to set maxidle and maxopen to 0, but this does not have to do with your performace problems"; can you elaborate why?

Collapse
Posted by Gustaf Neumann on
Brian,

for each request, the openacs handle allocator tries to first to satisfy requests for handle from the first pool, for nested queries for the second pool, etc. Every request accessing the database will need a handle from pool1. If you have e.g. 60 connection threads, the needed number depends on how many of these potential concurrent threads need the database. The value certainly depends on the applications, it might be different for custom applications. The values above are based on our experience in our learn@wu system (we added some monitoring to get better understanding of this issue).

Roc, see the two following postings for the maxidle/maxopen magic:
http://dossy.org/archives/000319.html
http://openacs.org/forums/message-view?message_id=921467

The folklore setting of

ns_param maxidle 1000000000
ns_param maxopen 1000000000

are just another source for possible confusion and overflow, not contributing anything useful.

hope, this helps
-gustaf neumann

Collapse
Posted by Brian Fenton on
Many thanks Gustaf. That makes sense. Thanks for taking the time to respond.

Brian