Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

Verificación

Identificar la interfaz afectada

Identificar interfaces entrantes y salientes

‘Asignación de búfer’

Troubleshoot

Modificar asignación de búfer

Modificar búferes por cola

Análisis de caídas de salida con Wireshark

Enfoques alternativos

Información Relacionada

Introducción

Este documento describe cómo resolver problemas de caídas de salida en interfaces de alta velocidad en las plataformas Catalyst serie 9000 basadas en UADP ASIC.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Conceptos de QoS estándar

- Interfaz de línea de comandos (CLI) de QoS modular

- Wireshark

Componentes Utilizados

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Tipos ASIC UADP 2.0 y UADP 3.0

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Software Cisco IOS® XE 16.X o 17.X

Nota: Consulte la guía de configuración correspondiente para conocer los comandos que se utilizan para activar estas funciones en otras plataformas de Cisco.

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Antecedentes

Las caídas de salida en interfaces de alta velocidad son un problema que puede ocurrir en cualquier entorno de red, especialmente cuando se trata de interfaces que admiten velocidades de transferencia de datos de 10 Gbps o superiores. Las caídas de salida ocurren cuando la interfaz descarta paquetes antes de que puedan transmitirse a la red.

A menudo se malinterpreta cómo se interpreta la utilización de la interfaz cuando se producen caídas de salida en niveles bajos de utilización:

- Cuando se envía demasiado tráfico desde una sola interfaz, las memorias intermedias de esa interfaz pueden saturarse y se producen caídas de salida. Una interfaz con muy pocos búferes también puede aumentar la probabilidad de caídas de salida.

- Las caídas de salida también pueden ser causadas por una discordancia entre la velocidad de la interfaz y la velocidad del dispositivo conectado. Por ejemplo, si una interfaz de 10 Gbps está conectada a un dispositivo que sólo admite una velocidad de transferencia de datos de 1 Gbps, la interfaz puede descartar paquetes si no puede reducir la velocidad de datos para que coincida con las capacidades del dispositivo.

Sin embargo, en la gran mayoría de los casos, las caídas de salida son causadas por el tráfico de microrráfaga que agotó las memorias intermedias del puerto:

- Una microrráfaga se refiere a un fenómeno en el que una gran cantidad de tráfico se envía en un período de tiempo muy corto, normalmente dura solo unos pocos milisegundos y excede el ancho de banda disponible de la interfaz.

- Cuando se produce una microrráfaga, los dispositivos de red deben almacenar en búfer el tráfico hasta que se pueda transmitir a la red. Si se excede el tamaño del búfer, los paquetes se descartan.

El tráfico de red se mide a menudo por el uso medio de un enlace (medido entre 30 segundos y 5 minutos, dependiendo de la configuración). Aunque este promedio muestra un flujo constante y relativamente uniforme, cuando se observa en una escala de milisegundos, la utilización de la interfaz suele estar muy saturada.

Figura 1. Muestra una representación visual de la causa subyacente de las caídas de salida en la interfaz de alta velocidad.

Según el diagrama:

1. Los flujos de paquetes A, B y C representan grupos de bits en un flujo.

2. Los flujos A, B y C se transmiten a través de la interfaz 100G y se reciben en el switch de salto siguiente.

3. Observe que A y algunos de los bits B se reenvían con éxito fuera de la interfaz de salida 10G.

- Sin embargo, cuando llega el flujo C, el switch ha almacenado en el búfer algunos de los bits del flujo B debido a la incapacidad de eliminar de la cola los bits tan rápido como llegan.

- El buffer se llena y no puede contener tanto los bits B restantes como todos los bits en el paquete C.

- Si el clasificador de ingreso determina que no hay espacio para ni siquiera un bit de la siguiente trama, ¡descarta el paquete completo!

4. El flujo A y parte del B se transmiten a través de la interfaz 10G.

La Velocidad/Ancho de Banda de la Interfaz son nombres incorrectos, ya que:

- Ancho de banda = datos (bits)/tiempo

- Los bits no "aumentan físicamente" cuando pasan de 10 G > 100 G > 10 G

La diferencia de velocidad es la capacidad de entrelazado/número de líneas/número de pulsos por intervalo de tiempo, mecanismo de codificación, etc., frente a los medios (luz/electrones) que van más rápido.

Consejo: Utilice el comando load-interval <30-600> en el modo de configuración de la interfaz para modificar el retraso del intervalo de carga en segundos. (intervalo de carga representa la frecuencia con la que el switch consulta los contadores de interfaz).

Verificación

La resolución de problemas de caídas de salida en interfaces de alta velocidad puede ser un proceso complejo, pero hay algunos pasos generales que pueden ayudar a identificar y resolver el problema.

Paso 1. Identifique la interfaz afectada:

- Comience por reducir la interfaz que experimenta las caídas de salida.

- Utilice el comando show interfaces | include is up|Total output drops o utilice herramientas de supervisión para determinar qué interfaz se enfrenta al problema.

Paso 2. Identificar interfaces entrantes y salientes:

