[tbnl-devel] Re: [mod-lisp-devel] Apache 2 support

Edi Weitz edi at agharta.de
Wed Nov 10 13:43:29 UTC 2004


On Wed, 10 Nov 2004 14:20:38 +0100, "Marc Battyani" <marc.battyani at fractalconcept.com> wrote:

> I always wanted to test and finalize those versions but never found
> the time to do it.  The major points are the treading model and the
> socket reuse. Have you also tested these points ?  (The problem is
> to have thread specific variables for the socket variables (no
> special vars in C :( ))

Yes, I tried to test these things, too. The code seems to keep the
socket info in the configuration records. We know that this didn't
work for 1.3.x[1] but it seems to work for 2.x. I inserted logging
statements to check whether the sockets are actually re-used and they
obviously /are/ re-used.

I also tried to test whether there are issues with multiple mod_lisp
instances[2] but I couldn't break the code. What I did was something
like this: Start two different mod_lisp instances from different Lisp
images in different locations. Then run ApacheBench to request a page
from the first image several thousand times. Finally request a page
from the second image manually one or more times. This was always
enough to break mod_lisp prior to 2.37 but doesn't generate errors
with mod_lisp2.

Maybe my test methodology is flawed but at the moment I'm pretty sure
that everything works fine. Perhaps Chris wants to comment on these
issues.

What I saw was that mod_lisp2 with Apache 2 seems to be a bit slower
than mod_lisp with Apache 1.3 - something like 280 requests per second
versus 340 requests per second (on VMWare). I'm not sure if this is
due to Apache 2 or due to mod_lisp2, though. From a quick glance at
the code it seems that mod_lisp2 does a lot of error checking which I
think is a good thing. I don't mind if this results in a speed
decrease that's barely noticable unless you've hundreds of
simultaneously connected clients.

Also, please note that I only ran these tests on Linux. On Windows
(which supposedly has another default threading model) I only checked
whether the standard TBNL tests succeeded.

Cheers,
Edi.

[1] <http://common-lisp.net/pipermail/mod-lisp-devel/2004-July/000007.html>
[2] <http://common-lisp.net/pipermail/mod-lisp-devel/2004-August/000018.html>





More information about the Tbnl-devel mailing list