cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
5201
Views
0
Helpful
10
Replies

How to calculate bandwidth use at the point in time

sir_ulrick
Level 1
Level 1

Hi, 

I need to calculate bandwidth use in my topology using only cisco IOS (not solarwinds or different software). After to read different discussions in this community, I found some options but are very old commentaries (around 2012) and I don't know if these forms work really:

 

- utilization =(bit sec / Data rate) x 100

- ping size x 8 / RTT

- About physical interface:

   TXLOAD / 255 -> upload

   RXLOAD / 255 -> download

 

Is it posssible to calculate bandwidth use ping, rtt, ip sla etc? which is the better method? 

 

Thanks!

1 Accepted Solution

Accepted Solutions

Well, first understand bandwidth utilization is always either zero or 100%. I.e. either data is being transmitted or not. When we "measure" bandwidth utilization, it's a measure of the ratio between zero and 100% usage over some time period. So normally to measure bandwidth utilization you take a snapshot of bits/bytes sent at some time, another at a second time. The delta provide bits/bytes transmitted during that time which you can they compare to what could have been 100% utilization all the time.

For example, if we measure 5 million bits set during one second, and "know" it's a 10 Mbps path, utilization during that one second was 50%. (Also understand, this means circuit was 100% half the time measured, but we don't know how the transmission was done. I.e. perhaps link was busy all during the first half second, or only all during the second half of the second, or all busy the first quarter of the second and the last quarter of the second, or . . . All, would be calculated at 50% utilization for the measured second.)

For an end-to-end measure, we can do the an end point's stats too, but the utilization percentage can only be calculated if we "know" the maximum potential bandwidth end-to-end. If we don't know the maximum possible, we might measure forcing 100%. This requires we load the link such that we believe or know its at 100%. "Believing" maximum bandwidth is by sending a bulk set of data, injected at one end measuring how long it takes to be transmitted and received. Unfortunately, of course, we cannot determine potential bandwidth beyond the path's bottleneck (nor can we use it anyway) and it's possible other traffic, at any one time, will "hide" potential bandwidth. I.e. we can only determine the maximum available bandwidth at any one point at time. (Peak bandwidths, that all hit the same measure might reveal the maximum available bandwidth, but might too.)

So again, to "calculate" bandwidth we measure transmission/receive rates for some time period. To measure bandwidth utilization we need to also "know" maximum possible, and then the forgoing measure can be calculated as a percentage. Again, if we measure 5 million bits over one second, or 15 million over threes seconds, or . . ., we have a 5 Mbps transmission rate. If we know it's a 10 Mbps path, we also can say we've had 50% utilization.

Things like "ping" or SLA, or ways we have to generate artificial traffic we have something to measure when we otherwise would not, and something that transmits without some "unknown" application delay.

View solution in original post

10 Replies 10

Giuseppe Larosa
Hall of Fame
Hall of Fame

Hello @sir_ulrick ,

if you want to verify the effective bandwidth or speed on a link you can use multiple parallel ping over different VTY sessions.

This test has an impact.

 

If you want to build a traffic graph like monitoring tools do,  you need to use SNMP and to query the 64 bits versions of byte counters ifInHCOctect if OutHCOctects. The bandwdith usage is given by a subtraction of previuos value from current value divided time interval.

 

Hope to help

Giuseppe

 

Hi @Giuseppe Larosa 
thanks for your quick reply. Only I would like to know interface status when I launch ping, I don't need historical or graphic. 

 

How is ping related to bandwidth utilization? I mean, with these results (normal ping test) how I can know bandwidth use of my link?


