From: Kenneth Wygand (KWygand@customonline.com)
Date: Fri Jul 30 2004 - 13:08:25 GMT-3
Since IOS is proprietary, we really don't know how the formula is coded to determine what the load will be at any particular point in time, but we can make some good guesses. We know the following:
1) The load is based upon a "weighted-average" of 5-second intervals totaling the "load-interval" amount of time. In other words, a recent 5 second interval is weighted more heavily than a 5 second interval that occured at an earlier time. Each consecutive "older" 5 second interval is weighted less and less until the entire duration of the "load-interval" is accounted for, and then the weight is zero (or the value is just throw away).
So let's say you set the load-interval to 30 seconds. You have a total of 6 5-second intervals in this load-interval. Say the circuit it brought up and for 5 seconds you load the circuit 100%. We can probably calculate how many pings at what size it would take to keep this circuit at 100% utilization for 5 seconds, but this won't be important for lab purposes. The reason it won't be important is because you can simply set up a continuous ping and when the one ping stops, the next one starts. However, if you wanted to figure out 5 seconds of load on a 64kbps circuit would be 320Kbps, or 40KBps. using a ping size of 1000-bytes, you would need 40 ping packets to fill this first 5-second interval to 100% utilization.
Here's where it gets fuzzy. So if you consider the last 6 5-second intervals (to account for the load-interval), you'll have the following 6 values, with the most recent value at the right: 0 0 0 0 0 100. If you take the -average- (note how I didn't say "weighted" average), you will get 16 2/3%, or 16.66% load over those last 6 5-second intervals. When considering that the load value is from 1-255, this would yield a value of 42 or 43, depending on how the IOS rounds off. However, this IOS does not use an -average-, it uses a -weighted average-. This is properitary so we can do no more than speculate how this is done internally. Let's say it is weighted linearly. Say the most recent value is weighted X times more heavy than the oldest value, where X is the position number with respect to the position of the oldest value (which will always be 1). So in our scenario of the following load values:
Load Values:
0 0 0 0 0 100
Weights:
1 2 3 4 5 6
Now multiply each respective load value by it's assigned weight, sum up all of these values and divide by the sum of all the "weight" values. Let's take this one step at a time.
Multiplying each respective load value by it's assigned weight, we get:
0 0 0 0 0 600
Summing up all these values, we get:
0 + 0 + 0 + 0 + 0 + 600 = 600
The sum of all the "weight" values is:
1 + 2 + 3 + 4 + 5 + 6 = 21
Now divide the sum of all the values by the sum of all the "weight" values and you get:
600 / 21 = 28.57%
Now translate this back to our value from 1-255 and you get 72 or 73 in the same 5 second interval. However, if we consider that this "100% utilization" could have been in the last value, then our sum would be 100 instead of 600 (because our "weight" value would've been 1 instead of 6). Then when we divide 100 / 21, we would get 4.76 which translated to the 1-255 scale is 12 or 13. This, not coincidentally, is 6 times less than our original value due to our decision to linearly weight the 5-second intervals.
So, to me, any type of an extended ping with enough pings in the queue will yield a line rate of 100%. It is really a function of time and the internal IOS logic that then determines when your load threshold will be met, not the number of ping packets.
Ken
This archive was generated by hypermail 2.1.4 : Sun Aug 01 2004 - 10:12:07 GMT-3