About Performance Modeling ...
August 29, 2013

Bob Wescott
The Every Computer Performance Book

Share this

There are as many kinds of computer performance models as there are PhD candidates to dream them up. For most people, they feature complex math and nearly impenetrable terminology. I’ll bet many of them are wonderfully useful. Here, I want to convince you to look into performance modeling by exploring just two kinds of models: Capacity and Simulation.

Capacity Models

Capacity models are just regular old capacity planning with a bit of a twist. Instead of “find a utilization and scale it,” now there is more work to do. In a capacity model you are redirecting the flow of work, adding new work, adjusting the mix of current transactions, or incorporating new hardware. There are a lot more things to count and account for.

To do a capacity model you have to understand what you’ve got, and then figure out how to adjust the numbers to compensate for the changes you are modeling. It requires performance monitoring, capacity planning skills, simple math and an eye for detail. The work is done with a simple spreadsheet program.

Capacity models can do a lot, but they can’t predict the response time under load. If you need to know that, then you either have to build your new computing world and then load test it, or use a simulation model.

Simulation Models

Simulation models are just combination of an accounting program and a random number generator. They simulate work arriving randomly at a pace you select and then simulate the flow of work though a simulated computing world by accounting for costs and delays at every step. They give you throughput, utilization and response time information. The only problem is that they sound scary.

I used to believe that simulation modeling could only be done by super-smart NASA engineers and were wildly expensive to build. I was wrong. I used to teach modeling concepts and a PC-based simulation modeling tool to rooms full of regular programmers who worked for regular companies. From that I learned modeling is doable. The stories I heard from my students about the models their companies relied on taught me that modeling is useful.

Modeling Is Necessary

There are two kinds of important performance problems you can’t solve without modeling. You can’t do performance monitoring, capacity planning, or load testing on un-built systems, as there is nothing to test. You can’t use simple capacity planning or load testing to predict future performance on systems that are about to undergo radical transformations.

In both cases there is a bit of a chicken-or-egg problem as the company wants to know the cost of the hardware for the unbuilt or radically transformed computing world before it is built, but until you build/transform it, you don’t have all the data you need to make those projections. Modeling can help you solve this.

All Models Are Wrong ...

George Box once artfully said: “All Models are wrong, some models are useful.” So, please take a moment and get over the fact that your model won’t generate perfect results.

Nobody models to a high degree of accuracy/perfection because to get that you have to build wildly complex models. You have to put so much time into the model that the business is out of business before the model sees its first run. The 80:20 rule applies here. A simple model can give you a ballpark answer. That is often more than good enough to green light a project or size a hardware request.

... Some Models Are Useful

Imagine an inaccurate model where you are guessing at many of the input parameters and unsure about the transaction mix or peak demand. You run the model and, even with the most optimistic assumptions, it forecasts that you’ll have to buy somewhere between two and five new servers. If the budget is closed for the rest of the year, then this useful model just saved you a lot of time on that sure-to-fail idea. As I like to say: If you have to model, build the least accurate model that will do the job.

Modeling Performance Is A Good Tool For Your Toolbox

Modeling allows you to peer into an un-built, or radically changed future. It can save you a lot of time and/or money. It is not rocket science. You should check this out.

Bob Wescott is the author of “The Every Computer Performance Book”.

Related Links:

More information on this, and many other useful ideas, can be found in Wescott's book:

The Every Computer Performance Book

Share this