Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Productos Relacionados

Antecedentes

Terminology

Buffers

Algoritmo de asignación de búfer de cola de switch

Configurar

Escenario 1: Determinar el valor del búfer base para una velocidad de puerto determinada

Escenario 2: Determinación del búfer de software y de hardware para varias colas y proporciones explícitas

Escenario 2.1: Modificación del multiplicador configurado por el usuario desde el escenario 2

Escenario 3: Determinación del búfer de software y de hardware para varias colas y una proporción implícita

Escenario 3.1: Determinar el búfer de software y de hardware para varias colas y varias proporciones implícitas

Escenario 4: La proporción de la suma de los búferes de cola en las colas es inferior a 100

Escenario 5: Determinación del búfer de software y de hardware de una clase de nivel 2 de prioridad

Límite de cola

Información Relacionada

Introducción

Este documento describe cómo predecir la asignación del búfer de cola a las colas de tráfico en los switches Catalyst serie 9000.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Conceptos y procesos de calidad de servicio (QoS) sobre cómo se marcan, se ponen en cola y se programan los paquetes

- Configuración de QoS de Cisco MQC

Componentes Utilizados

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

- Cisco Catalyst serie 9500-25Y4C

- Cisco IOS® XE 17.4.1

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.

Productos Relacionados

Este documento también puede utilizarse con estas versiones de software y hardware:

- Switches Catalyst serie 9200 - 9600

- Catalyst 9300X y 9400X

- Todas las versiones del software Cisco IOS XE

Nota: Este documento no se aplica al 9500X o 9600X, ya que estos utilizan una arquitectura ASIC y QoS diferente.

Antecedentes

Para obtener una descripción técnica de QoS en los switches Catalyst serie 9000, consulte:  Informe técnico sobre QoS y colas de Catalyst 9000.

A menudo, la asignación de búfer debe ajustarse como respuesta a caídas de salida no deseadas para una clase de tráfico determinada. En este artículo se puede encontrar más información sobre cómo diagnosticar y resolver problemas de caídas de salida en switches Catalyst serie 9000: Solución de problemas de caídas de salida en los switches Catalyst 9000

Terminology

QoS

Calidad del servicio

Concepto o grupo de funciones relacionadas con la clasificación, marca, cola y programación del tráfico entrante y saliente de un dispositivo de red

DSCP

Punto de Código de Servicios Diferenciados

Mecanismo de clasificación de tráfico contenido en el encabezado IP de un paquete

CoS

Clase de servicio

Mecanismo de clasificación de tráfico contenido en el encabezado de trama Ethernet de un paquete

AS

Entrada de control de acceso

Una única regla o línea dentro de una lista de control de acceso (ACL)

ACL

Lista de control de acceso

Grupo de entradas de control de acceso (ACE) que utilizan diversas funciones para hacer coincidir el tráfico y realizar una acción

ASIC

Circuito integrado específico de la aplicación

Un chip de ordenador diseñado para realizar una tarea específica o un conjunto de tareas con alta eficiencia.

UADP

Plano de datos de Unified Access

Cisco ASIC se utiliza en los switches Catalyst serie 9000 para realizar muchas tareas de procesamiento de paquetes de red.

PBC

Búfer de paquetes complejo

Subsistema Cisco UADP ASIC, que actúa como búfer de paquetes central para procesar, poner en cola y programar paquetes.

AQM

Administración de cola activa

Subsistema Cisco UADP ASIC que gestiona la cola de tráfico y planifica acciones para los puertos de red.

DTS

Umbral y escalabilidad dinámicos

Tecnología Cisco UADP ASIC que ajusta y escala de forma dinámica los búferes en todos los puertos para optimizar la utilización del hardware

Buffers

Como concepto, las memorias intermedias son memoria utilizada para absorber ráfagas transitorias de datos, cuando los datos conmutados o enrutados a un puerto exceden la capacidad de los puertos de poner datos en el cable. Un puerto tiene una velocidad fija a la que transmite y elimina datos de la cola. Conceptualmente, un búfer es simplemente un lugar para almacenar o poner en cola los datos hasta que se transmiten fuera de la interfaz.

En los Catalyst 9000 Series Switches, la palabra buffer tiene dos usos. El búfer del sistema en su conjunto se conoce también como el complejo de búfer de paquetes (PBC) del ASIC. La palabra buffers también puede referirse a una pequeña unidad del PBC. Un búfer se asigna a los puertos por cola. En otras palabras, a una cola de puerto se le asigna una cantidad de pequeños búferes individuales desde el búfer general del sistema.

En las plataformas basadas en Cisco UADP ASIC, un búfer contiene hasta 256 bytes de datos y los búferes se enlazan para representar tramas de más de 256 bytes.

Algoritmo de asignación de búfer de cola de switch

- Un puerto tiene asignado un valor de búfer base codificado de forma rígida que el usuario o el sistema pueden escalar (pero el número base no se puede cambiar, lo que es importante para comprender cómo predecir los resultados)