- Para verificar la interfaz a las asignaciones ASIC, ejecute el comando show platform software fed <switch|active> ifm mappings.

Paso 3. Verifique la asignación del búfer:

- Es importante verificar la asignación del búfer y la configuración de la interfaz para las interfaces afectadas.

Paso 4. Verifique los microburts con Wireshark:

- Las caídas de salida en las interfaces de alta velocidad a menudo pueden ser causadas por microrráfagas de tráfico.

- Utilice herramientas de análisis de tráfico como Wireshark para supervisar los patrones de tráfico e identificar cualquier microrráfaga potencial.

Paso 5. Considere una actualización de hardware:

- Si los pasos anteriores no resuelven el problema, es necesario actualizar el hardware, como la interfaz, el dispositivo o la infraestructura de red, para gestionar el aumento del tráfico.

Identificar la interfaz afectada

Para identificar la interfaz afectada que experimenta caídas de salida, utilice el comando show interfaces.

- Este comando proporciona información detallada sobre cada interfaz que incluye estadísticas sobre errores de entrada y salida, paquetes perdidos y otra información crítica.

Para restringir la lista de interfaces e identificar rápidamente la interfaz afectada, utilice el comando show interfaces | include is up|Total output drops para filtrar las interfaces hacia fuera, down, o admin down, y mostrar solamente aquellas que están activas y tienen caídas.

- Por ejemplo, puede utilizar este comando para mostrar solamente las interfaces que han experimentado caídas de salida.

Cat9k(config)#show interfaces | in is up|Total output drops

HundredGigE1/0/1 is up, line protocol is up (connected)

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 54845

HundredGigE1/0/10 is up, line protocol is up (connected)

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 1540231

--snip--

Consejo: Utilice el comando show interfaces y filtre el resultado con los criterios apropiados para identificar rápida y fácilmente la interfaz afectada. Tome las medidas necesarias para resolver el problema.

De forma predeterminada, en los switches Catalyst de la serie 9000, las caídas de paquetes de salida se muestran en bytes en lugar de en paquetes. Es importante determinar si la cantidad de caídas de salida encontradas tuvo algún impacto real o si fueron causadas simplemente por tráfico en ráfagas transitorio.

Para calcular el porcentaje del total de bytes de salida transmitidos en una interfaz que se descartaron:

- Recopile el recuento total de caídas de salida de la interfaz.

- Recopile el recuento total de bytes de salida de la interfaz.

- Calcule el porcentaje de caídas de salida. Divida el recuento total de caídas de salida por el recuento total de bytes de salida y multiplicándolo por 100.

Esto proporciona el porcentaje de bytes de salida que se descartaron en la interfaz, lo que puede ayudarlo a determinar si hay un problema de congestión o de asignación de memoria intermedia que deba solucionarse, o si las caídas de salida fueron causadas por tráfico de microbust transitorio.

Utilice el comando show interface <interface> para recopilar la información.

Cat9k#show interfaces twentyFiveGigE 1/0/41

TwentyFiveGigE1/0/41 is up, line protocol is up (connected)

Hardware is Twenty Five Gigabit Ethernet, address is dc77.4c8a.4289 (bia dc77.4c8a.4289)

MTU 1500 bytes, BW 25000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 3/255, rxload 1/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full-duplex, 10Gb/s, link type is auto, media type is SFP-10GBase-AOC1M

input flow-control is on, output flow-control is off

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:06, output 00:00:10, output hang never

Last clearing of "show interface" counters 6w1d

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 299040207

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 767000 bits/sec, 155 packets/sec

30 second output rate 14603000 bits/sec, 1819 packets/sec

931864194 packets input, 572335285416 bytes, 0 no buffer

Received 933005 broadcasts (933005 multicasts)

0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog, 0 multicast, 0 pause input

0 input packets with dribble condition detected

1067891106 packets output, 5930422327799 bytes, 0 underruns

--snip--

Caídas totales de resultados: 299040207

Bytes de salida totales: 5930422327799

Porcentaje de caídas de salida = 299040207/5930422327799 x 100 = 0,005%

En este ejemplo, las caídas de salida totales representan el 0.005% de la cantidad total de bytes transmitidos en esta interfaz en las últimas seis semanas (último borrado de contadores 6w1d).

- El número total de paquetes comparado con el número de paquetes descartados es menor y no tiene ningún impacto.

Identificar interfaces entrantes y salientes

Para asignar mejor los búferes de software y administrar el tráfico en los switches Catalyst de la serie 9000, considere la posibilidad de seleccionar interfaces entrantes y salientes en diferentes ASIC.

Un búfer de software, también conocido como búfer dinámico o búfer compartido, hace referencia a una parte de la memoria asignada dinámicamente para almacenar temporalmente paquetes en períodos de congestión o de carga de tráfico elevada.

Consejo: Consulte el documento Cómo Comprender la Asignación del Buffer de Cola en los Catalyst 9000 Switches para obtener información detallada sobre la asignación del buffer en los Catalyst 9000 Series Switches.

