Dear all, there is a short summary of the performance changes on
openacs.org after moving from AOLserver 4.5.1/OpenACS 5.6/pg 8.3 to NaviServer/OpenACS 5.8/pg 9.2 based on a week of "normal" traffic (here are the
details of the configuration).
Aggregated performance analysis
Performance last year (see year chart, column Avg): avg response time: 325ms/req
Performance last week (see year chart, column Avg): avg response time: 81ms/req
This means that under the same load, on the same machine, the new
installation is about 4 times faster.
In the chart below, one can see clearly the performance increase in the drop of the response-time line in the month-graph in week 31.
Detail analysis of openacs.org
The detail analysis shows, that we have an average filter time (spent
in the NaviServer filters for cookie management, site-node resolving
of 3.6ms and for handling the page content of 67.5ms). 0.4% of the
requests were queued, all other requests were directly assigned to
connection threads. About 30% of the requests were spooled (i.e. sent
via async delivery through the writer threads). Request-dispatch in
new in NaviServer since 4.99.5, async delivery is a well not available
in aolserver. The detailed timing information is as well a NaviServer
feature.
Request Handling: requests 447683, queued 1796 (0.40%), spooled 141218 (31.54%)
Request Timing: avg queue time 0.0024s, avg filter time 0.0036s, avg run time 0.0676s
The performance of openacs.org is completely un-tuned, based just on the
openacs version 5.8 from CVS head.
Detail analysis of dotlrn.org
Quite interesting is dotlrn.org, which is running as a virtual server
under openacs.org (the same nsd process handles openacs.org and
dotlrn.org; this configuration was not possible under
aolserver). dotlrn.org serves essentially static content using the
native content delivery mechanism of NaviServer (i.e. just fastpath,
not using the openacs request handler). dotlrn.org recieves 15% of the
requests of openacs.org. Based on the 63357 requests in 6 days, the
average runtime per request is for dotlrn.org 0.2ms, that is on
average 300 times faster than the runtime on openacs.org and 18 times
faster than the filter time alone.
Request Handling: requests 63357, queued 10 (0.02%), spooled 6212 (9.80%)
Request Timing: avg queue time 0.0001s, avg filter time 0.0000s, avg run time 0.0002s
The performance improvements are partly due to (a) naviserver, (b)
PostgreSQL 9.2 and (c) nsf/xotcl 2.0.
For reference, the machine has a "Intel(R) Xeon(R) CPU X5650 @
2.67GHz" using Ubuntu 10.04 64bit and was bought in 2010.
Maybe, someone finds this interesting.
-gustaf neumann