- El valor del búfer base para un tipo de puerto determinado depende de una combinación específica de hardware (modelo de switch), versión de software y velocidad del puerto. Por ejemplo, un puerto Gigabit Ethernet en Catalyst C9500-25Y4C comienza con un valor de búfer base diferente al de un puerto Gigabit Ethernet en Catalyst 9200L

- Este valor base se divide en N colas, según la configuración.

El cálculo final del búfer disponible por cola depende de los siguientes factores:

- Número de colas configuradas

- El queue-buffers ratio, un comando que le permite ajustar cómo el buffer base se divide entre las colas de puerto configuradas.

- Un multiplicador de búfer base configurado por el usuario (configurado como qos queue-softmax-multiplier <percent>)

- Multiplicador de búfer base definido por el sistema (no configurable por el usuario, 4x o 400%): aunque se aplica de forma predeterminada, hay algunas circunstancias en las que se elimina, por lo que es importante comprender este valor 4x para predecir el algoritmo de asignación

- Ambos multiplicadores sólo afectan a lo que se denominan memorias intermedias interactivas

Las memorias intermedias de software son memorias intermedias compartidas entre puertos. Estas memorias intermedias se llaman soft porque no están garantizadas para el puerto.

El sistema asigna de forma intencionada búferes de software. Esto permite que cualquier puerto utilice un gran número de búferes si es necesario, pero a medida que más puertos necesitan búferes, todos los puertos y colas se reducen de forma dinámica y justa como parte del proceso DTS de Cisco UADP ASIC.

En resumen, las memorias intermedias interactivas - referidas en los resultados como softmax, es un valor máximo oportunista. Un puerto sólo utiliza el softmax completo si esa cantidad de memoria intermedia está disponible desde el búfer general del sistema. A medida que aumenta la demanda de búfer en otros puertos y colas, el búfer máximo disponible para el puerto es menor.

Los búferes duros son búferes explícitamente reservados para un puerto y no se ven afectados por el proceso DTS. Dado que los búferes duros son búferes garantizados, la suma de los búferes duros totales asignados a los puertos nunca excede el segmento PBC dedicado a estos búferes duros.

Los mecanismos que gobiernan la escala activa del búfer de software se conocen como DTS (Dynamic Threshold and Scale, umbral y escala dinámicos), y se describen en el informe técnico sobre QoS de Catalyst serie 9000.

El tamaño de los segmentos PBC dedicados a los búferes de hardware y software de la cola cambia dinámicamente a medida que configura el sistema, y se puede ver como AQM GlobalSoftLimit y GlobalHardLimit en este resultado:

C9500#show platform hardware fed active qos queue stats interface twe1/0/1

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

AQM Global counters

GlobalHardLimit: 18072 | GlobalHardBufCount: 0

GlobalSoftLimit: 37224 | GlobalSoftBufCount: 0

C9500#show platform hardware fed active qos queue config interface tw1/0/1

Asic:0 Core:1 DATA Port:20 GPN:101 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 160 - 167

DrainFast:Disabled PortSoftStart:2 - 4320 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  2   480   3  1920  16   960   0     0   4  5760      En <--- default configuration has a mix of hard buffer and soft buffer in queue 0

1   1  0     0   4  2880  16  1440   8   720   4  5760      En <--- default configuration has two queues so some buffers are seen in queue 1

C9500(config)#policy-map test

C9500(config-pmap)#class class-default

C9500(config-pmap-c)#priority level 1                           <--- Priority level 1 queue configuration on first queue, which is queue 0 in the next output

C9500(config-pmap-c)#exit

C9500(config-pmap)#exit

C9500(config)#int tw1/0/1

C9500(config-if)#service-policy output test

C9500(config-if)#end

C9500#show platform hardware fed active qos queue config interface twe1/0/1

Asic:0 Core:1 DATA Port:20 GPN:101 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 160 - 167

DrainFast:Disabled PortSoftStart:4 - 1800 BufferSharing:Disabled

DTS  Hardmax  Softmax  PortSMin GlblSMin PortStEnd QEnable

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

0    1  4  1200  7  1200  0      0 0      0 3   2400    En   <--- Hardmax increased to 1200 from 480 in queue 0, softmax reduced to 1200 from 1920

1    1  0     0  0     0  0      0 0      0 3   2400    En   <--- queue 1 now no longer has any values, as no second queue is configured

C9500#show platform hardware fed active qos queue stats interface twe1/0/1

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

AQM Global counters

GlobalHardLimit: 18792 | GlobalHardBufCount: 0              <--- GlobalHardLimit increased to 18792 from 18072, or by 720

GlobalSoftLimit: 36504 | GlobalSoftBufCount: 0              <--- GlobalSoftLimit decreased from 37224 to 36504, or by 720

Nota: Observe el aumento de GlobalHardLimit y la disminución proporcional de GlobalSoftLimit.

Además, cuando configura el nivel de prioridad 1, el softmax para esa cola se configura estáticamente para ser exactamente igual al hardmax. Sólo puede modificar el búfer duro para una cola de nivel de prioridad 1.

