You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Ian Holsman <li...@holsman.net> on 2002/09/16 18:27:50 UTC

Re: Apache Performance On Linux

On Sun, 15 Sep 2002 23:42:25 -0700, Upendra.Samaratunge wrote:

> Hi  Ian,

Hi Upendra, I have forwarded this to the apache development list,
as there are smarter people than me on there who could help you, and I
belive that this is a generic enough question that other people might find
the answers useful. (hope you don't mind)
> 
> I am a Masters Student doing a bit of research on Apache Server
> performance on a Linux System. Could you please give me some pointer on
> what I should be measuring to get an understanding of the performance of
> Apache.


The first thing you'll need to do is find out 'how' to measure the stats
I was planning on using orcallator (as I'm familiar with it from Solaris)
but net-snmp or 'supermon' might be of interest to you as well 
if you know of any others please tell me.. as I'd like more to choose from as
well


The things I look at on solaris are (I'm not sure if linux gives you all
of these, i'm sure it does)
1. CPU utilization user+sys mainly
2. lock contention  (ie.. mutex ops/second)
3. context switches
4. memory/swap usage (should always be zero)
5. runqueue (this is a secondary one.. but it people love to see
   loadaverages)
6. NFS ops/second (if you have a nfs server in your benchmark)
7. Network I/O (usually in MB/s - you can get this off the switch port)

on the actual HTTP side I would measure:
1. concurrent requests/second
2. first-byte time (time before the server actually sends a response)
3. variability of response times for a given requests/second rate
4. mean/median/std-deviation (average sucks for HTTP type stuff)


things to be carefull of:
1. a client on a 100MBs network will not test the machine the same as one
   going over a 56K modem. you will need to get your network setup to
   simulate 56k modems

2. decide if you want to test just static pages or a dynamic ones, as it
   makes a big difference to EVERYTHING.
   
3. if you have a budget I would recommend using a machine like
   'webavalanche' from www.caw.com, it can do some pretty neat things to
   simulate 'real-life'

4. if you have no budget, look at flood, or segue.

5. one thing to be carefull of is that your load generators actually
   generate a fixed request/second rate. most of them just hit the server
   as hard as they can causing 100% cpu utilization in most cases, or just
   produce really sucky results when the response time is slow.. 
   in an ideal world you would want to simulate 5 *new* requests every
   second, not 5 requests a second, as this simulates what happens on
   'real-life' webservers
  
> 
> Thanks,
> Upendra

Not a problem