This paper is an extension of the work done for another article that highlighted the performance benefits of retrieving uncompressed and compressed objects directly from the origin server. I wanted to add a proxy server into the stream and determine if proxy servers helped improve the performance of object downloads, and by how much.
Using the same series of objects in the original compression article, the CURL tests were re-run 3 times:
- Directly from the origin server
- Through the proxy server, to load the files into cache
- Through the proxy server, to avoid retrieving files from the origin.
This series of three tests was repeated twice: once for the uncompressed files, and then for the compressed objects.
As can be seen clearly in the plots below, compression caused web page download times to improve greatly, when the objects were retrieved from the source. However, the performance difference between compressed and uncompressed data all but disappears when retrieving objects from a proxy server on a corporate LAN.
Instead of the linear growth between object size and download time seen in both of the retrieval tests that used the origin server (Source and Proxy Load data), the Proxy Draw data clearly shows the benefits that accrue when a proxy server is added to a network to assist with serving HTTP traffic.
|MEAN DOWNLOAD TIME|
|Total Time Uncompressed — No Proxy||0.256|
|Total Time Uncompressed — Proxy Load||0.254|
|Total Time Uncompressed — Proxy Draw||0.110|
|Total Time Compressed — No Proxy||0.181|
|Total Time Compressed — Proxy Load||0.140|
|Total Time Compressed — Proxy Draw||0.104|
The data above shows just how much of an improvement is gained by adding a local proxy server, explicit caching descriptions and compression can add to a Web site. For sites that do force a great of requests to be returned directly to the origin server, compression will be of great help in reducing bandwidth costs and improving performance. However, by allowing pages to be cached in local proxy servers, the difference between compressed and uncompressed pages vanishes.
Compression is a very good start when attempting to optimize performance. The addition of explicit caching messages in server responses which allow proxy servers to serve cached data to clients on remote local LANs can improve performance to even a greater extent than compression can. These two should be used together to improve the overall performance of Web sites.