El cambio en GlobalHardLimit y GlobalSoftLimit es igual a 720. Esto también es igual al cambio en hardmax después de la configuración.

Los escenarios de este documento explican cómo calcular y predecir las asignaciones softmax y hardmax a través de varias configuraciones de mapa de políticas.

Configurar

Escenario 1: Determinar el valor del búfer base para una velocidad de puerto determinada

Un valor final del búfer de las colas es en parte una función de un valor base que se asigna primero entre las colas.  Esto se multiplica posteriormente en el caso de los búferes programables.

Los factores de multiplicación, en combinación con otros comportamientos implícitos, hacen que la determinación de un valor final para una cola dada, con una configuración dada, sea un desafío.

El primer paso para aclarar la asignación de búfer de cola resultante es determinar el valor de búfer base.

Para ello, aproveche una cola de prioridad, que recibe el búfer duro directamente proporcional al número de colas o a la proporción de búferes de cola configurados.

Con una configuración específica, puede derivar explícitamente la cantidad de búfer base asignado a una velocidad de puerto determinada.

Configurar y asignar todo el búfer a una única cola no multiplicada (una cola de nivel de prioridad 1)

En este ejemplo, se utiliza la clase class-default para hacer coincidir todo el tráfico, porque no se configuran otras clases.

Switch(config)#policy-map test1

Switch(config-pmap)#class class-default

Switch(config-pmap-c)#priority level 1        <--- Assign hard buffer to the port, which is not affected by multipliers

Switch(config-pmap-c)#queue-buffers ratio 100 <--- Assign all buffers to this queue only

La configuración del ejemplo anterior realiza las siguientes acciones:

- El nivel de prioridad 1 indica al sistema que realice una programación estricta para esta cola/clase y que asigne un búfer duro a esta cola/clase.

- La forma en que se programan los paquetes está más allá del alcance de este documento, pero una cola estricta generalmente se atiende antes que todas las demás.

- El ratio de queue-buffers 100 asigna 100/100 o 100% del buffer base disponible a esta cola/clase.

En un policy-map con más de una clase, no puede asignar el 100% del buffer a una sola clase. Debe asignar 1/100 o 1% como mínimo a cualquier clase.

En una directiva con una sola clase, sólo tiene una clase y puede asignarle todo el búfer.

Como se indicó anteriormente, una cola de prioridad obtiene búferes duros iguales a su distribución de buffer base según la proporción de búferes de cola configurada. Un búfer duro no está sujeto a ningún multiplicador.

El buffer de hardware se observa en las salidas bajo una columna titulada Hardmax.

Ahora tiene una sola clase de tráfico con búferes no sujetos a ningún multiplicador. Con esto, puede derivar explícitamente la asignación de búfer base para esta velocidad de puerto (y solo esta velocidad de puerto en esta plataforma, otras difieren), porque el búfer base y el hardmax son iguales.

Búfer base = ?

Ratio de cola 1 = 100/100 = 1

Hardmax para esta cola = Búfer base x Ratio de cola 1

X = Y x 1

X / 1 = Y

X = Y

X = Y = Hardmax = búfer base = 1200 (consulte el ejemplo 2).

En este ejemplo, policy-map test1 se aplica a una interfaz como una política de servicio de salida

9500H(config)#int tw1/0/3

9500H(config-if)#service-policy output test1                    <--- service policy that assigns all buffer to the first queue, as a priority queue 1

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:4 - 1800 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  4  1200   7  1200   0     0   0     0   3  2400      En <--- hardmax 1200 - the maximum amount of buffer this port can use without multiplication

1   1  0     0   0     0   0     0   0     0   3  2400      En

2   1  0     0   0     0   0     0   0     0   3  2400      En

3   1  0     0   0     0   0     0   0     0   3  2400      En

4   1  0     0   0     0   0     0   0     0   3  2400      En

5   1  0     0   0     0   0     0   0     0   3  2400      En

6   1  0     0   0     0   0     0   0     0   3  2400      En

7   1  0     0   0     0   0     0   0     0   3  2400      En

<snip>

Como se muestra, el valor de hardmax para esta cola de prioridad con el 100% del búfer asignado, es 1200.

Como hardmax es un valor sin multiplicar/sin escalar y el 100% del búfer está configurado en esta cola, la asignación de búfer base para este modelo específico de switch, versión de software y velocidad de puerto específica es 1200.

Otras velocidades de puerto en este mismo switch, y otros modelos de switches para la misma velocidad de puerto, reciben diferentes asignaciones de memoria intermedia base. Esta asignación base no es configurable por el usuario y debe derivarse mediante observación.

Otros escenarios en este documento comienzan todos con el mismo switch, software y velocidad de puerto. Por lo tanto, todos ellos asumen una asignación base de 1200 para los cálculos con el fin de determinar la asignación final del búfer.

Nota: Observe que el softmax del ejemplo anterior también es 1200.

