Tags:
create new tag
, view all tags
RafaelAlvarez - 29 Sep 2008:

Interesting reading. Thanks!


GilmarSantosJr - 30 Sep 2008:

Yeah, interesting reading!

However, the article misses some important information, like which topics were requested. It can change the results a lot. Suppose a topic like TWikiFeatureProposals: the bottleneck there are the many embedded searches (and high number of topics within Codev). From the results with 25 users and the got improvement, I guess the topic used was Main.WebHome, that is simple and small (my empiric measures showed me that about half of processing time of this topic is the fork-and-compile phase, so no surprise there was a 2x gain wink ).

The given description of mod_perl states that it can fork a configurable number of perl processes. I really want to know how to do that. The only way I know is to limit the MaxClients configuration, that applies to the whole web server, not only to perl applications, since mod_perl embeds the aplication into the web server (no forked perl processes).

I have studied TWiki performance and performance metrics to make my under-graduation conclusion job (in Portuguese), that resulted on TWikiStandAlone, and one of the lessons I learned was that load is not so good to measure CPU usage: it measures how many processes are waiting for a processor, so we get an obvious result: using TWiki as a CGI (one forked process for each request) will lead to high loads. OTOH if you use a fixed/controlled number of persistent back-end processes, then the load simply can't be so high! (And it almost can be managed to the value you want, by controlling the number of persistent back-ends) How this magic is performed? Requests waits for an available back-end (instead of waiting for a processor). And that queue is not measured by the load (and reflects on latency observed by users. However, the higher latency is compensated by the fact that each request is processed faster).

In the beginning of the article SpeedyCGI and mod_perl are cited and they have similar approach to improve performance: eliminate fork-and-compile phase. Then, IMHO, there is another important information missing: how does Glassfish/LRWPinJava compares to those? And to FastCGI? I also could make a wrapper to use TWiki "unmodified" with FastCGI.

So, a (IMHO, more) interesting test would be to compare Glassfish/LRWPinJava, FastCGI, SpeedyCGI and mod_perl (with prefork and worker MPMs), using simple and complex topics.

But absolutely Glassfish/LRWPinJava is another interesting execution mechanism and TWikiStandAlone architecture makes it fairly easy to add direct support to Glassfish (or any other web/application server that implements the LRWP protocol) with a LRWPEngineContrib. smile


Topic revision: r3 - 2008-09-30 - GilmarSantosJr
 

Twitter Delicious Facebook Digg Google Bookmarks E-mail LinkedIn Reddit StumbleUpon    
  • Download TWiki
TWiki logo Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2012 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.