Evaluating txload and rxload

By stretch | Friday, July 8, 2011 at 2:28 a.m. UTC

I often notice confusion among newbie networkers regarding the txload and rxload fields of IOS' show interface command output. txload and rxload roughly measure the amount of traffic passing out of and into an interface, respectively, relative to its perceived bandwidth. For example, we can generate around 250 kbps of combined incoming and outgoing traffic on an otherwise quiet FastEthernet interface by issuing a continuous ping:

Router# ping 192.168.1.140 repeat 1000 size 1400

Type escape sequence to abort.
Sending 1000, 1400-byte ICMP Echos to 192.168.1.140, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...

This negligible amount of traffic barely registers in the interface statistics (250 kbps out of 100 Mbps is only around 0.25%):

Router# show interface f0
FastEthernet0 is up, line protocol is up 
  Hardware is PQ3_TSEC, address is 001b.2a02.523c (bia 001b.2a02.523c)
  Internet address is 192.168.1.186/24
  MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 100Mb/s, 100BaseTX/FX
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:00, output 00:00:00, output hang never
  Last clearing of "show interface" counters never
  Input queue: 2/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  30 second input rate 227000 bits/sec, 39 packets/sec
  30 second output rate 227000 bits/sec, 39 packets/sec
     68319 packets input, 67517830 bytes
  ...

Note that the input and output rates shown above are for a 30-second interval, configured with the interface configuration command load-interval 30.

To inflate the impact of our meager traffic flow on the interface load values, we can administratively configure an artificially low interface bandwidth; say, 256 kbps.

Router(config)# interface f0
Router(config-if)# bandwidth 256

Keep in mind that the bandwidth command modifies only the perceived bandwidth of the interface: it has no effect on the actual speed at which packets are transmitted or received. Now if we retry our extended ping, we should observe much higher txload and rxload values.

Router# ping 192.168.1.140 repeat 1000 size 1400

Type escape sequence to abort.
Sending 1000, 1400-byte ICMP Echos to 192.168.1.140, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...
!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (1000/1000), round-trip min/avg/max = 1/1/8 ms
Router# show interface f0
FastEthernet0 is up, line protocol is up 
  Hardware is PQ3_TSEC, address is 001b.2a02.523c (bia 001b.2a02.523c)
  Internet address is 192.168.1.186/24
  MTU 1500 bytes, BW 256 Kbit/sec, DLY 100 usec, 
     reliability 255/255, txload 157/255, rxload 156/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  ...

The 8-bit txload and rxload values are easily converted to more human-friendly percentages by simple division:

157 / 255 = 0.615, or roughly 62%
156 / 255 = 0.611, or roughly 61%

So, this output tells us that the interface is utilizing around 62% of its perceived transmit bandwidth and around 61% of its perceived receive bandwidth (effectively the same amount of traffic in either direction). These two values are never added together such that they might total to 255; if you wanted to express total utilization as a single number, you would add both and divide the sum by 510 (255 + 255).

Our ping above didn't result in an observed 100% utilization because it lasted only a few seconds. While it is theoretically possible to see 255/255 for either value, the interface would need to experience maximum saturation for an extended period of time.

About the Author

Jeremy Stretch is a network engineer living in the Raleigh-Durham, North Carolina area. He is known for his blog and cheat sheets here at Packet Life. You can reach him by email or follow him on Twitter.

Posted in Tips and Tricks

Comments


EduDantas (guest)
July 8, 2011 at 3:22 a.m. UTC

Hi Jeremy,
I am a big fan of your work, from Brazil, your CBTNuggets videos are great.
Nice post!