Por diseño, una cola de nivel de prioridad 1 tiene softmax exactamente igual a su hardmax. Esto es intencionado y no configurable por el usuario.

Además, este caso específico de asignación softmax no se ve afectado por los multiplicadores softmax que se muestran más adelante. Sólo una cola de nivel de prioridad 1 tiene este comportamiento para softmax, que es lo que se pretende.

Escenario 2: Determinación del búfer de software y de hardware para varias colas y proporciones explícitas

En este escenario, se agrega una cola adicional. Esta cola no utiliza el nivel de prioridad 1, por lo que softmax se amplía con multiplicadores.

Un multiplicador está configurado por el usuario y el otro es un multiplicador oculto/no configurable.

Combine estos multiplicadores con el buffer base derivado para este puerto, en este caso 1200 según el Escenario 1.

Algoritmicamente:

Ratio de cola actual = ratio de queue-buffers para la cola/clase que se va a predecir

Multiplicador oculto = 400%

Multiplicador de usuario = valor porcentual que configura en qos queue-softmax-multiplier <percent>. El valor predeterminado es 100%

Softmax = ( Búfer base x (Relación de cola actual / 100)) x Multiplicador oculto x (Multiplicador de usuario / 100)

9500H(config)#policy-map test2

9500H(config-pmap)# class class1

9500H(config-pmap-c)# priority level 1

9500H(config-pmap-c)# queue-buffers ratio 50          <-- class 1 / first queue gets 50% of base buffer

9500H(config-pmap-c)# class class-default

9500H(config-pmap-c)# bandwidth remaining percent 100 <-- required configuration due to priority queue, can be ignored for this example

9500H(config-pmap-c)# queue-buffers ratio 50          <-- class 2 / first queue gets 50% of base buffer

Resumen de valores:

- Búfer base = 1200 - Cómo encontrar este número se muestra en el escenario 1

- Multiplicador de usuario = 100% - Valor predeterminado, esto no se ha modificado todavía

- Multiplicador oculto = 4 - predeterminado y no configurable por el usuario

- Ratio de cola actual (clase 1) = 50% - Configurado en el policy map con queue-buffers ratio 50

- Ratio de cola actual (class-default) = 50% - Configurado en el policy map con ratio de queue-buffers 50

Determinar asignación de búfer de clase 1:

Como la clase 1 es una cola de prioridad, recibe hardmax (buffer de hardware), y un caso especial de softmax no afectado por multiplicadores.

Hardmax de clase 1 = (Búfer base x Ratio de cola actual (clase 1) / 100)

Hardmax de clase 1 = 1200 x (50/100) = 600 - debido a un caso especial de una cola de prioridad, detenga todas las matemáticas, asigne su resultado a hardmax. Softmax es igual a Hardmax como regla para el nivel de prioridad 1.

Determinar asignación de búfer de clase predeterminada:

