Tuesday, October 02, 2012

Optimizing www.eclipse.org over the years

Since I took over the controls of the eclipse.org servers in October 2004 (hey, that was eight years ago yesterday!) our main website, www.eclipse.org, was optimized along the way to support the tremendous and steady growth in traffic.  I thought I'd share some of those optimizations:

1. Before the Eclipse Foundation, www.eclipse.org was one single server.  There was no scaling it, and there was no fault tolerance.


2. With new hardware, my first iteration of the "improved" www.eclipse.org consisted of four servers: one NFS/MySQL backend and three front-end nodes running Apache.  These front-end nodes also served everything else at eclipse.org, including CVS, Bugzilla, email and all our other websites.  A Cisco load balancer was used to direct traffic, and site files were served directly from NFS.


3. Years later, with some new hardware came a second iteration: segregation of the services.  Having Bugzilla, dev, wiki, cvs and www on the same set of servers was not efficient, and thanks to virtualization, www.eclipse.org was  hosted on three virtual servers.  Data was still served from NFS


4. Since NFS was introducing some I/O latency, we began publishing the website files to the local disks of the servers.


5. We enabled mod_gzip and mod_deflate, and added aggressive cache headers to reduce payload and reduce round trips.


6. With new hardware again, NFS and MySQL were separated on the backend-side.  This gave MySQL much needed breathing room.


7. We shortened the local directory path from a long /path/to/the/www.eclipse.org/website/html to a much shorter /site/.  This reduces stat() calls on the filesystem and reduces I/O overhead.


8. At the same time as 7., we also set Apache's AllowOverride to None so that a .htaccess file is not examined in each and every directory leading up to the desired file, cutting I/O calls drastically.

What's next?  SPDY?  Varnish? More hardware?  Magic?   With any luck, yes to all!

2 Comments:

Blogger Sebastian Hoß said...

Thanks for all the hard work!

6:17 PM  
Blogger Denis Roy said...

:-)

9:55 PM  

Post a Comment

<< Home