Ping statistics for 1.1.1.1:
Packets: Sent = 32219, Received = 32204, Lost = 15 (1% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 398ms, Average = 0ms

Control-C
^C
C:\>

 

Hello @sir_ulrick ,

 

>>

How is ping related to bandwidth utilization? I mean, with these results (normal ping test) how I can know bandwidth use of my link?


Ping statistics for 1.1.1.1:
Packets: Sent = 32219, Received = 32204, Lost = 15 (1% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 398ms, Average = 0ms

 

All you can say is the connectivity is stable but with a single ping session you cannot say anything about the total bandwidth of the link.

 

Hope to help

Giuseppe

 

sorry I think I understood wrong when you said "if you want to verify the effective bandwidth or speed on a link you can use multiple parallel ping over different VTY sessions" I thought that it's possible to calculate bandwith use with ping.

 

So, how is possible to calculate bandwidth use with rtt, ping, ip sla or any similar tool (only from cisco ios)?

Joseph W. Doherty
Hall of Fame
Hall of Fame
Hmm, it's unclear what you're trying to determine. As already noted by Giuseppe, interface stats will provide interface bandwidth utilization.

Path utilization would be obtained by "seeing" interface stat utilization along all path link interfaces.

If you cannot "see" all link interface stats, and want to determine what's available, it can be determined in a couple of ways, via active testing, such testing uses bandwidth that otherwise would be available to non-test traffic. Further, if you do such testing on an actively used link, your test may only reveal available bandwidth at the point in time, not actual bandwidth that's possible.

Is it possible to calculate available bandwidth using something like ping. In theory it is. If you send one minimum size packet and note its RTT and then send a larger (possible maximum size frame or packet), the RTT will increase due to the additional size. The time increase will reveal the bandwidth to transport the additional size frame/packet. Note, though, most ping tools RTT scale may be too large to accurately determine bandwidth.

Another alternative is using some tool that does the above with more accuracy. For instance, I recall (?) some of Cisco's SLA tests reveal bandwidth. Doinf so with any accuracy requires the other side have a SLA "responder". (I also recall some Cisco based SLA feature that can dynamically shape VPN traffic based on, on-the-fly, available bandwidth between VPN end points.)

Thanks for your complete reply Joseph, 

maybe I didn't define clearly my question. I would like to know how calculate available bandwidth at the point in time. Checking interface state, it's possible to take theorical bandwidth about physical interface, but I want to know how calculate bandwidth utilization at the point in time with a ping etc (only when I need it). How it works Cacti, SolarWinds etc to calculate use bandwidth with a ping (sounding line) ?

 

For example, 

in this community I have seen different forms to calculate bandwidth at the moment:

 

- Utilization (U) Percentage = (Throughput/Data Rate) x 100

Using this form,

Throughput = I can see this information about physical interface

Data rate= Is the speed which interface is working (1000 mb, for example) but I could have hired 500 mb with my ISP, so which value I would need to putt here?

 

- TXLOAD / 255 

   RXLOAD / 255  

to calculate bandwith use at the moment. But certainly, I don't know if it's a good form.

Thanks!

Well, first understand bandwidth utilization is always either zero or 100%. I.e. either data is being transmitted or not. When we "measure" bandwidth utilization, it's a measure of the ratio between zero and 100% usage over some time period. So normally to measure bandwidth utilization you take a snapshot of bits/bytes sent at some time, another at a second time. The delta provide bits/bytes transmitted during that time which you can they compare to what could have been 100% utilization all the time.

For example, if we measure 5 million bits set during one second, and "know" it's a 10 Mbps path, utilization during that one second was 50%. (Also understand, this means circuit was 100% half the time measured, but we don't know how the transmission was done. I.e. perhaps link was busy all during the first half second, or only all during the second half of the second, or all busy the first quarter of the second and the last quarter of the second, or . . . All, would be calculated at 50% utilization for the measured second.)

For an end-to-end measure, we can do the an end point's stats too, but the utilization percentage can only be calculated if we "know" the maximum potential bandwidth end-to-end. If we don't know the maximum possible, we might measure forcing 100%. This requires we load the link such that we believe or know its at 100%. "Believing" maximum bandwidth is by sending a bulk set of data, injected at one end measuring how long it takes to be transmitted and received. Unfortunately, of course, we cannot determine potential bandwidth beyond the path's bottleneck (nor can we use it anyway) and it's possible other traffic, at any one time, will "hide" potential bandwidth. I.e. we can only determine the maximum available bandwidth at any one point at time. (Peak bandwidths, that all hit the same measure might reveal the maximum available bandwidth, but might too.)

So again, to "calculate" bandwidth we measure transmission/receive rates for some time period. To measure bandwidth utilization we need to also "know" maximum possible, and then the forgoing measure can be calculated as a percentage. Again, if we measure 5 million bits over one second, or 15 million over threes seconds, or . . ., we have a 5 Mbps transmission rate. If we know it's a 10 Mbps path, we also can say we've had 50% utilization.

Things like "ping" or SLA, or ways we have to generate artificial traffic we have something to measure when we otherwise would not, and something that transmits without some "unknown" application delay.

Thanks a lot for a detailed reply, I really appreciate all the time you took to answer. Now I undestand better this process :)

In my question, I'm trying to measure bandwidth use at a specific moment in a point to point topology knowing the maximum bandwidth to each link (200 Mbps), for this reason I thought that using first formula (utilization =(bit sec / Data rate) x 100 I would take best values.

Well again, at any one point in time utilization is only either zero or one hundred percent. Otherwise, you'll need to look at transmission volume across some time period.

Also again, to calculate bandwidth usage, take delta of bits/bytes transmitted or received. Normalize to rate per seconds, and then you can calculate percentage.

e.g.

100 million bytes in a minute, would be an average of (divide by 60) 1.67 million bytes per second or (multiply by 8) 13.3 bps or an average (divide bu 200, for your case) 6.7 % utilization.

BTW, most Cisco device interfaces will provide a load average based on some time period (default 5 minutes, minimum 30 seconds).

Thanks again for your help Joseph!!