Clase class-default = (Búfer base x (Ratio de cola actual(class-default / 100)) x Multiplicador oculto x (Multiplicador de usuario / 100)

Clase class-default = [

[búfer base] 1200 x [índice de cola actual] (50/100) = 600

[resultado anterior] 600 x [multiplicador oculto] 4 x [multiplicador de usuario] (100/100) = 2400

]

9500H(config)#int tw1/0/3

9500H(config-if)#service-policy output test2                   <-- apply the policy

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:5 - 3600 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   600   9   600   0     0   0     0   1  4800      En <-- Hardmax is 600 as predicted, Softmax is set equal to Hardmax due to priority level 1

1   1  0     0  10  2400  16  1200   8   600   1  4800      En <-- Softmax is 2400 as predicted

<snip>

Resultado final: Q0 - Máximo: 600 Softmax: 600. T1 - Softmax: 2400

Escenario 2.1: Modificación del multiplicador configurado por el usuario desde el escenario 2

Este escenario comienza igual que el Escenario 2, excepto que ahora usted configura qos queue-softmax-multiplier 1200.

Esto multiplica las memorias intermedias softmax en la configuración actual por 1200%, o un factor de 12.

Resumen de valores:

- Búfer base = 1200 - Cómo encontrar este número se muestra en el escenario 1

- Multiplicador de usuario = 1200% - Este es el valor cambiado en este escenario, a través de qos queue-softmax-multiplier 1200

- Multiplicador oculto = 4 - predeterminado y no configurable por el usuario

- Ratio de cola actual (clase 1) = 50% - Configurado en el policy map con queue-buffers ratio 50

- Ratio de cola actual (class-default) = 50% - Configurado en el policy map con queue-buffers ratio 50

Determinar asignación de búfer de clase 1:

Como la clase 1 es una cola de prioridad, recibe hardmax (buffer de hardware), y un caso especial de softmax no afectado por multiplicadores.

Hardmax de clase 1 = (Búfer base x Ratio de cola actual (clase 1) / 100)

Hardmax de clase 1 = 1200 x (50/100) = 600 - debido a un caso especial de una cola de prioridad, detenga todas las matemáticas, asigne su resultado a hardmax. Softmax es igual a Hardmax como regla para el nivel de prioridad 1.

Determinar asignación de búfer de clase predeterminada:

Clase class-default = (Búfer base x (Ratio de cola actual(class-default / 100)) x Multiplicador oculto x (Multiplicador de usuario / 100)

Clase class-default =[

[búfer base] 1200 x [índice de cola actual] (50/100) = 600

[resultado anterior] 600 x [multiplicador oculto] 4 x [multiplicador de usuario] (1200/100) = 28800

]

Configure qos queue-softmax-multiplier 1200 y observe los cambios a softmax (softmax es un valor de búfer máximo para esa cola, escalado dinámicamente según el uso de búfer general actual):

9500H(config)#qos queue-softmax-multiplier 1200

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:3 - 31500 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   600   5   600   0     0   0     0   6 42000      En  <-- Queue 0 does not change as its configured with priority level 1

1   1  0     0   6 28800   1   900   1   900   6 42000      En  <-- Softmax increases by 12x to 28800 from 1200 due to queue-softmax-multiplier 1200

<snip>

Resultado final: P1 - Máx.: 600, Softmax: 600. T2 - Softmax: 28800

Escenario 3: Determinación del búfer de software y de hardware para varias colas y una proporción implícita

En este escenario, se configuran cinco colas, pero sólo cuatro tienen la proporción de queue-buffers definida explícitamente. El búfer asignado a esas colas es el mismo que en los ejemplos anteriores.

La cola que no está configurada recibe la diferencia entre la suma de todos los búferes de cola configurados y 100.

Suma de las relaciones configuradas explícitamente = (relación de búfer Q0) + (relación de búfer Q1) ... (relación de búfer final): se admiten hasta 8 colas en los switches Catalyst serie 9000, por lo que puede agregar hasta 8 relaciones

Razón implícita restante = (100 - Suma de las relaciones configuradas explícitamente).

Razón Implícita Sobrante es el valor que se asigna a una cola que no tiene configurado el ratio queue-buffers.

Policy-map en uso para este escenario:

9500H(config)#policy-map test3

9500H(config-pmap)# class class1

9500H(config-pmap-c)# priority level 1

9500H(config-pmap-c)# queue-buffers ratio 20

9500H(config-pmap-c)# class class2

9500H(config-pmap-c)# bandwidth remaining percent 10 <-- no queue-buffers ratio statement for this class

9500H(config-pmap-c)# class class3

9500H(config-pmap-c)# bandwidth remaining percent 10

9500H(config-pmap-c)# queue-buffers ratio 10        <-- rest of queues have an explicit queue-buffers ratio

9500H(config-pmap-c)# class class4

9500H(config-pmap-c)# bandwidth remaining percent 10

9500H(config-pmap-c)# queue-buffers ratio 10

9500H(config-pmap-c)# class class-default

9500H(config-pmap-c)# bandwidth remaining percent 70

9500H(config-pmap-c)# queue-buffers ratio 40

Resumen de valores:

- Búfer base = 1200 - Cómo encontrar este número se muestra en el escenario 1

- Multiplicador de usuario = 100% - Valor predeterminado, esto no se ha modificado todavía

- Multiplicador oculto = 4 - predeterminado y no configurable por el usuario

- Ratio de cola actual (clase 1) = 20% - Configurado en el policy map con queue-buffers ratio 20

- Current Queue Ratio(class2) = Unknown, debe resolver este problema: el ratio de queue-buffers no está configurado para esta clase

- Ratio de cola actual (clase 3) = 10% - Configurado en el policy map con queue-buffers ratio 10

- Ratio de cola actual (clase 4) = 10% - Configurado en el policy map con ratio de queue-buffers 10

- Ratio de cola actual (class-default) = 40% - Configurado en el policy map con queue-buffers ratio 40

Calcular el ratio del búfer de cola que permanece:

Razón implícita restante = (100 - Suma de las relaciones configuradas explícitamente).

100 - (20) - (10) - (10) - (50) = 20

Ratio de cola actual (clase 2) = 20

Calcular la asignación final del búfer de cola

Clase1 = [Búfer base] 1200 x [Current Queue Ratio(clase1)] (20/100) = 240 - cola de prioridad, sin cálculo adicional

Clase2 = [

[Base Buffer] 1200 x [Current Queue Ratio(class2)] (10/100) = 240 - asignación de búfer base para esta cola, pero se debe multiplicar para obtener softmax para una cola no prioritaria

[Asignación de búfer base para esta cola] 120 x [multiplicador oculto] 4 x [multiplicador de usuario] (100/100) = 960

]

Repetir para las colas que permanecen:

Clase 3 = [

1200 x (10/100) = 120

120 x 4 x (100/100) = 480

]

Clase 4 = [

1200 x (10/100) = 120

120 x 4 x (100/100) = 480

]

Clase class-default = [

1200 x (40/100) = 480

600 x 4 x (100/100) = 1920

]

Resultado del policy-map test3 aplicado en comparación con la predicción:

9500H(config)#int tw1/0/3

9500H(config-if)#service-policy output test3

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:4 - 2880 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   240   8   240   0     0   0     0   6  3840      En

1   1  0     0   9   960  16   480   8   240   6  3840      En <-- queue without queue buffers ratio configured receives any leftover ratio, as predicted

2   1  0     0  11   480  16   240   8   120   6  3840      En

3   1  0     0  11   480  16   240   8   120   6  3840      En

4   1  0     0   4  1920  16   960   8   480   6  3840      En

<snip>

Resultado final: Q0 - Máximo: 240, Softmax: 240. T1 - Softmax: 960, T2 - Softmax: 480, Q3 - Softmax: 480, T4 - Softmax: 480

Escenario 3.1: Determinar el búfer de software y de hardware para varias colas y varias proporciones implícitas

En este escenario, se configuran cinco colas y dos colas no tienen configurada la proporción de queue-buffers.

Para determinar la asignación de búfer, continúa la misma lógica de la situación 2, pero también debe dividir la relación implícita restante por el número total de colas/colas implícitas que no tienen la relación de cola-búfer

Policy-map en uso para este escenario:

9500H(config)#policy-map test4

9500H(config-pmap)# class class1

9500H(config-pmap-c)# priority level 1

9500H(config-pmap-c)# queue-buffers ratio 20

9500H(config-pmap-c)# class class2

9500H(config-pmap-c)# bandwidth remaining percent 10 <-- no queue-buffers ratio statement for this class

9500H(config-pmap-c)# class class3

9500H(config-pmap-c)# bandwidth remaining percent 10 <-- no queue-buffers ratio statement for this class

9500H(config-pmap-c)# class class4

9500H(config-pmap-c)# bandwidth remaining percent 10

9500H(config-pmap-c)# queue-buffers ratio 10

9500H(config-pmap-c)# class class-default

9500H(config-pmap-c)# bandwidth remaining percent 70

9500H(config-pmap-c)# queue-buffers ratio 40

Resumen de valores:

- Búfer base = 1200 - Cómo encontrar este número se muestra en el escenario 1

- Multiplicador de usuario = 100% - Valor predeterminado

- Multiplicador oculto = 4 - Predeterminado y no configurable por el usuario

- Ratio de cola actual (clase 1) = 20% - Configurado en el policy map con queue-buffers ratio 20

- Current Queue Ratio(class2) = Unknown, debe resolver este problema: el ratio de queue-buffers no está configurado para esta clase

- Current Queue Ratio(class3) = Unknown, debe resolver este problema: el ratio de queue-buffers no está configurado para esta clase

- Ratio de cola actual (clase 4) = 10% - Configurado en el policy map con ratio de queue-buffers 10

- Ratio de cola actual (class-default) = 40% - Configurado en el policy map con ratio de queue-buffers 40

Calcular el ratio del búfer de cola que permanece:

Razón implícita restante = (100 - Suma de las relaciones configuradas explícitamente).

Número de colas implícitas = 2 (la clase 2 y la clase 3 no tienen definida una proporción de queue-buffers)

Suma de las relaciones configuradas = 20+40+10 = 7

Razón implícita restante = 100 - 70 = 30

Asignación de proporción de cola implícita = [Residuo de proporción implícita] 30 / [Número de colas implícitas] 2 = 15

Calcular la asignación final del búfer de cola:

Clase1 =

[Búfer base] 1200 x [Current Queue Ratio(clase1)] (20/100) = 240 - cola de prioridad, sin cálculo adicional

Clase2 =

[Base Buffer] 1200 x [Implicit queue ratio allocation] (15/100) = 180 - Debido a que la clase 2 no tiene un ratio queue-buffers definido, el resto del ratio queue-buffers de las colas explícitas se comparte entre las colas implícitas.

[Asignación de búfer base para esta cola] 180 x [multiplicador oculto] 4 x [multiplicador de usuario] (100/100) = 720

Repetir para las colas que permanecen:

Clase 3 = [

1200 x (15/100) = 180

120 x 4 x (100/100) = 720

]

Clase 4 = [

1200 x (10/100) = 120

120 x 4 x (100/100) = 480

]

Clase class-default = [

1200 x (40/100) = 480

600 x 4 x (100/100) = 1920

]

Resultado del policy-map test4 aplicado en comparación con la predicción:

9500H(config)#interface tw1/0/3

9500H(config-if)#service-policy output test4

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:4 - 2880 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   240   8   240   0     0   0     0   6  3840      En

1   1  0     0   9   720  16   360   8   180   6  3840      En <-- queue 1 and 2 were not configured with queue-buffers ratio

2   1  0     0   9   720  16   360   8   180   6  3840      En <-- queue 1 and 2 get an equal share of leftover buffer ratio

3   1  0     0  11   480  16   240   8   120   6  3840      En

4   1  0     0   4  1920  16   960   8   480   6  3840      En

<snip>

Nota: si el resultado de la asignación de la proporción de cola implícita no es un entero, no es posible un recurso compartido igual. El resultado se redondea hacia arriba para las colas más temprano en el policy-map y hacia abajo para las colas más tarde.  La suma final de la proporción de búferes de cola asignados sigue siendo 100, pero las colas implícitas no siempre obtienen la asignación igual debido al requisito de resultado entero que se acaba de describir.

Escenario 4: La proporción de la suma de los búferes de cola en las colas es inferior a 100

En este escenario, se configuran cinco colas, todas con una relación de cola-búferes. La suma total de la proporción de búferes de cola entre las clases es inferior a 100.

En este caso, la proporción de búfer no asignado se distribuye uniformemente entre las clases.

De forma similar al escenario anterior, si el resultado dividido de la relación de memorias intermedias de cola sobrantes no es un entero, la asignación final a cada cola se redondea hacia arriba o hacia abajo y se agrega a la relación de memorias intermedias de cola que configuró.

Policy-map en uso para este escenario:

9500H(config)#policy-map test5

9500H(config-pmap)# class class1

9500H(config-pmap-c)# priority level 1

9500H(config-pmap-c)# queue-buffers ratio 10

9500H(config-pmap-c)# class class2

9500H(config-pmap-c)# bandwidth remaining percent 10

9500H(config-pmap-c)# queue-buffers ratio 10

9500H(config-pmap-c)# class class3

9500H(config-pmap-c)# bandwidth remaining percent 10

9500H(config-pmap-c)# queue-buffers ratio 10

9500H(config-pmap-c)# class class4

9500H(config-pmap-c)# bandwidth remaining percent 10

9500H(config-pmap-c)# queue-buffers ratio 10

9500H(config-pmap-c)# class class-default

9500H(config-pmap-c)# bandwidth remaining percent 70

9500H(config-pmap-c)# queue-buffers ratio 12

Resumen de valores:

- Búfer base = 1200 - Cómo encontrar este número se muestra en el escenario 1

- Multiplicador de usuario = 100% - Valor predeterminado

- Multiplicador oculto = 4 - Predeterminado y no configurable por el usuario

- Ratio de cola actual (clase 1) = 10% - Configurado en el policy map con queue-buffers ratio 10

- Ratio de cola actual (clase 2) = 10% - Configurado en el policy map con ratio de queue-buffers 10

- Ratio de cola actual (clase 3) = 10% - Configurado en el policy map con ratio de queue-buffers 10

- Ratio de cola actual (clase 4) = 10% - Configurado en el policy map con ratio de queue-buffers 10

- Ratio de cola actual (class-default) = 12% - Configurado en el policy map con queue-buffers ratio 12

- Número total de colas = 5

Suma de las relaciones configuradas = 10 + 10 + 10 + 10 + 12 = 52

Razón de búfer restante = 100% - 52% = 48%

[Buffer Ratio Leftover] 48% / [Total Number of Queues] 5 = 9.6% agregada por cola - Esto no es un entero, por lo que su aplicación final a las colas debe redondearse hacia arriba o hacia abajo por cola

Para obtener el número final de la relación de queue-buffers que utiliza el sistema, debe agregar 9 o 10 a la relación de queue buffers ya configurada.

Las clases superiores en el policy-map reciben el valor redondeado hacia arriba, 10. Las clases inferiores en el policy-map reciben el valor redondeado hacia abajo, 9.

Calcular la asignación final del búfer de cola

Razón de búfer restante = 48

Clase1 = [Búfer base] x ([Ratio de cola actual(clase1) + Valor redondeado de remanente de ratio de búfer compartido)]

Clase 1 = 1200 x (10% + 10%)/100) = 240 - cola de prioridad, sin cálculo adicional

Relación de búfer restante = (48 - 10) = 38

Clase2 = [Búfer base] x ([Ratio de cola actual(clase2) + Valor redondeado de remanente de ratio de búfer compartido)]

Clase 2 = 1200 x (10% + 10%)/100) = 240 - Continúe multiplicándolo por el usuario y los multiplicadores del sistema, ya que no es una cola de prioridad

