Real world stats on Web Server Performance for static content (Apache, Lighty, IIS, Cherokee, Tomcat, etc.)

http-serverperformancestatic-content

On a project I'm on (private web based application accessed by 1,000s of users) we're looking to shard off the loading of static content to a separate server (e.g. as a CDN) for improved performance.

I'm only looking to serve up static (.JS, .CSS, .GIF, .JPG, & .PNG files) that will rarely change, and will hopefully be heavily cached by the end users.

Therefore I'd like to be able to set this up to not serve up cookies, gzip the text based files, and set the outbound cache headers to 12mo. (filenames are versioned)… and enable a decent server-side cache.

With this being rolled out, the OS and Web Server to be used are up for grabs. My default thoughts we're… well, duh Apache on Linux… but in my recent research I've read some not flattering things about Apache (when compared to other servers) (Lighttpd).

We can't be the first team to have setup a dedicated static Web Server (/pool) thus I'm hoping others have some stats to compare.

If I believe the stats I read so far (none are really unbiased 3rd party), it appears that the raw speed and ability to handle concurrent connections places the servers in this order.

  1. Cherokee
  2. Lighttpd
  3. Nginx
  4. Apache

I'm not even sure where IIS, Tomcat, Jetty, LiteSpeed, etc. fit into the rankings.

Now I realize there are other considerations (OS lock-in, $$$/licensing, ease of use & community knowledge) but outside those…

Question:

Has anyone here done any speed comparisons (e.g. with HTTP Test Tool, ApacheBench or similar) against these servers and has info they can share about which is faster at serving static content or noticed any alarming memory usage etc.?

Best Answer

I'm not sure if your performance need goes beyond apache capacities. It would be great if you have pre-defined SLA (service level agreement) for your need.

I don't know any article with the benchmark you requested (although I think you can determine your own SLA/metrics and test servers through a own test process).

Easy of use, community support and other relevant aspects... You should go first with Apache IMHO. With the proper configuration I already ran a site that supports up to 70,000 people at the SAME TIME.

If you really need go further, then you should re-think your infrastructure and maybe hire an exclusive professional in the subject (yeah, I'm supposing if you have more than 70,000 people simultaneously, you can afford one).