Configuring Active Buffer Monitoring

This chapter contains the following sections:

Information About Active Buffer Monitoring

Active Buffer Monitoring Overview

The Active Buffer Monitoring feature provides detailed buffer occupancy data to help you detect network congestion, review past events to understand when and how network congestion is affecting network operations, understand historical trending, and identify patterns of application traffic flow.

A hardware component, called the Algorithm Boost Engine (Algo Boost Engine) supports buffer histogram counters for unicast buffer usage per individual port, total buffer usage per buffer block, and multicast buffer usage per buffer block. Each histogram counter has 18 buckets that span across the memory block. The Algo Boost Engine polls buffer usage data every hardware sampling interval (the default is every 4 milliseconds, but you can configure it to be as low as 10 nanoseconds). Based on the buffer utilization, the corresponding histogram counter is incremented. For example, if Ethernet port 1/4 is consuming 500 KB of the buffer, the bucket 2 counter (which represents 384 KB to 768 KB) for Ethernet 1/4 is incremented.

To avoid a counter overflow, the Cisco NX-OS software collects the histogram data every polling interval and maintains it in the system memory. The software maintains the histogram data in the system memory for the last 60 minutes with 1-second granularity. Every hour, the software copies the buffer histogram data from the system memory to the bootflash as a backup.

The Active Buffer Monitoring feature has two modes of operation:

  • Unicast mode—The Algo Boost Engine monitors and maintains a buffer histogram for total buffer utilization per buffer block and unicast buffer utilization for all 48 ports.
  • Multicast mode—The Algo Boost Engine monitors and maintains buffer histogram data for total buffer utilization per buffer block and multicast buffer utilization per buffer block.

Buffer Histogram Data Access and Collection

After active buffer monitoring is enabled, the device maintains 70 minutes of data—the first 60 minutes (0 to 60 minutes) in the log and another 60 minutes (10 to 70 minutes) in memory.

You can access buffer histogram data using several methods:

  • You can access it from the system memory using show commands.
  • You can integrate the Active Buffer Monitoring feature with Cisco NX-OS Python scripting to collect historical data by copying the data to a server regularly.
  • You can access the buffer histogram data using an XML interface.
  • You can configure Cisco NX-OS to log a message in the syslog whenever the buffer occupancy exceeds the configured threshold.

Configuring Active Buffer Monitoring

