By Sanjeev Sharma on May 23, 2012
Performance has been the lingua franca for IT vendors for some decades now. When asked about the merit of a product be it hardware, software or even a framework, the instinctive response of vendors is to proclaim superiority of their product in terms of Performance - "5x Performance Gains", "micro latency", "2ms response time", "10 million transactions/sec", etc., and more, the list is endless. With due respect to the R&D efforts behind developing exceptional software and hardware products, i find it bewildering and beguiling when sales, marketing (and sometimes technical people) draw a simplistic connection between Performance and business value. For instance, how do you connect the dots when someone says "5X performance improvement in XYZ leads to faster time-to-market"? Surely there must be a connection but i find the leap of imagination delusional.
Motivated by my own inadequacy to comprehend the business value of Performance i decided to get back to fundamentals and develop my thinking based on the notion of Wait-time from Queuing Theory. This theory states that average Waite-time in a single queue is a function of the systems Capacity, Utilization and Efficiency. i.e. Wait-time = f(Capacity, Utilization, Efficiency), where Wait-time is inversely related to Capacity and Efficiency and directly related to Utilization. Two things worth noting in this model are that firstly, Capacity is costly and such needs to be sized for economics and secondly for a given capacity there is an optimal Utilization Rate beyond which Wait-Time increases exponentially.
Let me illustrate this with an example of a capacity planning for a dine-in restaurant. If there are too many chairs, wait-time for guests arriving at the restaurant will be very little but this will incur overhead of over-capacity. On the contrary, if there are too few chairs, wait-time for guests will be very high, in the worst-case long enough to cause the queue of waiting people to churn. In theory this would mean a Utilization of 100%! This is an important point to note as what i mentioned earlier too that Utilization increases exponentially beyond a certain threshold level. Efficiency is what influences when this threshold level is reached. Hence capacity will need to be planned keeping long-term and peak traffic at the restaurant in mind while achieving a utilization rate that offers the optimal balance between idle-time overhead and queue wait time.
Performance of computers too is analogous to the Queuing Theory model. The graphic below depicts the dimensions of performance, the primary technological approaches that drive improvement in those dimensions and finally how those approaches map to the notion of Capacity, Utilization and Efficiency.
In the next post, i will delve deeper into articulating How performance is accomplished in terms of Capacity, Utilization and Efficiency through engineered systems.