Here is a simple SPDY performance test and results I have created locally and I like to share my finding with you.
As part of Google’s “Let’s make the web faster” initiative, Google (and I guess Chromium team as well) is experimenting with alternative protocols to help reduce the latency of web pages. One of these experiments is SPDY (pronounced “SPeeDY”), an application-layer protocol for transporting content over the web, designed specifically for minimal latency. Today, Chrome and Firefox browsers have implemented SPDY supports.
To see how much performance gain I get from using SPDY over HTTPS, I created a local Linux Mint 13 virtual image running in VMware Workstation 8.0. Basically, I compiled my own copy of Apache 2.2.22 directly from source, compiled the Chromium customized mod_ssl and mod_spdy based on the instructions (step 6 without using a package manager) from SPDY website (http://code.google.com/p/mod-spdy/wiki/GettingStarted), and obtained test results using Chrome 21 in the host machine.
The test HTML page itself was exactly 6206 bytes with about 7.2MB of JPGs. (48 JPGs total.) The final results (after 5 browser refreshes each) was 133ms (HTTPS) vs 115ms (SPDY), or 13.5% improvement.
Note that I did not optimize Apache 2.2 at all in my installation, and I wanted to avoid using the Linux distro optimized version of Apache. So there might be configurations or changes that I should have done in order to get more than 20-30% performance improvements that Google and Chrome teams had claimed in their tests and demonstrations.
I am not a full time (web) system administrator, there are many things I don’t necessary know about to optimize web servers.
Will I use it in my the future? Yes, at least to improve the experience for Chrome and Firefox users in the near future.
Furthermore, mod_spdy only works on Apache 2.2 and not yet for Apache 2.4. If you are already using version 2.4, I guess you can either wait for a while or contribute open source code to the SPDY project and make it work for version 2.4.
That’s it for now. See you next time!