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


Note


If you use NX-API over the front panel port, you must increase the CoPP policy (for HTTP) to allow 3000 PPS traffic. Doing so prevents packet drops, and the CLIs, creating larger outputs, return within the expected time.



Note


Active Buffer Monitoring (ABM) is enabled on all front ports, but only default class traffic can be monitored.


SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# hardware profile buffer monitor {unicast | multicast}
  3. switch(config)# hardware profile buffer monitor {unicast | multicast} threshold threshold-value
  4. switch(config)# hardware profile buffer monitor {unicast | multicast} sampling sampling-value
  5. (Optional) switch(config)# copy running-config startup-config

DETAILED STEPS

  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

Generates a syslog entry when the specified maximum buffer size is exceeded. The range is 384–6144 kilobytes with 384-kilobyte increments. The default is 90 percent of the total available shared buffer.

Step 4

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

Specifies to sample data at the specified interval. Range is 10–20,000,000 nanoseconds. The default sampling value is 4 milliseconds.

Step 5

(Optional) 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.

Example

This example shows how to configure Active Buffer Monitoring for unicast traffic. A threshold value of 384 kilobytes and a sampling value of 5000 nanoseconds is used:

switch# configure terminal
switch(config)# hardware profile buffer monitor unicast
switch(config)# hardware profile buffer monitor unicast 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. A threshold value of 384 kilobytes and a sampling value of 5000 nanoseconds is used.

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

Displaying Buffer Histogram Data

SUMMARY STEPS

  1. switch# show hardware profile buffer monitor [interface ethernet slot/port] {brief | buffer-block | detail | multicast | summary}
  2. (Optional) switch# clear hardware profile buffer monitor

DETAILED STEPS

  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

(Optional) switch# clear hardware profile buffer monitor

(Optional)

Clears the collected buffer data.

Example

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