Fred Gilham <[EMAIL PROTECTED]> writes:
> Both are multiprocessing web servers. Both seem to hang when getting > requests from more than one client at a time. I think there's > something wrong with the CMUCL multiprocessing. I notice this same > kind of thread starvation in other things such as graphics > applications. (I think this has been a problem for a long time, but I > have no idea exactly what it is. If anyone is curious, I have code > that runs under Garnet that demonstrates the problem using the Garnet > animation interactors.) I haven't experienced this until now. Curious as I am I downloaded the newest version of Portableaserve and did some na�ve benchmarks with Apache's ab tool - Apache 1.3.26 vs. Portableaserve 1.2.12c on CMUCL 18d, both on Linux. Both serve the same page, namely the welcome page from example.cl which comes with Portableaserve. I emulated the dynamic behaviour of this page (showing the process ID, the host name and some other stuff) by running the page served by Apache through PHP so it provides approximately the same information. Apache is about two times as fast, but this is what I would have expected - the Lisp approach will shine if you're doing more complicated stuff. However, I wouldn't say that CMUCL seems to hang here. (Of course it will hang if you increase the concurrency level - but that's due to the fixed number of listeners mentioned earlier in this thread.) edi@dyn164:~ > /usr/local/apache/bin/ab -n 100 -c 5 'http://localhost/aserve.html' This is ApacheBench, Version 1.3d <$Revision: 1.65 $> apache-1.3 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient).....done Server Software: Apache/1.3.26 Server Hostname: localhost Server Port: 80 Document Path: /aserve.html Document Length: 1201 bytes Concurrency Level: 5 Time taken for tests: 0.113 seconds Complete requests: 100 Failed requests: 0 Broken pipe errors: 0 Total transferred: 149864 bytes HTML transferred: 124904 bytes Requests per second: 884.96 [#/sec] (mean) Time per request: 5.65 [ms] (mean) Time per request: 1.13 [ms] (mean, across all concurrent requests) Transfer rate: 1326.23 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 0 2 2.0 1 12 Processing: 3 3 1.3 3 14 Waiting: 0 2 0.7 2 4 Total: 3 5 2.1 4 14 Percentage of the requests served within a certain time (ms) 50% 4 66% 4 75% 5 80% 5 90% 5 95% 8 98% 14 99% 14 100% 14 (last request) edi@dyn164:~ > /usr/local/apache/bin/ab -n 100 -c 5 'http://localhost:2001/' This is ApacheBench, Version 1.3d <$Revision: 1.65 $> apache-1.3 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient).....done Server Software: AllegroServe/1.2.12.C Server Hostname: localhost Server Port: 2001 Document Path: / Document Length: 1200 bytes Concurrency Level: 5 Time taken for tests: 0.217 seconds Complete requests: 100 Failed requests: 0 Broken pipe errors: 0 Total transferred: 134532 bytes HTML transferred: 121200 bytes Requests per second: 460.83 [#/sec] (mean) Time per request: 10.85 [ms] (mean) Time per request: 2.17 [ms] (mean, across all concurrent requests) Transfer rate: 619.96 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.4 0 3 Processing: 4 10 3.6 9 24 Waiting: 0 10 3.8 9 24 Total: 4 10 3.5 9 24 Percentage of the requests served within a certain time (ms) 50% 9 66% 9 75% 9 80% 9 90% 18 95% 18 98% 24 99% 24 100% 24 (last request) > Is anyone actually running a web server under CMUCL? What are you > running? I've been using mod_lisp with Apache for a couple of projects (demos which were, alas, realized in other languages) and was very happy with it. Edi.
