Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Apr 1999 12:05:05 +0100
From:      Geoff Buckingham <geoffb@demon.net>
To:        freebsd-hackers@freebsd.org
Subject:   Re: NT4 server 2.5 times faster than Linux
Message-ID:  <19990416120505.J3680@gti.noc.demon.net>

next in thread | raw e-mail | index | archive | help

I believe the test would have had similar results even if the Linux install
had been tuned:

This isn't to say the test was fair however....


Anyone considering benchmarking FreeBSD (or Linux) with specweb or similar
should remember the following.

Apache is an entirely inappropriate choice of httpd for performance work, any
good apache benchmarks you see will are likely to have been  achieved running 
apache on a non standard port and a caching accelerator on port 80.

The problem with apache is you will not get the big numbers you want from the
tests because apache requires a process per client. For better results I
would suggest zeus or thttpd.

http://www.zeus.co.uk

Anyone seriously persuing this may be able to get some help from zeus,
including information on enabeling  the use of sendfile with Zeus (maybe)

http://www.acme.com

thttpd is a nice open source httpd that people could base a performance
httpd on. Basically you need to agressivly mmap the test data set, sendfile
would be another nice addition.

The next problem for FreeBSD is the giant lock, all your httpds want to push
data through the system. My own preliminary work shows a performance drop
when running SMP to benchmark apache. You burn most of your CPU spinning
waiting on the giant lock. I am not sure how devolved linux's lock is, however
this is likely to cause them problems too as everyting wants to use the
network.

There is no easy way round the above any serious benckmarking should
perhaps initially be done uniprocesser. I have no knowledge of how the giant
lock is likely to break down. Is it likely that individual interfaces may get
ther own locks?

If you do run SMP and have a single process httpd you will need multiple 
processes (unless it is threaded, avoid thread per client implimentations) :-)

More general points.

Specweb requires you to write full logs during the benchmark, you need
stripped disks for this.

Memory, you want to get your whole data set into memory.

Network, you need a lot. For PCs you are probably best going for the 64bit
Alteon nics.(Do they do checksumming yet?)

TCP extensions, most of these are intended for WANs you should experiment
with disabeling these.

There is probably more i have forgotten.....
--
GeoffB



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990416120505.J3680>