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.

Reply via email to