Según la arquitectura de un modelo específico de switches Catalyst 9000, es importante tener en cuenta que a menudo incorporan varios ASIC responsables de diversas funciones.

Para verificar la interfaz para las asignaciones ASIC, puede ejecutar el comando: show platform software fed <switch|active> ifm mappings

Este ejemplo muestra la interfaz para las asignaciones ASIC. El rango de interfaz TenGigabitEthernet1/0/1 a TenGigabitEthernet1/0/24 se mapea a ASIC 1 mientras que el resto se mapea a ASIC 0:

Cat9k#show platform software fed switch active ifm mappings

Interface                 IF_ID    Inst Asic Core Port SubPort Mac  Cntx LPN  GPN  Type Active

TenGigabitEthernet1/0/1   0x9        3   1   1    0      0      11   0    1    1    NIF  Y

TenGigabitEthernet1/0/2   0xa        3   1   1    1      0      10   1    2    2    NIF  Y

TenGigabitEthernet1/0/3   0xb        3   1   1    2      0      9    2    3    3    NIF  Y

TenGigabitEthernet1/0/4   0xc        3   1   1    3      0      8    3    4    4    NIF  Y

TenGigabitEthernet1/0/5   0xd        3   1   1    4      0      7    4    5    5    NIF  Y

TenGigabitEthernet1/0/6   0xe        3   1   1    5      0      6    5    6    6    NIF  Y

TenGigabitEthernet1/0/7   0xf        3   1   1    6      0      5    6    7    7    NIF  Y

TenGigabitEthernet1/0/8   0x10       3   1   1    7      0      4    7    8    8    NIF  Y

TenGigabitEthernet1/0/9   0x11       3   1   1    8      0      3    8    9    9    NIF  Y

TenGigabitEthernet1/0/10  0x12       3   1   1    9      0      2    9    10   10   NIF  Y

TenGigabitEthernet1/0/11  0x13       3   1   1    10     0      1    10   11   11   NIF  Y

TenGigabitEthernet1/0/12  0x14       3   1   1    11     0      0    11   12   12   NIF  Y

TenGigabitEthernet1/0/13  0x15       2   1   0    12     0      11   0    13   13   NIF  Y

TenGigabitEthernet1/0/14  0x16       2   1   0    13     0      10   1    14   14   NIF  Y

TenGigabitEthernet1/0/15  0x17       2   1   0    14     0      9    2    15   15   NIF  Y

TenGigabitEthernet1/0/16  0x18       2   1   0    15     0      8    3    16   16   NIF  Y

TenGigabitEthernet1/0/17  0x19       2   1   0    16     0      7    4    17   17   NIF  Y

TenGigabitEthernet1/0/18  0x1a       2   1   0    17     0      6    5    18   18   NIF  Y

TenGigabitEthernet1/0/19  0x1b       2   1   0    18     0      5    6    19   19   NIF  Y

TenGigabitEthernet1/0/20  0x1c       2   1   0    19     0      4    7    20   20   NIF  Y

TenGigabitEthernet1/0/21  0x1d       2   1   0    20     0      3    8    21   21   NIF  Y

TenGigabitEthernet1/0/22  0x1e       2   1   0    21     0      2    9    22   22   NIF  Y

TenGigabitEthernet1/0/23  0x1f       2   1   0    22     0      1    10   23   23   NIF  Y

TenGigabitEthernet1/0/24  0x20       2   1   0    23     0      0    11   24   24   NIF  Y

TenGigabitEthernet1/0/25  0x21       1   0   1    24     0      11   0    25   25   NIF  Y

TenGigabitEthernet1/0/26  0x22       1   0   1    25     0      10   1    26   26   NIF  Y

TenGigabitEthernet1/0/27  0x23       1   0   1    26     0      9    2    27   27   NIF  Y

TenGigabitEthernet1/0/28  0x24       1   0   1    27     0      8    3    28   28   NIF  Y

TenGigabitEthernet1/0/29  0x25       1   0   1    28     0      7    4    29   29   NIF  Y

TenGigabitEthernet1/0/30  0x26       1   0   1    29     0      6    5    30   30   NIF  Y

TenGigabitEthernet1/0/31  0x27       1   0   1    30     0      5    6    31   31   NIF  Y

TenGigabitEthernet1/0/32  0x28       1   0   1    31     0      4    7    32   32   NIF  Y

TenGigabitEthernet1/0/33  0x29       1   0   1    32     0      3    8    33   33   NIF  Y

TenGigabitEthernet1/0/34  0x2a       1   0   1    33     0      2    9    34   34   NIF  Y

TenGigabitEthernet1/0/35  0x2b       1   0   1    34     0      1    10   35   35   NIF  Y

TenGigabitEthernet1/0/36  0x2c       1   0   1    35     0      0    11   36   36   NIF  Y

TenGigabitEthernet1/0/37  0x2d       0   0   0    36     0      11   11   37   37   NIF  Y

TenGigabitEthernet1/0/38  0x2e       0   0   0    37     0      10   10   38   38   NIF  Y

