« Content Delivery Networks (CDN) – a comprehensive list of providers | Main | Product: Tungsten Replicator »
Monday
Sep082008

Guerrilla Capacity Planning and the Law of Universal Scalability

In the era of Web 2.0 traditional approaches to capacity planning are often difficult to implement. Guerrilla Capacity Planning facilitates rapid forecasting of capacity requirements based on the opportunistic use of whatever performance data and tools are available.

One unique Guerrilla tool is Virtual Load Testing, based on Dr. Gunther's "Universal Law of Computational Scaling", which provides a highly cost-effective method for assessing application scalability. Neil Gunther, M.Sc., Ph.D. is an internationally recognized computer system performance consultant who founded Performance Dynamics Company in 1994.

Some reasons why you should understand this law:

1. A lot of people use the term "scalability" without clearly defining it, let alone defining it quantitatively. Computer system scalability must be quantified. If you can't quantify it, you can't guarantee it. The universal law of computational scaling provides that quantification.

2. One the greatest impediments to applying queueing theory models (whether analytic or simulation) is the inscrutibility of service times within an application. Every queueing facility in a performance model requires a service time as an input parameter. No service time, no queue. Without the appropriate queues in the model, system performance metrics like throughtput and response time, cannot be predicted. The universal law of computational scaling leapfrogs this entire problem by NOT requiring ANY low-level service time measurements as inputs.


The universal scalability model is a single equation expressed in terms of two parameters α and β. The relative capacity C(N) is a normalized throughput given by:

C(N) = N / 1 + α (N − 1) + β N (N − 1)

where N represents either:

1. (Software Scalability) the number of users or load generators on a fixed hardware configuration. In this case, the number of users acts as the independent variable while the CPU configuration remains constant for the range of user load measurements.

2. (Hardware Scalability) the number of physical processors or nodes in the hardware configuration. In this case, the number of user processes executing per CPU (say 10) is assumed to be the same for every added CPU. Therefore, on a 4 CPU platform you would run 40 virtual users.

with `α' (alpha) the contention parameter, and `β' (beta) the coherency-delay parameter.

This model has wide-spread applicability, including:

  • Accounts for such effects as VM thrashing, and cache-miss latencies.

  • Can also be used to model disk arrays, SANs, and multicore processors.

  • Can also be used to model certain types of network I/O

  • The user-load form is the most common application of eqn.

  • Can be used in combination with measurement tools like LoadRunner, Benchmark Factory, etc.



Gunther's book: Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services and its companion Analyzing Computer Systems Performance: With Perl: PDQ offers practical advise on capacity planning. Distilled notes of his Guerilla Capacity Planning (GCaP) classes are available online in The Guerilla Manual.

Reader Comments (9)

Does anybody know of any tools to help forecast/model hardware & network capacity needs?

I am working forecast/model in excel for a HiScal system i am putting together, but seeing some real tools would help a lot.

December 31, 1999 | Unregistered Commenterdiduseethis

We have raised a generation of Semi skilled web journeymen that resort to the formula of Apache MySql without the concomitant skill set to accurately forecast performance and 'over the cliff' thresholds for latencies that cause application crashes. The solutions offered to ameliorate the bottleneck between app server and cheap databases have been 'sort-of and kind-of' solutions.

I think this blog and some of the latest vendors are starting so see the problems of database slaves and clusters - and the technical labor corps are maturing. I struggle with this daily in my wrangling with local developers and back-end types that have only modest experience in intelligent demand modeling and planning.

December 31, 1999 | Unregistered CommenterAlan Wilensky

great post, very well written.

December 31, 1999 | Unregistered CommenterJason Rine

I'm not sure how this is helpful. I have looked through Gunther's book, and I'm still at a loss as to how, armed with queuing theories and this universal scaling law equation would help someone understand the actual process of planning for growth on their website. I'm trying to figure out where those equations would fit into my work.

I work in terms of webserver requests, storage requirements, network limits, and caching systems. The number of CPU cores is irrelevant to my memcached install; it doesn't use (barely) any. What it does use is network, and lots of it. The same for my databases; it's all about the disk seeks, not the CPU.

December 31, 1999 | Unregistered CommenterJim

Hiya,

I have some home grown tools I wouldn't mind sharing.

Cheers,
SS

December 31, 1999 | Unregistered CommenterSS

The books mentioned in the post have tools in Excel, Mathematica and Perl:PDQ. Check out their reviews on Amazon.

December 31, 1999 | Unregistered Commentergeekr

Why not use the tool for network and disk I/O then? Have you seen the Guerilla Manual? It has advice on how to use the law:

Virtual load testing
"The universal model in eqn.(1) allows you take a sparse set of load measurements (4-6 data points) and determine how your application will scale under larger user loads than you may be able to generate in your test lab. This can all be done in a spreadsheet like EXCEL."

December 31, 1999 | Unregistered Commentergeekr

If you're CPU bound, well, you're doing something wrong already.

Or you're rendering Toy Story 4.

December 31, 1999 | Unregistered Commenterquellish

Hi,
Somebody mentioned here about homegrown tools for capacity planning.Can you please send it at rajiv13579@yahoo.com, as i am in urgent needs of tools for caopacity planning.

Cheers

December 31, 1999 | Unregistered CommenterRajiv

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>