When comparing lighthttpd vs aolserver, notice that aolserver only does worse than lighthttpd for large files, and on the same file system/hardware. Thus, the difference in benchmarks is not likely to be the access logs or disk.

Lighthttpd is *not* using the system call to send a file to a socket (I forget the name) as this call was taken out of the Linux kernel, I believe with 2.4. I remember reading a note about this from Linus, that the performance for that system call was terrible, so they were taking it out.

Based on my own experience with sending large files over tcpip, the difference is that aolserver uses a thread-based approach vs a lighthttpd's single-thread async approach.

But really, I'm not sure aolserver's performance is really an issue anyhow, because aolserver only slows down with large files (100mb+) and at that point, you're completely saturating your network connection (in my 128mb benchmark below, aolserver is sending 695mb per second!)

So, I don't see any point in worrying about improving aolserver's plain-file-sending, at least until we get start getting 10 gigabit network cards (!)

-john




On Sep 27, 2007, at 4:53 PM, Tom Jackson wrote:

I was looking at lighttpd performance
(at http://trac.lighttpd.net/trac/wiki/Docs%3APerformance )

Considering how well AOLserver stands up to lighttpd, my question was why does
lighttpd do better?

For sending small files AOLserver is slightly better, but then performance
goes down.

One reason might be that lighttpd uses a syscall that sends the file directly to the network adapter, bypassing lighttpd. I wonder if AOLserver does this, or if it is possible to detect errors in the webserver if the whole file
isn't sent.

Another reason might be that lighttpd doesn't write an access.log by default. I wonder if you can turn this off in AOLserver? Or, if not, can the benchmark
be run for lighttpd with the access.log enabled:

http://trac.lighttpd.net/trac/wiki/Docs%3AModAccessLog

With multi-cpus and lighttpd processes, lighttpd might mess up the access.log writing, but if these writes are taken out of the performance equation, it
sure gives lighttpd a headstart.

Are there any hints on how to setup the benchmarking? I can run one here on a
1cpu/2core/64bit laptop.

If we can establish a benchmarking suite, it would help test various setting
for ns_limits and ns_pools.

It would also be interesting to see benchmarks under misbehaving clients.

One other factor is number of disks. Lighttpd recommends 2 x number of disks to determine processes, although it seems like this wouldn't be such an easy
choice.

Ideas?

tom jackson

On Tuesday 25 September 2007 00:50, John Buckman wrote:
I did some benchmarks of aolserver vs lighthttpd on plain files of
various sizes, on my 8cpu 64 bit server.

For 3 runs, with a 4k text file, the lighthttpd stats were 15103.87/
s,  14845.20/s and 15307.17/s, vs (as Dossy reports http://dossy.org/
archives/000517.html) aolserver's 15237.00/s.

Result: Aolserver is performing virtually identically to lighthttpd
with a small 4k file.

With a 44k JPG (the BookMooch home page illustration) aolserver is
slightly slower:
aolserver: 8164.54/s, 8283.93/s
lighthttpd: 10281.01/s, 9969.91/s

With 1,414k sized zip, aolserver is about 1/2 as fast:
aolserver: 406.36/s,  421.10/s
lighthttpd: 844.05/s,  807.83/s

with a 128mb file, aolserver is 40% slower:
aolserver: 5.42/s
lighthttpd: 8.88/s

And just FYI "hello world" in tcl (<% ns_adp_puts "hello" %>):
aolserver: 950.85/s

I haven't done a "hello world" in C: I assume it'd be close to the
16k/s speed


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

Reply via email to