Clase2 = [Asignación de búfer base para esta cola] 240 x [Multiplicador oculto] 4 x [Multiplicador de usuario] (100/100) = 960 - resultado softmax para esta cola

Relación de búfer restante = (38 - 10) - 28

Repetir para las colas que permanecen:

Clase 3 = [

1200 x (10+10)/100) = 240

120 x 4 x (100/100) = 960

]

Relación de búfer restante = (28 - 10) = 18

Clase 4 = [

1200 x (10+9)/100) = 240

120 x 4 x (100/100) = 912

]

Razón de búfer restante = 9

Class class-default= [

1200 x (12+9)/100) = 252

120 x 4 x (100/100) = 1008

]

Razón de búfer restante = 0

Resultado del policy-map test5 aplicado en comparación con la predicción:

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:5 - 1512 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   240   9   240   0     0   0     0   6  2016      En

1   1  0     0  10   960  16   480   8   240   6  2016      En

2   1  0     0  10   960  16   480   8   240   6  2016      En

3   1  0     0  11   912  16   456   8   228   6  2016      En

4   1  0     0  12  1008  16   504   8   252   6  2016      En

<snip>

Escenario 5: Determinación del búfer de software y de hardware de una clase de nivel 2 de prioridad

En este escenario, una clase en un policy-map se configura con el nivel de prioridad 2.

