More bandwidth can't always solve your application performance problems

We have, over the years, come to the realization that application performance issues cannot always be solved simply by increasing the amount of bandwidth available. The concept was inherently flawed from the beginning anyway. You can increase the number of lanes on the highway but that doesn't mean that you'll get to your destination faster, it just means more people can get where they're going in about the same amount of time.

This is because there is an upper bound on the speed of a car, just as there is an upper bound on the speed at which an application can serve up data, and both boundaries depend highly on what's "under the hood". The performance of an application has more to do with the code, its underlying architecture, the size and type of data being exchanged, the distance traveled, and the workload of the server on which it is deployed than the size of the pipes in your data center and beyond.

That's why application acceleration solutions encompass a wide variety of technologies and techniques - because a good acceleration solution requires a number of technologies working in concert to address as many of the underlying factors that contribute to performance issues as possible.

Application Acceleration Technologies

  • Data Reduction
    Usually part of the core feature set of a WOC (WAN Optimization Controller), data reduction technologies use sophisticated algorithms to recognize repeating patterns of data and reduces the pattern to a few bytes, saving bandwidth. The downside of this technology is that it always require 2 devices, one at each end of the pipe.
  • Protocol Optimizations
    There are very few application acceleration solutions that do not support basic TCP protocol optimizations as defined by a number of RFCs. These optimizations improve how TCP works and, in doing so, improves the overall performance of any application that uses TCP as its transport layer.
  • Caching and Compression
    Caching and compression have long been the foundation of application acceleration. Compression reduces the size of data such that it requires fewer packets to deliver and therefore takes less time to arrive at its destination. Caching moves the data closer to the requestor and can often take advantage of the client's native caching mechanism to improve performance through the decrease in distance.
  • Server Offload
    Server offload capabilities are rarely thought of in the context of application acceleration, and yet the offloading of certain tasks, such as SSL management, certainly improves performance. This is usually because the device offloading the task from the server has hardware capabilities that improve the performance, such as in the case of SSL. But it can also be applied to network-focused tasks such as connection management. By providing the means through which intermediaries can manage connections between clients and servers the additional burden of opening and closing connections can result in more resources on the server which can be dedicated to processing requests, thus improving overall performance.
  • Application Specific Optimizations
    Application specific optimizations are least frequently seen in application acceleration products primarily because (1) there are so many applications to choose from and (2) these optimizations rarely do anything to help with the performance problems of custom built applications. Still, for third-party packaged applications like SharePoint, Exchange, SAP, Siebel, and Oracle, specific optimizations that improve the application by applying policies developed specifically for those applications can certainly improve performance, especially when combined with the use of other application acceleration techniques.

You will note that very few of these technologies deal with changing the size of data, or mention the need to increase the available bandwidth. Bigger isn't always better, and in the case of application acceleration it is rarely the case that more bandwidth can solve an application's performance problems.

Imbibing: Water