On Wed, Jan 13, 2010 at 2:08 AM, Jarrod Slick <jar...@e-sensibility.com>wrote:

>
> On Jan 13, 2010, at 12:47 AM, Scott Gifford wrote:
>
> On Wed, Jan 13, 2010 at 1:31 AM, Jarrod Slick <jar...@e-sensibility.com>wrote:
>
>> Apache Users,
>>
>> As some of you may or may not know a fairly prominent commercial
>> webserver, LiteSpeed, claims to outperform even a well configured Apache
>> 2.2.x installation by orders of magnitude.  They have some internal
>> benchmarks that appear to back this up, but, being a natural skeptic, I
>> wanted to test it out for myself.  So I've agreed to pit Apache and
>> LiteSpeed (as well as a few other webservers) against one another in
>> benchmarking tests on a 2x Xeon 5520 machine.  I, and hopefully others, will
>> be configuring Apache.  LiteSpeed will be configuring their product.
>>
>
> What is the workload you are benchmarking?  Static pages, PHP/mod_perl
> code, CGI, etc.?  Is the client a benchmark tool or a browser, and where on
> the network is it relative to the server?  How are you measuring performance
> (page load times, requests/second, etc.)?
>
> -----Scott.
>
>
> Scott,
>
> I'm open to suggestions on all fronts, but as it stands we were going to do
> the following with the ab tool:
>
> -small static pages test
> -large static pages test
> -hello world php test
>
> And we were going to also benchmark a wordpress/joomla site in a more
> "real-world" load simulation test using the tool "siege".
>

For smaller static content that will be fetched multiple times without
changing, consider mod_mem_cache, which will avoid most disk I/O for that
content.  For larger content or content that will just be fetched once or
change frequently, consider enabling sendfile or mmap for sending it.  For
PHP, use a PHP accelerator, such as eAccelerator, APC, or Zend.  For larger
applications, do your best to configure the different components
appropriately, for example with Drupal configure the static Javascript and
CSS files to be cached with mod_mem_cache, use the PHP accelerator for the
code, and if you have any large files make sure you have sendfile or mmap
available.  If the benchmark client will do any caching, make sure
expiration is configured to allow a long cache time.  Disable .htaccess
unless you need it, so Apache doesn't have to look for it.

Do a dry run while running top and iostat to see where your bottleneck is.
 Try running Apache under strace to see what it's doing at each request, and
get it doing as little as possible.  If it is serving a file from the memory
cache or with a static mmap, strace should show it making practically no
system calls.

If you google around for Apache benchmark tuning I'm sure you'll find some
other ideas and examples.

Good luck!

----Scott.

Reply via email to