Procedure
      Command or Action Purpose
    Step 1 switch# configure terminal 

    Enters global configuration mode.

     
    Step 2 switch(config)# hardware profile buffer monitor {unicast | multicast} 

    Enables the hardware profile buffer for either unicast or multicast traffic.

     
    Step 3 switch(config)# hardware profile buffer monitor {unicast | multicast} threshold threshold-value  

    Specifies to generate a syslog entry when the specified maximum buffer size is exceeded. The range is from 384 to 6144 kilobytes with 384 kilobyte increments. The default is 90 percent of the total available shared buffer.

    Note   

    Use the logging level mtc-usd5 command to display the active buffer monitoring threshold exceed system logging.

     
    Step 4 switch(config)# hardware profile buffer monitor {unicast | multicast} sampling sampling-value 

    Specifies to sample data at the specified interval. The range is from 10 to 20000000 nanoseconds. The default sampling value is 4 milliseconds.

     
    Step 5 switch(config)# copy running-config startup-config  (Optional)

    Saves the change persistently through reboots and restarts by copying the running configuration to the startup configuration.

     

    This example shows how to configure Active Buffer Monitoring for unicast traffic with a threshold value of 10 kilobytes and a sampling value of 5000 nanoseconds:

    switch# configure terminal
    switch(config)# hardware profile buffer monitor unicast
    switch(config)# hardware profile buffer monitor threshold 384
    switch(config)# hardware profile buffer monitor unicast sampling 5000
    switch(config)# copy running-config startup-config

    The following example shows how to configure Active Buffer Monitoring for multicast traffic with a threshold value of 10 kilobytes and a sampling value of 5000 nanoseconds.

    switch# configure terminal
    switch(config)# hardware profile buffer monitor multicast
    switch(config)# hardware profile buffer monitor threshold 384
    switch(config)# hardware profile buffer monitor multicast sampling 5000
    switch(config)# copy running-config startup-config

    Displaying Buffer Histogram Data

    Procedure
        Command or Action Purpose
      Step 1 switch# show hardware profile buffer monitor [interface ethernet slot/port] {brief | buffer-block | detail | multicast | summary}  
      Displays data collected about the buffer. The keywords are defined as follows:
      • brief—Specifies to show limited information about each interface.
      • buffer-block—Specifies to display information about a specific buffer block.
      • detail—Specifies to display all information gathered for each interface.
      • interface—(Optional) Specifies to display information about a specific port.
      • multicast—Specifies to show buffer data for multicast traffic only.
      • summary—Specifies to display summary information about each buffer block.
      Note   

      The show command option interface is only valid in unicast mode and the multicast option is only valid in multicast mode.

       
      Step 2 switch# clear hardware profile buffer monitor  (Optional)

      Clears the collected buffer data.

       

      This example shows how to display summary information for each buffer block and for all of the buffers combined:

      switch# show hardware profile buffer monitor summary
      Summary CLI issued at: 09/18/2012 07:38:39
      
                           Maximum buffer utilization detected
                         1sec     5sec    60sec     5min      1hr
                        ------   ------   ------   ------   ------
      Buffer Block 1       0KB      0KB      0KB      0KB      N/A   
      
      Total Shared Buffer Available = 5049 Kbytes
      Class Threshold Limit = 4845 Kbytes
      ============================================================
      Buffer Block 2       0KB      0KB      0KB      0KB      N/A   
      
      Total Shared Buffer Available = 5799 Kbytes
      Class Threshold Limit = 5598 Kbytes
      ============================================================
      Buffer Block 3       0KB      0KB   5376KB   5376KB      N/A   
      
      Total Shared Buffer Available = 5799 Kbytes
      Class Threshold Limit = 5598 Kbytes
      
      

      This example shows how to display the maximum buffer utilization of each buffer block and each interface for unicast mode:

      switch# show hardware profile buffer monitor brief 
      Brief CLI issued at: 09/18/2012 07:38:29
      
                           Maximum buffer utilization detected
                         1sec     5sec    60sec     5min      1hr
                        ------   ------   ------   ------   ------
      Buffer Block 1       0KB      0KB      0KB      0KB      N/A   
      
      Total Shared Buffer Avaliable = 5049 Kbytes
      Class Threshold Limit = 4845 Kbytes
      ------------------------------------------------------------
      Ethernet1/45         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/46         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/47         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/48         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/21         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/22         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/23         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/24         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/9          0KB      0KB      0KB      0KB      N/A   
      Ethernet1/10         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/11         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/12         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/33         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/34         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/35         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/36         0KB      0KB      0KB      0KB      N/A   
      ============================================================
      Buffer Block 2       0KB      0KB      0KB      0KB      N/A   
      
      Total Shared Buffer Avaliable = 5799 Kbytes
      Class Threshold Limit = 5598 Kbytes
      ------------------------------------------------------------
      Ethernet1/17         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/18         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/19         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/20         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/5          0KB      0KB      0KB      0KB      N/A   
      Ethernet1/6          0KB      0KB      0KB      0KB      N/A   
      Ethernet1/7          0KB      0KB      0KB      0KB      N/A   
      Ethernet1/8          0KB      0KB      0KB      0KB      N/A   
      Ethernet1/41         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/42         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/43         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/44         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/29         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/30         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/31         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/32         0KB      0KB      0KB      0KB      N/A   
      ============================================================
      Buffer Block 3       0KB      0KB   5376KB   5376KB      N/A   
      
      Total Shared Buffer Avaliable = 5799 Kbytes
      Class Threshold Limit = 5598 Kbytes
      ------------------------------------------------------------
      Ethernet1/13         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/14         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/15         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/16         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/37         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/38         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/39         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/40         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/25         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/26         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/27         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/28         0KB      0KB      0KB      0KB      N/A   
      Ethernet1/1          0KB      0KB      0KB      0KB      N/A   
      Ethernet1/2          0KB      0KB      0KB      0KB      N/A   
      Ethernet1/3          0KB      0KB      0KB      0KB      N/A   
      Ethernet1/4          0KB      0KB   5376KB   5376KB      N/A   
      
      

      This example shows how to display the maximum buffer utilization information of each buffer block for multicast mode:

      switch# show hardware profile buffer monitor brief
      Brief CLI issued at: 09/18/2012 08:30:08
      
                           Maximum buffer utilization detected
                         1sec     5sec    60sec     5min      1hr
                        ------   ------   ------   ------   ------
      Buffer Block 1       0KB      0KB      0KB      0KB      0KB   
      
      Total Shared Buffer Avaliable = 5049 Kbytes
      Class Threshold Limit = 4845 Kbytes
      Mcast Usage 1        0KB      0KB      0KB      0KB      0KB   
      ============================================================
      Buffer Block 2       0KB      0KB      0KB      0KB      0KB   
      
      Total Shared Buffer Avaliable = 5799 Kbytes
      Class Threshold Limit = 5598 Kbytes
      Mcast Usage 2        0KB      0KB      0KB      0KB      0KB   
      ============================================================
      Buffer Block 3       0KB      0KB      0KB      0KB      0KB   
      
      Total Shared Buffer Avaliable = 5799 Kbytes
      Class Threshold Limit = 5598 Kbytes
      Mcast Usage 3        0KB      0KB      0KB      0KB      0KB  
       
      

      The following example shows how to display detailed buffer utilization information of buffer block 3 for multicast mode:

      switch# show hardware profile buffer monitor multicast 3 detail 
      Detail CLI issued at: 09/18/2012 08:30:12
      
      Legend -
      384KB  - between   1 and 384KB of shared buffer consumed by port
      768KB  - between 385 and 768KB of shared buffer consumed by port
      307us  - estimated max time to drain the buffer at 10Gbps
      
      Active Buffer Monitoring for Mcast Usage 3 is: Active
      KBytes                 384  768 1152 1536 1920 2304 2688 3072 3456 3840 4224 4608 4992 5376 5760 6144 
      us @ 10Gbps            307  614  921 1228 1535 1842 2149 2456 2763 3070 3377 3684 3991 4298 4605 4912 
                            ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 
      09/18/2012 08:30:12      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:11      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:10      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:09      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:08      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:07      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:06      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:05      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:04      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 08:30:03      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      

      The following example shows how to display detailed buffer data about Ethernet interface 1/4:

      switch# show hardware profile buffer monitor interface ethernet 1/4 detail
      Detail CLI issued at: 09/18/2012 07:38:43
      
      Legend -
      384KB  - between   1 and 384KB of shared buffer consumed by port
      768KB  - between 385 and 768KB of shared buffer consumed by port
      307us  - estimated max time to drain the buffer at 10Gbps
      
      Active Buffer Monitoring for port Ethernet1/4 is: Active
      KBytes                 384  768 1152 1536 1920 2304 2688 3072 3456 3840 4224 4608 4992 5376 5760 6144 
      us @ 10Gbps            307  614  921 1228 1535 1842 2149 2456 2763 3070 3377 3684 3991 4298 4605 4912 
                            ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 
      09/18/2012 07:38:42      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:41      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:40      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:39      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:38      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:37      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:36      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:35      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:34      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:33      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:32      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:31      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:30      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:29      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:28      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:27      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:26      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:25      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:24      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:23      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:22      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:21      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:20    177   36    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:19      0  143  107    0    0    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:18      0    0   72  178    3    0    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:17      0    0    0    0  176   74    0    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:16      0    0    0    0    0  105  145    0    0    0    0    0    0    0    0    0 
      09/18/2012 07:38:15      0    0    0    0    0    0   33  179   38    0    0    0    0    0    0    0 
      09/18/2012 07:38:14      0    0    0    0    0    0    0    0  140  113    0    0    0    0    0    0 
      09/18/2012 07:38:13      0    0    0    0    0    0    0    0    0   66  178    6    0    0    0    0 
      09/18/2012 07:38:12      0    0    0    0    0    0    0    0    0    0    0  173   77    0    0    0 
      09/18/2012 07:38:11      1    0    0    1    0    0    1    0    0    1    0    0  102   42    0    0 
      09/18/2012 07:38:10      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0