Forum OpenACS Development: Re: NaviServer "breaks" under high load

Posted by Gustaf Neumann on
The urgency does not seem to be very high, since your reply was about 2 months after my prior response.

When you have such an old server (4.99.8 is 3.5 years old) it is likely that you have just a single connection thread pool. With queries in the range of 3 seconds and a single connection thread pool configured, it is easy to block this pool completely, leading to a queuing situation (which is in the user perception a "hang"). The feature of dynamic connection thread pool mapping was introduced with NaviServer 4.99.15 early last year (see e.g. [1]). With this one can map slow requests dynamically to an own pool, where such requests might pile up, but they don't block other traffic.

My recommendation is to update NaviServer to a recent version and use dynamic thread pool mapping. Concerning exceptions from nsstats: the NaviServer modules are released in concert with matching versions in the *modules* directories (see e.g. [2]). there is some tolerance in backward compatibility, but as it looks not so far.

In case, the mapping is not sufficient, and there are more configuration issues, the newer, more detailed statistics can bring more insights.


Posted by Frank Bergmann on
Hi Gustaf,


My last set of changes seemed to have worked, but the problems re-surfaced.


Do I have any other option in order to get statistics on the DB-pools?

Yesterday I have increased DB-connections:

In the config.tcl (8 physical cores):

maxconnections 200
maxthreads 32
minthreads 32
connsperthread 10000
highwatermark 100

connections 200

connections 20

connections 20

So again, the server seems to be running fine today.

Thanks for you help!

Posted by Gustaf Neumann on
some feedback to suggestions is anticipated.

other option in order to get statistics on the DB-pools?

according to the NEWS file of NaviServer "ns_db stats" was introduced in NaviServer 4.99.9 (jan 2016)