A diferencia del nivel de prioridad 1, en el que softmax no se ve afectado por los multiplicadores y se establece igual a hardmax, el nivel de prioridad 2 permite que softmax se multiplique mientras que también tiene una asignación de búfer duro (hardmax).

Policy-map en uso para este escenario:

9500H(config)#policy-map test6

9500H(config-pmap)#class class1

9500H(config-pmap-c)#priority level 1

9500H(config-pmap-c)#queue-buffers ratio 50 <-- 50 / 50 split between both queues

9500H(config-pmap-c)#class class-default

9500H(config-pmap-c)#priority level 2       <-- Priority level 2 in use now

9500H(config-pmap-c)#queue-buffers ratio 50 <-- 50 / 50 split between both queues

Resultado del policy-map test6 aplicado:

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:5 - 3600 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   600   9   600   0     0   0     0   1  4800      En <-- Softmax is equal to hardmax

1   1  5   600  10  2400  16  1200   0     0   1  4800      En <-- Softmax is multiplied by Hidden Multiplier (400%) and User Multiplier (100% default)r

<snip>

En la salida mostrada anteriormente, el softmax de la segunda cola tiene 4 softmax de la primera cola. Esto se debe a que priority-level 1 softmax específicamente no se ve afectado por los multiplicadores softmax del sistema, pero priority-level 2 sí lo está.