Sorry, my English is bad, i know... but, i`ll learn!


Robin
July 8, 2011 at 4:18 a.m. UTC

@EduDantas - I think you're thinking of Jeremy Cioara who does CBT Nuggets.


luismg
July 8, 2011 at 7:53 a.m. UTC

I think now the bandwidth command can be like this

int fa0/0
bandwidth 256 (upload) tx
bandwidth receive 3000 (download) rx

so you can differentiate the up and the down stream for the router to calculate the
x/255 value.

Kind regards


Geert
July 8, 2011 at 9:36 a.m. UTC

It's always a pleasure to read your blogs, Jeremy.


dwarner
July 8, 2011 at 1:13 p.m. UTC

You can get bitten by using the "bandwidth" statement in this fashion if you're using dynamic routing protocols; OSPF for example can use the bandwidth given for an interface in its cost computations which might alter your traffic patterns if you're not prepared for it. You could statically assign your ospf cost if you want to play with it this way, though.


Lou (guest)
July 8, 2011 at 1:59 p.m. UTC

dude...you are GOOD!!! I am not a newbie but reading your blogs I sure feel like a newbie...you see and know all the little details of networking that I never thought off...learn something new every time I read your blogs...Thanks!!!


JC (guest)
July 8, 2011 at 3:59 p.m. UTC

Javentre (on networking-forum.com) has very relevant blog post concerning load interval on the catalyst platform:

http://networking.ventrefamily.com/2010/08/ethernet-overhead-catalyst.html

Basically, the load interval doesn't take into account all ethernet headers and thus underestimates the actual utilization of the link...


Unknown (guest)
July 8, 2011 at 6:09 p.m. UTC

I believe that the bandwidth parameter is also used for the size of the LLQ QoS queues.


Alex S (guest)
July 8, 2011 at 11:45 p.m. UTC

Nice, I wasn't thinking about BW statement having impact on actual interface statistics. Thank you.


Ankur (guest)
July 9, 2011 at 6:43 a.m. UTC

Big knowledge in short post...I particularly like your these types of simple posts where everybody gets some message.thanks


killabee
July 9, 2011 at 6:43 p.m. UTC

Hmmm, would SNMP interface utilization also be based on the perceived bandwidth or would that be based on the actual interface bandwidth?


djfader
July 10, 2011 at 7:15 p.m. UTC

Jeremy, I don't quite understand that:

30 second input rate 227000 bits/sec, 39 packets/sec
30 second output rate 227000 bits/sec, 39 packets/sec

39 packets/sec x 1400 bytes (size of each packet) x 8 bits (byte is 8 bits) = 436800 bits/sec

and not 227000 bits/sec

Can you please explain that ?


lalit
July 13, 2011 at 6:10 p.m. UTC

Thanks a lot for the information, very helpful indeed.

djfader has got some question i am not able to understand it, Jeremy anything you can say about it?


djfader
July 17, 2011 at 10:43 a.m. UTC

lalit, what you don't understand ?

  • Jeremy performed a ping with packect size of 1400 byte each
  • From the interface statistics we can see that this traffic generated 39 packets/second
  • According to my calculations: 39 packets x 1400 bytes (size of each packet) x 8 bits (byte is 8 bits)=
    436800 bits/sec
  • According to interface statistics this is 227000 bits/sec

30 second input rate 227000 bits/sec, 39 packets/sec
30 second output rate 227000 bits/sec, 39 packets/sec


James V (guest)
July 28, 2011 at 8:31 p.m. UTC

djfader: The load-interval on an interface a decayed/weighted average, it has a ramp up and ramp down time. Here is a URL to my site which works through the formula and an example: http://networking.ventrefamily.com/2010/08/load-interval.html


aaronjg77 (guest)
August 18, 2011 at 6:58 a.m. UTC

@EduDantas Wrong Jeremy

@Jeremy, I am a little confused because in the first example you were generating 227K, that is about 90% of 256K. However, the after changing the badwitdh setting we are only seeing 156 or 157. That deffinetaly isn't 90% of 255. Perhaps you can explan how the figures are calculated?

Anyways, keep up the great work. Really enjoy the site.

P.S. I found you through Packet Pushers.


Praveen (guest)
January 23, 2012 at 7:30 a.m. UTC

James V

i visit your site but sorry am not able to understand load-interval explaination formula its very hard to understand pls explain it with more example how load -interval is calculated hope u reply with positive notes


semak
July 6, 2012 at 8:39 p.m. UTC

asowme explanation, look these output tons of time but never think like you, great post.


Dewente (guest)
January 22, 2013 at 4:11 a.m. UTC

Question:

in the line Router# ping 192.168.1.140 repeat 1000 size 1400 - what is the command size for? Datagram size? it doesn't make any same for me, can someone give me an example on how/where to use it? Thanks!


nitinyamdagni
April 29, 2013 at 1:29 p.m. UTC

Clear and crisp.


Erik (guest)
February 12, 2014 at 4:49 p.m. UTC

Hello,

Are the numbers shown in the rxload & txload realtime or over a period of time like the input and putout information which defaults to 5 minutes.

Comments have closed for this article due to its age.