Queue depth sampling (7220 IXR-H4)

While static queue utilization thresholds allow the system to generate events in response to congestion, they do not provide a granular means to determine whether queue length parameters are configured correctly. If CBS and MBS values are too small, then too many packets may be dropped from the queue, even though the shared buffer space can accommodate them. And if CBS and MBS values are too large, then the traffic flowing through the queue may consume a disproportionate amount of the shared buffer space. To address these concerns, the 7220 IXR-H4 platform supports queue depth sampling, which provides a detailed set of queue utilization statistics with no requirement for setting static queue thresholds in advance.

When queue depth sampling is enabled, the system reads all unicast output queue depths at every defined polling interval. The polling interval is a configurable range between 30 and 1000 ms (defaut: 1000 ms). The system then uses these samples to calculate and publish the aggregate queue depth statistics to state every 1, 5, and 15 minutes. As a reference, the following table shows the number of datapoints created per collection period based on a polling interval of 30 ms.

Table 1. Queue depth sampling datapoints
Collection period Polling interval Datapoints created
1 minute 30 ms 2000
5 minute 30 ms 10 000
15 minutes 30 ms 30 000

The aggregate statistics also include the number of poll results that were expected but never received during each 1 minute polling window.

The system maintains the collected queue depth sampling data under the info from state qos interfaces interface output queues queue queue-depth context using the following YANG state leafs:

  • average-1, average-5, and average-15: the mean (average) values of all the measurements received in the last 1, 5, or 15 minute period
  • high-watermark-1, high-watermark-5, and high-watermark-15: the maximum values of all the measurements received in the last 1, 5, or 15 minute period
  • missed-polling-intervals: the running count of the number of samples that were expected, but did not arrive within the 1-minute window (because of high system utilization) and were therefore not included in any calculations

Configuring queue depth sampling (7220 IXR-H4)

To enable queue depth sampling, use the qos queues queue-depth-sampling command. To set the polling interval, use the polling-interval parameter.

Enable queue depth sampling

--{ candidate shared default }--[  ]--
ixrh4# info qos queues queue-depth-sampling
    qos {
        queues {
            queue-depth-sampling {
                admin-state enable
                polling-interval 60
            }
        }
    }

Displaying queue depth sampling statistics

To display the queue depth sampling statistics, use the info from state qos interfaces interface output queues queue queue-depth command

--{ candidate shared default }--[  ]--
ixrh4# info from state qos interfaces interface ethernet-1/54 output queues queue unicast-0 queue-depth
    qos {
        interfaces {
            interface ethernet-1/54 {
                output {
                    queues {
                        queue unicast-0 {
                            queue-depth {
                                maximum-burst-size 1024128
                                committed-burst-size 1024128
                                average-1 2044954
                                average-5 2045970
                                average-15 1507354
                                high-watermark-1 2048764
                                high-watermark-5 2048764
                                high-watermark-15 5040630
                                missed-polling-intervals 0
                            }
                        }
                    }
                }
            }
        }
    }