Si configura un multiplicador softmax de usuario, sólo la cola priority-level 2 se ve afectada:

9500H(config)#qos queue-softmax-multiplier 200

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:5 - 7200 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   600   9   600   0     0   0     0   5  9600      En <--- priority-level 1 queue unaffected by softmax multiplier

1   1  5   600  10  4800   8  1200   0     0   5  9600      En <--- User multiplier increased to 200%, softmax for this queue doubles

<snip>

Límite de cola

La configuración del límite de cola afecta a la asignación final del búfer de cola

El mecanismo principal para influir en la asignación del buffer de cola es la configuración de queue buffers-ratio agregada por cola en un policy-map de MQC.

Sin embargo, la asignación del búfer de cola se ve afectada por otras configuraciones.

El límite de cola define los umbrales por los cuales usted descarta una clase particular de tráfico (vía descarte trasero ponderado, WTD), que no se cubre en este documento.

En una circunstancia específica, queue-limit modifica el multiplicador oculto del sistema para las colas de memoria intermedia flexible, lo que afecta a la asignación de memoria intermedia flexible global para la cola a la que se aplica el límite de cola.

Primero, entienda que el límite de cola se puede configurar hasta 3 veces por clase. Esto define hasta 3 umbrales para WTD por DSCP o CoS.

En el siguiente resultado, sólo se definen dos umbrales.

Aplicar dos límites de cola a un policy-map:

9500H(config)#policy-map test7

9500H(config-pmap)# class class1

9500H(config-pmap-c)# priority level 1

9500H(config-pmap-c)# queue-buffers ratio 50

9500H(config-pmap-c)# class class-default

9500H(config-pmap-c)# priority level 2

9500H(config-pmap-c)# queue-buffers ratio 50

9500H(config-pmap-c)# queue-limit dscp af11 percent 10 <-- Tells system to drop af11 traffic at 10% queue utilization

9500H(config-pmap-c)# queue-limit dscp af12 percent 50 <-- Tells system to drop af12 traffic at 50% queue utilization

Observe los resultados de la asignación del búfer:

9500H(config-pmap-c)#interface tw1/0/3

9500H(config-if)#service-policy output test7

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:5 - 7200 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   600   9   600   0     0   0     0   5  9600      En

1   1  5   600  10  4800   8  1200   0     0   5  9600      En <--- final result for queue that contains 2 queue-limit statements is 4800

<snip>

En el siguiente ejemplo, se agrega una tercera configuración queue-limit a class class-default.

Observe los resultados de la asignación del búfer:

9500H(config)#policy-map test7

9500H(config-pmap)#class class-default

9500H(config-pmap-c)#queue-limit dscp af13 percent 100

9500H#show platform hardware fed active qos queue config interface tw1/0/3

Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183

DrainFast:Disabled PortSoftStart:5 - 1800 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  5   600   9   600   0     0   0     0   5  2400      En

1   1  5   600  10  1200  32  1200   0     0   5  2400      En <-- Softmax reduces by 400% from previous example

<snip>

Cuando se agrega una tercera configuración queue-limit a una cola, el multiplicador de memoria intermedia virtual oculto del sistema del 400% se inhabilita para esa cola. Sin embargo, esa cola aún respeta un multiplicador qos queue-softmax-multiplier <percent> configurado por el usuario.

Información Relacionada

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

- Soporte técnico y descargas de Cisco