Over the years I've developed a lot of rules of thumb for handling capacity planning for interfaces. Loads are bursty, they have peaks and valleys. The following rules of the road have worked well for me over 20 years:
Sum the Week and Divide by 5 to get your Worst Day of the Week
Sum the week (all seven days) and divide by 5 to get a daily average load. That will give you an average load that addresses your needs for the worst day of the week, and regardless of what day you start on, you can ignore workweek variation.
Shift Changes and Breaks follows the rule of 3
Shift changes and breaks can triple your loads (depending on user workflows). Users want to finish up what they are doing before they leave.
Plan for 5x Peak Loads
Extraordinary events can place additional burden on your system. Plan for a peak load of 5 times your average. That will account for about 99.95% of your requirements, give or take. That has to do with the special relationship between the Poisson distribution used to describe "job" arrivals, and the exponential distribution, and failure rates (e.g., the failure case where a job arrives when the system is already "at peak capacity").
Load varies Fractally by Time Unit
The last rule is simply this: The deeper you dig into it (month, week, day of week, hour of day), the more detail you can find in instantaneous load variation. More detail isn't better. If getting more detail doesn't change your estimates ... stop digging. It's just a rat hole at that point.
I've been able to apply these rules to many systems that involve human workflows: From the number times I'd have to visit a customer based on the number of computer they have (to estimate my costs for a service contract back in the days I managed a computer service organization), to the number of dictionary compression jobs per day back when I was responsible for a compression services team working on spelling dictionaries, to the number of CDA documents a physician might generate over the course of their day.
Keith
Sum the Week and Divide by 5 to get your Worst Day of the Week
Sum the week (all seven days) and divide by 5 to get a daily average load. That will give you an average load that addresses your needs for the worst day of the week, and regardless of what day you start on, you can ignore workweek variation.
Shift Changes and Breaks follows the rule of 3
Shift changes and breaks can triple your loads (depending on user workflows). Users want to finish up what they are doing before they leave.
Plan for 5x Peak Loads
Extraordinary events can place additional burden on your system. Plan for a peak load of 5 times your average. That will account for about 99.95% of your requirements, give or take. That has to do with the special relationship between the Poisson distribution used to describe "job" arrivals, and the exponential distribution, and failure rates (e.g., the failure case where a job arrives when the system is already "at peak capacity").
Load varies Fractally by Time Unit
The last rule is simply this: The deeper you dig into it (month, week, day of week, hour of day), the more detail you can find in instantaneous load variation. More detail isn't better. If getting more detail doesn't change your estimates ... stop digging. It's just a rat hole at that point.
I've been able to apply these rules to many systems that involve human workflows: From the number times I'd have to visit a customer based on the number of computer they have (to estimate my costs for a service contract back in the days I managed a computer service organization), to the number of dictionary compression jobs per day back when I was responsible for a compression services team working on spelling dictionaries, to the number of CDA documents a physician might generate over the course of their day.
Keith
0 comments:
Post a Comment