TenGigabitEthernet1/0/39  0x2f       0   0   0    38     0      9    9    39   39   NIF  Y

TenGigabitEthernet1/0/40  0x30       0   0   0    39     0      8    8    40   40   NIF  Y

TenGigabitEthernet1/1/1   0x31       0   0   0    40     0      0    19   41   41   NIF  N

TenGigabitEthernet1/1/2   0x32       0   0   0    41     0      0    18   42   42   NIF  N

TenGigabitEthernet1/1/3   0x33       0   0   0    42     0      0    17   43   43   NIF  N

TenGigabitEthernet1/1/4   0x34       0   0   0    43     0      0    16   44   44   NIF  N

TenGigabitEthernet1/1/5   0x35       0   0   0    44     0      0    15   45   45   NIF  N

TenGigabitEthernet1/1/6   0x36       0   0   0    45     0      0    14   46   46   NIF  N

TenGigabitEthernet1/1/7   0x37       0   0   0    46     0      0    13   47   47   NIF  N

TenGigabitEthernet1/1/8   0x38       0   0   0    47     0      0    12   48   48   NIF  N

FortyGigabitEthernet1/1/1 0x39       0   0   0    48     0      4    4    49   49   NIF  N

FortyGigabitEthernet1/1/2 0x3a       0   0   0    49     0      0    0    50   50   NIF  N

‘Asignación de búfer’

La asignación de búfer es un factor importante para evitar caídas de salida porque los búferes se utilizan para almacenar temporalmente el tráfico que no se puede reenviar debido a la congestión u otras variables. Si no hay suficientes búferes disponibles, el tráfico se descarta, lo que provoca un rendimiento de la red deficiente y posibles interrupciones. Con esta verificación, puede asegurarse de que el switch tenga suficiente espacio en el búfer para manejar cargas de tráfico altas.

El comando show platform hardware fed switch active qos queue stats interface <interface> le permite ver las estadísticas por cola en una interfaz, lo que incluye cuántos bytes se pusieron en cola en las memorias intermedias y cuántos bytes se perdieron debido a la falta de memorias intermedias disponibles.

En este ejemplo:

- Las colas de 0 a 4 están reteniendo actualmente el tráfico en cola. El tráfico recibido en esta interfaz se almacena temporalmente en las memorias intermedias hasta que se pueda transmitir.

- Solo la cola 2 ha experimentado tráfico descartado o descartado (240.10607 bytes).

Cat9k#show platform hardware fed active qos queue stats interface twentyFiveGigE 1/0/41

----------------------------------------------------------------------------------------------

AQM Global counters

GlobalHardLimit: 16257   |   GlobalHardBufCount: 0

GlobalSoftLimit: 39039   |   GlobalSoftBufCount: 0

----------------------------------------------------------------------------------------------

High Watermark Soft Buffers:  Port Monitor Disabled

----------------------------------------------------------------------------------------------

Asic:0 Core:0 DATA Port:8 Hardware Enqueue Counters

----------------------------------------------------------------------------------------------

Q Buffers          Enqueue-TH0          Enqueue-TH1          Enqueue-TH2             Qpolicer

(Count)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

-- ------- -------------------- -------------------- -------------------- --------------------

0       0                    0             40588200              9368282                    0

1       0                    0             23584521               789524                    0

2       0                    0                    0         110307150901                    0

3       0                    0                    0            487852543                    0

4       0                    0                    0              5483512                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0

Asic:0 Core:0 DATA Port:8 Hardware Drop Counters

--------------------------------------------------------------------------------------------------------------------------------

Q             Drop-TH0             Drop-TH1             Drop-TH2             SBufDrop              QebDrop         QpolicerDrop

(Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

-- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------

0                    0                    0                    0                    0                    0                    0

1                    0                    0                    0                    0                    0                    0

2                    0                    0             24010607 <-- (drops on Q2)  0                    0                    0

3                    0                    0                    0                    0                    0                    0

4                    0                    0                    0                    0                    0                    0

5                    0                    0                    0                    0                    0                    0

6                    0                    0                    0                    0                    0                    0

7                    0                    0                    0                    0                    0                    0

Troubleshoot

Modificar asignación de búfer

Para aumentar el valor de los búferes programables utilizados por una interfaz, utilice el comando qos queue-softmax-multiplier en el modo de configuración global para especificar un valor en el rango de 100 a 4800. El valor predeterminado es 100.

- Este comando aumenta la capacidad de una cola de puerto único para absorber microrráfagas.

- Este comando aumenta los umbrales de cola de puerto para que la cola de puerto pueda consumir unidades de buffer adicionales del conjunto compartido.

Esta configuración se aplica a todas las interfaces:

- La asignación del búfer en sí supone que las microrráfagas no ocurren en todos los puertos del switch al mismo tiempo.

- Si se producen microrráfagas en momentos aleatorios, el búfer compartido puede dedicar unidades de búfer adicionales para absorberlas.

Utilice el comando qos queue-softmax-multiplier<100 4800> en el modo de configuración global para modificar la asignación del búfer de software. Si configura esto al valor máximo disponible, proporciona al switch la probabilidad más alta de eliminar o reducir las caídas de salida. Esta es una práctica recomendada para evitar caídas siempre que sea posible.

Cat9k(config)#qos queue-softmax-multiplier ?

<100-4800> multiplier(%)

Utilice el comando show platform hardware fed active qos queue config interface <interface> para identificar la asignación de memoria intermedia de software en Catalyst 9000 Series.

Este ejemplo muestra los Soft Buffers predeterminados asignados en una interfaz que ha negociado a una velocidad de 10 Gbps en un Catalyst 9500.

Cat9k#show platform hardware fed active qos queue config interface twentyFiveGigE 1/0/41

Asic:0 Core:0 DATA Port:8 GPN:141 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 64 - 71

DrainFast:Disabled PortSoftStart:5 - 4320 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

----- --------  --------  --------  --------  ---------  -------

0   1  6   480   8  1920  16   960   0     0   3  5760      En <-- 1920 is the total soft buffers allocated to queue 0 on interface twentyFiveGigE 1/0/41

1   1  5     0  11  2880  16  1440   8   720   3  5760      En <-- 2880 is the total soft buffers allocated to queue 1 on interface twentyFiveGigE 1/0/41

2   1  5     0   6     0   0     0   0     0   3  5760      En

3   1  5     0   6     0   0     0   0     0   3  5760      En

4   1  5     0   6     0   0     0   0     0   3  5760      En

5   1  5     0   6     0   0     0   0     0   3  5760      En

6   1  5     0   6     0   0     0   0     0   3  5760      En

7   1  5     0   6     0   0     0   0     0   3  5760      En

Priority   Shaped/shared   weight  shaping_step  sharpedWeight

--------   -------------   ------  ------------   -------------

0      0     Shared            50           0           0

1      0     Shared            75           0           0

2      0     Shared         10000           0           0

3      0     Shared         10000           0           0

4      0     Shared         10000           0           0

5      0     Shared         10000           0           0

6      0     Shared         10000           0           0

7      0     Shared         10000           0           0

Port       Port            Port    Port

Priority   Shaped/shared   weight  shaping_step

--------   -------------   ------  ------------

2     Shaped          1023        1023

QPolicer     Refresh Credit   Max Credit  Interval Idx

-----------   --------------   ----------  ------------

0 Disabled                 0            0           0

1 Disabled                 0            0           0

2 Disabled                 0            0           0

3 Disabled                 0            0           0

4 Disabled                 0            0           0

5 Disabled                 0            0           0

6 Disabled                 0            0           0

7 Disabled                 0            0           0

Weight0 Max_Th0 Min_Th0 Weigth1 Max_Th1 Min_Th1  Weight2 Max_Th2 Min_Th2

------- ------- ------- ------- ------- -------  ------- ------- ------

0       0    1912       0       0    2137       0       0    2400       0 <-- Thresholds values in queue 0 on interface twentyFiveGigE 1/0/41

1       0    2295       0       0    2565       0       0    2880       0 <-- Thresholds values in queue 1 on interface twentyFiveGigE 1/0/41

2       0       0       0       0       0       0       0       0       0

3       0       0       0       0       0       0       0       0       0

4       0       0       0       0       0       0       0       0       0

5       0       0       0       0       0       0       0       0       0

6       0       0       0       0       0       0       0       0       0

7       0       0       0       0       0       0       0       0       0

Este ejemplo muestra los búferes de software asignados en una interfaz que ha negociado a una velocidad de 10 Gbps en un Catalyst 9500 con el multiplicador 4800 configurado.

Cat9k#show platform hardware fed active qos queue config interface twentyFiveGigE 1/0/41

Asic:0 Core:0 DATA Port:8 GPN:141 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 64 - 71

DrainFast:Disabled PortSoftStart:4 - 42000 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

----- --------  --------  --------  --------  ---------  -------

0   1  6   480  10 42000   1  1312   0     0   4 42000      En <-- 42000 is the total soft buffers allocated to queue 0 on interface twentyFiveGigE 1/0/41

1   1  5     0  10 42000   1  1312   1  1312   4 42000      En <-- 42000 is the total soft buffers allocated to queue 1 on interface twentyFiveGigE 1/0/41

2   1  5     0   6     0   0     0   0     0   4 42000      En

3   1  5     0   6     0   0     0   0     0   4 42000      En

4   1  5     0   6     0   0     0   0     0   4 42000      En

5   1  5     0   6     0   0     0   0     0   4 42000      En

6   1  5     0   6     0   0     0   0     0   4 42000      En

7   1  5     0   6     0   0     0   0     0   4 42000      En

Priority   Shaped/shared   weight  shaping_step  sharpedWeight

--------   -------------   ------  ------------   -------------

0      0     Shared            50           0           0

1      0     Shared            75           0           0

2      0     Shared         10000           0           0

3      0     Shared         10000           0           0

4      0     Shared         10000           0           0

5      0     Shared         10000           0           0

6      0     Shared         10000           0           0

7      0     Shared         10000           0           0

Port       Port            Port    Port

Priority   Shaped/shared   weight  shaping_step

--------   -------------   ------  ------------

2     Shaped          1023        1023

QPolicer     Refresh Credit   Max Credit  Interval Idx

-----------   --------------   ----------  ------------

0 Disabled                 0            0           0

1 Disabled                 0            0           0

2 Disabled                 0            0           0

3 Disabled                 0            0           0

4 Disabled                 0            0           0

5 Disabled                 0            0           0

6 Disabled                 0            0           0

7 Disabled                 0            0           0

Weight0 Max_Th0 Min_Th0 Weigth1 Max_Th1 Min_Th1  Weight2 Max_Th2 Min_Th2

------- ------- ------- ------- ------- -------  ------- ------- ------

0       0   33851       0       0   37833       0       0   42480       0 <-- Thresholds values in queue 0 on interface twentyFiveGigE 1/0/41

1       0   33468       0       0   37406       0       0   42000       0 <-- Thresholds values in queue 1 on interface twentyFiveGigE 1/0/41

2       0       0       0       0       0       0       0       0       0

3       0       0       0       0       0       0       0       0       0

4       0       0       0       0       0       0       0       0       0

5       0       0       0       0       0       0       0       0       0

6       0       0       0       0       0       0       0       0       0

7       0       0       0       0       0       0       0       0       0

Nota: La asignación de los búferes de software varía. Es posible que la asignación no coincida con el resultado anterior. El resultado de la asignación varía en función de la plataforma específica utilizada, las políticas de QoS aplicadas y la velocidad de funcionamiento negociada de la interfaz en cuestión.

Modificar búferes por cola

La modificación del búfer por cola se puede aprovechar en escenarios en los que no se puede utilizar el multiplicador SoftMax o en escenarios en los que se intenta ajustar los búferes para que se ajusten a un perfil de tráfico.

- Para modificar la asignación del buffer de cola del switch por interfaz, debe utilizar policy-maps.

- En la mayoría de las circunstancias, se modifica el policy-map actual de una interfaz y se cambian los buffers por clase.

En esta interfaz de ejemplo, TwentyFiveGigE 1/0/1 ha experimentado caídas de salida. Como se muestra en el comando output egress policy-map que se aplica a esta interfaz.

El comando show platform hardware fed switch active qos queue stats interface <interface> le permite ver las estadísticas por cola en una interfaz, lo que incluye cuántos bytes se pusieron en cola en las memorias intermedias y cuántos bytes se perdieron debido a la falta de memorias intermedias disponibles.

Cat9k#show platform hardware fed active qos queue stats interface twentyFiveGigE 1/0/1

----------------------------------------------------------------------------------------------

AQM Global counters

GlobalHardLimit: 16257   |   GlobalHardBufCount: 0

GlobalSoftLimit: 39039   |   GlobalSoftBufCount: 0

----------------------------------------------------------------------------------------------

High Watermark Soft Buffers:  Port Monitor Disabled

----------------------------------------------------------------------------------------------

Asic:0 Core:0 DATA Port:8 Hardware Enqueue Counters

----------------------------------------------------------------------------------------------

Q Buffers          Enqueue-TH0          Enqueue-TH1          Enqueue-TH2             Qpolicer

(Count)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

-- ------- -------------------- -------------------- -------------------- --------------------

0       0                    0                    0                   82                    0

1       0                    0                    0                 7517                    0

2       0                    0                    0         110307150901                    0

3       0                    0                    0           7174010710                    0

4       0                    0                    0                    0                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0

Asic:0 Core:0 DATA Port:8 Hardware Drop Counters

--------------------------------------------------------------------------------------------------------------------------------

Q             Drop-TH0             Drop-TH1             Drop-TH2             SBufDrop              QebDrop         QpolicerDrop

(Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

-- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------

0                    0                    0                    0                    0                    0                    0

1                    0                    0                    0                    0                    0                    0

2                    0                    0             24010607                    0                    0                    0

3                    0                    0             20071103                    0                    0                    0

4                    0                    0                    0                    0                    0                    0

5                    0                    0                    0                    0                    0                    0

6                    0                    0                    0                    0                    0                    0

7                    0                    0                    0                    0                    0                    0

Para aliviar las caídas de salida en esta interfaz, basadas en los contadores de cola, Q0 a Q1 tienen una velocidad de cola muy baja, y por lo tanto no pueden requerir tantos búferes como Q2 y Q3. La acción recomendada es asignar más búferes a la Cola 2 y a la Cola 3, ya que estas colas tienen una mayor cantidad de tráfico en cola en comparación con cualquier otra cola.

- Para modificar la asignación de memoria intermedia, puede utilizar la configuración queue-buffers ratio <0-100> en el policy-map aplicado a la interfaz TwentyFiveGigE 1/0/1.

Nota: si este comando se configura en cada clase de la política, debe sumar hasta 100. Sin embargo, si sólo se configura una sola clase, el sistema resta uniformemente los buffers de las otras colas.

Este ejemplo muestra cómo configurar un ratio de queue-buffers en un policy-map.

Cat9k(config)#policy-map test

Cat9k(config-pmap)# class Voice

Cat9k(config-pmap-c)# priority level 1

Cat9k(config-pmap-c)# queue-buffers ratio 5

Cat9k(config-pmap-c)# class Video

Cat9k(config-pmap-c)# bandwidth remaining percent 50

Cat9k(config-pmap-c)# queue-buffers ratio 15

Cat9k(config-pmap-c)# class BuisnessCritical

Cat9k(config-pmap-c)# bandwidth remaining percent 30

Cat9k(config-pmap-c)# queue-buffers ratio 40           <-- Queue 3

Cat9k(config-pmap-c)# class class-default

Cat9k(config-pmap-c)# bandwidth remaining percent 20

Cat9k(config-pmap-c)# queue-buffers ratio 40           <-- Queue 4

A partir de la versión Cisco IOS XE 17.2.1, los switches basados en UADP 3.0 (Catalyst 9500 de alto rendimiento y Catalyst 9600) se pueden configurar para compartir los búferes de administración de cola activa (AQM) entre los dos núcleos dentro del mismo ASIC.

- Un puerto configurado con uso compartido de búfer utiliza cualquiera de los búferes AQM disponibles, independientemente de los núcleos a los que estén asignados los búferes AQM. Esto ayuda a administrar ráfagas más altas de tráfico que habrían saturado el búfer de un solo núcleo AQM.

- Puede habilitar esta función con el comando qos share-buffer en el modo de configuración global.

- Puede verificar la función con el comando show platform hardware fed active qos queue config interface. Se trata de una configuración global que afecta a todo el sistema.

Puede inhabilitar el recurso compartido de búfer con la forma no del comando, no qos share-buffer.

Cat9k(config)#qos share-buffer

Cat9k(config)#end

Análisis de caídas de salida con Wireshark

Para verificar la presencia de microrráfagas en una red, puede utilizar una herramienta de captura de paquetes como Wireshark:

- Wireshark captura paquetes y le permite analizar el tráfico de la red en tiempo real o después de la captura.

- Para identificar qué microrráfagas ocurren cuando ocurre una caída con Wireshark, inicie la captura de paquetes en la interfaz afectada y verifique la interfaz repetidamente hasta que se produzca una caída de salida.

- Una vez completada la captura, abra el archivo de captura en Wireshark y busque períodos de tráfico alto seguidos de períodos de tráfico bajo o sin tráfico. Estas son posibles microrráfagas.

Para capturar y analizar eficazmente las caídas de salida en una interfaz, utilice estas recomendaciones:

- No se debe utilizar EPC (captura de paquetes integrada). EPC limita todo el tráfico a un máximo de 1000 paquetes por segundo (pps), lo que puede invalidar potencialmente los datos.

- El método recomendado es un SPAN TX-Only de la interfaz donde se identifican las caídas de salida.

- Los puertos de origen y de destino deben tener la misma velocidad, o el puerto de destino debe tener una velocidad mayor que el puerto de origen cuando se utiliza SPAN. Esto garantiza que la sesión SPAN no introduzca congestión de red adicional o caídas de paquetes debido a velocidades de puerto no coincidentes.

- Es importante recopilar la sesión SPAN mientras las caídas de salida aumentan activamente. Esto garantiza que se capture el tráfico relevante y se pueda identificar la causa raíz de la microrráfaga. Si la sesión SPAN se recopila después de que se hayan producido las caídas, no podrá capturar el tráfico relevante.

Para confirmar si estos períodos de tráfico elevado son realmente microrráfagas, utilice la función de gráfico de E/S de Wireshark. Dado que el gráfico de E/S muestra una representación gráfica del tráfico de red a lo largo del tiempo, es más fácil identificar las microrráfagas. Para crear un gráfico de E/S, vaya a Estadísticas > Gráfico de E/S:

Nota: Para demostrar este procedimiento, utilizamos una captura de paquetes tomada en una interfaz de 1 Gbps. Sin embargo, los pasos son los mismos para resolver problemas de caídas de salida en cualquier interfaz de alta velocidad.

Figura 2. Seleccione el gráfico de E/S.

El gráfico siguiente muestra una línea que representa la cantidad de datos en tránsito a lo largo del tiempo. Busque picos en el gráfico, que indican períodos de tráfico elevado. Si estos picos van seguidos de períodos de tráfico bajo o sin tráfico, es posible que haya identificado una microrráfaga.

Figura 3. Muestra el gráfico de E/S de la captura de paquetes.

Es importante asegurarse de que se seleccionan todos los paquetes sin aplicar ningún filtro de visualización. Además, seleccione la opción Line Graph y establezca el eje Y en Bits para analizar correctamente el tráfico.

Figura 4. Muestra cómo seleccionar la opción Gráfico lineal y establecer el eje Y en Bits.

Al analizar una captura de paquetes de gran tamaño, es fundamental identificar el período de tiempo específico en el que está interesado. Por ejemplo, en este escenario, se puede observar que hay una gran cantidad de tráfico en las proximidades de 30 segundos.

Al hacer clic en el pico de un pico en el gráfico de E/S, Wireshark selecciona el paquete en segundo plano. En nuestro escenario, se seleccionaron los paquetes 79280 y 101896 para crear un subconjunto de la captura de paquetes con el fin de trabajar dentro de los sellos de tiempo donde se sospecha la presencia de microrráfagas.

Figura 5. Muestra cómo crear un subconjunto de la captura de paquetes que se centra en las marcas de tiempo sospechosas de presencia de microrráfaga.

Para exportar el primer y el último paquete seleccionados a un nuevo archivo, asegúrese de seleccionar los iconos de radio Range y Captured.

Figura 6. Muestra cómo exportar y guardar el subconjunto de la captura de paquetes.

Después de guardar el archivo, ábralo y desplácese de nuevo al gráfico de E/S. Asegúrese de que el intervalo esté configurado en 1ms para representar gráficamente los picos observados en milisegundos.

Figura 7. Muestra el gráfico de E/S del subconjunto exportado de la captura de paquetes.

Cuando se muestra el gráfico, es importante identificar los picos que representan períodos en los que el tráfico se transmitió a velocidad de línea durante un milisegundo completo, lo que hace que el búfer se llene y en los que se podrían haber generado caídas de salida. Por ejemplo, en una interfaz de 1 Gbps, esto correspondería a 1.000.000 bits por milisegundo.

Haga clic en el pico de un pico que represente una microrráfaga potencial. Ayuda a identificar el paquete que ha causado las caídas de salida. Este paquete se puede analizar más a fondo para determinar la causa raíz de la microrráfaga y tomar medidas correctivas.

Figura 8. Muestra cómo identificar el tráfico de microrráfaga potencial en el gráfico de E/S.

Advertencia: Es importante tener en cuenta esta limitación cuando utilice Wireshark o cualquier otra herramienta de captura de paquetes en una interfaz de alta velocidad. Las interfaces de alta velocidad, como las de 40 G y 100 G, generan un volumen importante de tráfico de red que puede saturar los recursos del sistema utilizados para capturar paquetes. En consecuencia, esto puede provocar la pérdida de paquetes durante el proceso de captura y puede afectar a la precisión e integridad de los datos capturados.

Enfoques alternativos

Si ha agotado los recursos asignados a una cola y aún experimenta caídas, debe considerar opciones alternativas para administrar la congestión. Estos pueden incluir:

- Actualice las velocidades de interfaz. Puede cambiar de 1G a 10G, de 10G a 25G o de 40G para aumentar el ancho de banda de salida y reducir la tasa de sobresuscripción.

- Cambie la plataforma a una con un búfer más grande por cola/por interfaz.

- Ajuste la configuración de la aplicación para reducir el tamaño de la ráfaga que causa las caídas de salida.

- Utilice un planificador de colas para priorizar una clase de tráfico sobre otra. Este método da prioridad a la protección del tráfico más importante a expensas de mayores caídas para el tráfico menos importante.

- Implemente algoritmos de gestión de la congestión, como WRED (descarte anticipado aleatorio ponderado) o WTD (descarte trasero ponderado) para descartar tráfico antes. Los umbrales WRED o WTD pueden provocar una caída más temprana del tráfico en ráfagas, lo que se traduce en la reducción automática de las ventanas de transmisión para los clientes finales. Esto permite que otro tráfico menos congestionado se encuentre con una congestión reducida, lo que garantiza una asignación de búfer mínima para las diferentes clases de tráfico durante los períodos de congestión alta.

- Controla el tráfico más cercano al origen de una aplicación conocida de gran ancho de banda, como las copias de seguridad de datos para reducir la frecuencia y la gravedad de las ráfagas en la red. Esto ofrece a las áreas de ancho de banda bajo entre el origen y el destino, ubicadas en cualquier lugar de la red, más oportunidades para gestionar de forma eficaz tanto el tráfico en ráfagas como el tráfico de red normal.

- Utilice Port-channels. Sin embargo, es importante tener en cuenta que, debido al hash, existe la posibilidad de que varios flujos se dirijan a un único miembro, lo que puede dar lugar a caídas persistentes.

Es importante tener en cuenta que algunas de estas opciones requieren configuraciones más involucradas, como la ingeniería de tráfico, pero pueden proporcionar ventajas significativas para mitigar la congestión de la red y las caídas de salida.

Información Relacionada

- Plataformas de switching Cisco Catalyst 9000: Informe técnico sobre QoS y colas

- Guía de Configuración de Calidad de Servicio, Cisco IOS XE 17.x

- Matriz de compatibilidad de óptica a dispositivo de Cisco

- Innovación en soporte: Cómo Cisco TAC está transformando la documentación y simplificando el autoservicio

- Soporte Técnico y Documentación - Cisco Systems