El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
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.
Cisco recomienda que tenga conocimiento sobre estos temas:
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
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.
Este documento también puede utilizarse con estas versiones de software y hardware:
Nota: Este documento no se aplica a los switches 9500X o 9600X, ya que estos utilizan una arquitectura ASIC y QoS diferente.
Para obtener una descripción técnica de QoS en los switches Catalyst serie 9000, consulte el 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: Resolución de Problemas de Caídas de Salida en switches Catalyst serie 9000
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 |
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.
El cálculo final del búfer disponible por cola depende de los siguientes factores:
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
<snip>
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 el 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.
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 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.
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:
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 - Hardmax: 600 Softmax: 600. T1 - Softmax: 2400
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:
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: Q1 - Hardmax: 600, Softmax: 600. Q2 - Softmax: 28800
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 configurada la proporción 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:
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 - Hardmax: 240, Softmax: 240. Q1 - Softmax: 960, Q2 - Softmax: 480, Q3 - Softmax: 480, Q4 - Softmax: 480
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:
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.
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:
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, 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>
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>
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.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
3.0 |
24-May-2024 |
Recertificación |
1.0 |
02-Dec-2022 |
Versión inicial |