Descripción de la configuración del búfer de CoS
Junos usa memoria intermedia de paquetes común a toda la PFE para almacenar paquetes en colas de interfaz. Esta memoria intermedia compartida cuenta con una contabilidad independiente de entrada y salida para tomar decisiones de aceptación, interrupción o pausa. Dado que el conmutador tiene un único conjunto de memoria con contabilidad de entrada y salida independiente, la cantidad total de memoria de búfer está disponible tanto desde la perspectiva de entrada como de salida. Los paquetes se contabilizan a medida que entran y salen del dispositivo, pero no existe el concepto de que un paquete llegue a un búfer de entrada y luego se mueva a un búfer de salida. En la tabla 1 se enumeran cantidades comunes específicas de memoria de búfer para conmutadores individuales.
| Conmutador |
Memoria intermedia de paquetes comunes |
|---|---|
| QFX5100, EX4600 |
12 MB |
| QFX5110, QFX5200-32C |
16 MB |
| QFX5200-48Y |
22 MB |
| QFX5120 |
32 MB |
| QFX5130 |
132 MB |
| QFX5210 |
42 MB |
| QFX5220 |
64 MB |
| QFX5230 |
112 MB |
| QFX5240 |
165 MB |
| QFX5700 |
132 MB |
Los búferes se dividen en dos grupos desde la perspectiva de entrada y salida:
-
Los búferes compartidos son un conjunto de memoria global que el conmutador asigna dinámicamente a los puertos según sea necesario, de modo que los búferes se compartan entre los puertos del conmutador.
-
Los búferes dedicados son un conjunto de memoria dividido en partes iguales entre los puertos del conmutador. Cada puerto recibe una cantidad mínima garantizada de espacio de búfer, dedicado a cada puerto, no compartido entre puertos.
El tráfico sin pérdidas es el tráfico en el que se habilita el control de flujo basado en prioridades (PFC) para garantizar un transporte sin pérdidas. El tráfico sin pérdida no hace referencia al tráfico de máximo esfuerzo en un vínculo habilitado para PAUSE de Ethernet (IEEE 802.3x).
El dispositivo reserva espacio de búfer no configurable para garantizar que los puertos y las colas reciban una asignación de memoria mínima. Puede configurar cómo el sistema utiliza el resto del espacio de búfer para optimizar la asignación para su mezcla de tráfico de red. Puede configurar el porcentaje de espacio de búfer disponible utilizado como espacio de búfer compartido frente al espacio de búfer dedicado. También puede configurar cómo se asigna el espacio de búfer compartido a los diferentes tipos de tráfico. Puede optimizar la configuración del búfer para el tráfico de la red.
La configuración predeterminada de clase de servicio proporciona dos clases de reenvío sin pérdida (fcoe y no-loss), una clase de reenvío de unidifusión de máximo esfuerzo, una clase de reenvío de tráfico de control de red y una clase de reenvío multidestino (error de multidifusión, difusión y búsqueda de destino).
Cada clase de reenvío predeterminada se asigna a una cola de salida predeterminada diferente. La configuración predeterminada asigna los búferes de manera que admita una cantidad moderada de tráfico sin pérdida y, al mismo tiempo, proporcione la capacidad de absorber ráfagas en la transmisión de tráfico de máximo esfuerzo.
Al cambiar la configuración del búfer, se cambian las capacidades de los búferes para absorber ráfagas de tráfico y manejar tráfico sin pérdidas. Por ejemplo, las redes con tráfico principalmente de máximo esfuerzo requieren asignar la mayor parte del espacio de búfer compartido a búferes de máximo esfuerzo. Esto proporciona búferes profundos y flexibles que pueden absorber ráfagas de tráfico con una pérdida mínima de paquetes, a expensas de la disponibilidad del búfer para el tráfico sin pérdidas.
Por el contrario, las redes con tráfico mayoritariamente sin pérdida requieren asignar la mayor parte del espacio de búfer compartido a búferes de margen sin pérdida. Esto evita la pérdida de paquetes en flujos sin pérdida a expensas de absorber el tráfico de máximo esfuerzo con ráfagas de manera eficiente.
Cambiar la configuración del búfer es un evento perturbador. El tráfico se detiene en todos los puertos hasta que se complete la reprogramación del búfer.
En este tema se describe la arquitectura y la configuración del búfer:
Grupos de búfer
Tanto desde la perspectiva de entrada como de salida, el búfer PFE se divide en dos grupos principales, un conjunto de búfer compartido y un conjunto de búfer dedicado que garantiza una asignación mínima a cada puerto. Puede configurar la cantidad de espacio de memoria asignada a cada una de las dos agrupaciones. Una parte del espacio de búfer se reserva para que siempre haya una cantidad mínima de espacio de búfer compartido y dedicado disponible para cada puerto.
-
Conjunto de búferes compartidos: un espacio de memoria global que todos los puertos del conmutador comparten dinámicamente, ya que necesitan búferes. El conjunto de búferes compartidos se divide aún más en búferes para los tipos de tráfico de unidifusión de máximo esfuerzo, multidestino de máximo esfuerzo (difusión, multidifusión y error de búsqueda de destino) y PFC (sin pérdida). Puede asignar espacio de memoria compartida global a particiones de memoria intermedia para admitir mejor diferentes mezclas de tráfico de red. Cuanto mayor sea el conjunto de búferes compartidos, mejor podrá absorber el conmutador las ráfagas de tráfico, ya que habrá más memoria compartida disponible para el tráfico.
-
Conjunto de búfer dedicado: un espacio de memoria global reservado asignado por igual a cada puerto. El conmutador reserva un conjunto de búfer dedicado mínimo que el usuario no puede configurar. Puede dividir la asignación de búfer dedicada para un puerto entre las colas de puertos por puerto y por cola. (Por ejemplo, esto le permite dedicar más espacio de memoria a las colas que transportan tráfico sin pérdida).
Un conjunto de búfer dedicado más grande significa una mayor cantidad de espacio de búfer dedicado para cada puerto, por lo que es menos probable que la congestión en un puerto afecte al tráfico en otro puerto, ya que el tráfico no necesita usar tanto espacio de búfer compartido. Sin embargo, cuanto mayor sea el conjunto de búfer dedicado, menos tráfico con ráfagas podrá manejar el conmutador, ya que hay menos memoria de búfer compartida dinámica.
Puede configurar la forma en que la parte no reservada disponible del espacio de búfer se asigna al conjunto de búfer compartido global y al conjunto de búfer compartido dedicado configurando los porcentajes de búfer compartido de entrada y salida.
De forma predeterminada, el 100 % del espacio de almacenamiento intermedio no reservado disponible se asigna a la agrupación de almacenamiento intermedio compartido. Si cambia el porcentaje de espacio asignado al búfer compartido, el espacio de búfer disponible que no se asigna al búfer compartido se asigna al búfer dedicado. Por ejemplo, si configura el conjunto de búfer compartido de entrada como 80 %, el 20 por ciento restante del espacio de búfer disponible se asigna al conjunto de búfer dedicado y se divide en partes iguales entre los puertos.
Cuando el 100 % de los búferes disponibles (configurables por el usuario) se asignan al conjunto de búferes compartidos, el conmutador aún reserva un conjunto de búfer dedicado mínimo.
Puede configurar por separado las asignaciones del conjunto de búferes compartidos de entrada y salida. También puede dividir el conjunto de búferes compartidos de entrada y salida para asignar porcentajes del conjunto de búferes compartidos a tipos específicos de tráfico. Si no usa la configuración predeterminada o una de las configuraciones recomendadas, preste especial atención a la configuración de entrada de los búferes de margen sin pérdida (estos búferes manejan la pausa de PFC durante períodos de congestión) y a la configuración de salida de los búferes de máximo esfuerzo para manejar la congestión de incast (múltiples fuentes sincronizadas que envían datos al mismo receptor en paralelo).
Además del conjunto de búferes compartidos y el conjunto de búfer dedicado, también hay un pequeño grupo de búferes de margen de entrada global que está reservado y no es configurable.
Cuando se produce una contención por el espacio de búfer, el conmutador utiliza un algoritmo interno para garantizar que los conjuntos de búfer se distribuyan de manera equitativa entre los flujos competidores. Cuando el tráfico de un flujo determinado supera la cantidad de búfer de puerto dedicado reservado para ese flujo, el flujo comienza a consumir memoria del conjunto de búfer compartido dinámico. Los flujos competidores compiten por la memoria intermedia compartida con otros flujos que también han agotado sus búferes dedicados. Cuando no hay congestión, no hay flujos que compitan.
- Manejo de búfer de flujos sin pérdida (PFC) versus Ethernet PAUSE
- Conjunto de búfer compartido y particiones
- Conjunto de búfer de puerto dedicado y asignación de búfer a colas
- Compensación entre espacio de búfer compartido y espacio de búfer dedicado
- Orden de consumo de búfer
Manejo de búfer de flujos sin pérdida (PFC) versus Ethernet PAUSE
Cuando hablamos de búferes sin pérdida en las siguientes secciones, nos referimos a búferes que manejan el tráfico en el que habilita PFC para garantizar el transporte sin pérdida. Los búferes sin pérdida no se utilizan para el tráfico de máximo esfuerzo en un vínculo en el que habilite la pausa de Ethernet (IEEE 802.3x). Los búferes compartidos de entrada y salida sin pérdida, y el búfer compartido con espacio máximo sin pérdida de entrada, solo se utilizan para el tráfico en el que se habilita PFC.
Para admitir flujos sin pérdida, debe configurar las capacidades de puente del centro de datos (PFC, DCBX y ETS) y las propiedades de programación adecuadas.
Conjunto de búfer compartido y particiones
El conjunto de búferes compartidos es un espacio de memoria global que todos los puertos del conmutador comparten dinámicamente, ya que necesitan búferes. El conmutador utiliza el conjunto de búfer compartido para absorber ráfagas de tráfico después de agotar el conjunto de búfer dedicado para un puerto.
Puede dividir el conjunto de búferes compartidos de entrada y el conjunto de búferes compartidos de salida en tres particiones para asignar porcentajes de cada conjunto de búferes a diferentes tipos de tráfico. Cuando particiona el conjunto de búferes compartidos de entrada o salida:
-
Si configura explícitamente una partición de búfer compartido de entrada, debe configurar explícitamente las tres particiones de búfer compartido de entrada. (Configure explícitamente las tres particiones de entrada o utilice la configuración predeterminada para las tres particiones de entrada).
Si configura explícitamente una partición de búfer compartido de salida, debe configurar explícitamente las tres particiones de búfer compartido de salida. (Configure explícitamente las tres particiones de salida o use la configuración predeterminada para las tres particiones de salida).
El conmutador devuelve un error de confirmación si no configura explícitamente las tres particiones al configurar las particiones de búfer compartido de entrada o salida.
-
Los porcentajes combinados de las tres particiones de búfer compartido de entrada deben sumar exactamente el 100 %.
Los porcentajes combinados de las tres particiones de búfer compartido de salida deben sumar exactamente el 100 %.
Cuando configura explícitamente particiones de búfer compartido de entrada o salida, el conmutador devuelve un error de confirmación si el porcentaje total de las tres particiones no es igual al 100 %.
-
Si particiona explícitamente un conjunto de búferes compartidos, no tiene que particionar explícitamente el otro conjunto de búferes compartidos. Por ejemplo, puede configurar explícitamente las particiones de búfer compartido de entrada y utilizar las particiones de búfer compartido de salida predeterminadas. Sin embargo, si cambia las particiones de búfer del conjunto de búferes de entrada para que coincidan con los tipos esperados de flujos de tráfico, probablemente también desee cambiar las particiones de búfer del conjunto de búferes de salida para que coincidan con esos flujos de tráfico.
Puede configurar el porcentaje de espacio de memoria intermedia no reservado disponible asignado a la agrupación de memoria intermedia compartida. El espacio que no asigne al conjunto de búfer compartido se agrega al conjunto de búfer dedicado y se divide en partes iguales entre los puertos. La configuración predeterminada asigna el 100 % del espacio del búfer de entrada y salida no reservado a los búferes compartidos.
La configuración de las particiones del grupo de búferes compartidos de entrada y salida le permite asignar más búferes a los tipos de tráfico que su red transporta predominantemente y menos búferes a otro tráfico.
Ingress Shared Buffer Pool Partitions
Puede configurar tres particiones de agrupación de búfer de entrada:
-
Búferes sin pérdida: conjunto de búferes compartidos para todo el tráfico de entrada sin pérdida. Se recomienda el 5 por ciento como valor mínimo para los búferes sin pérdida.
-
Búferes de espacio libre sin pérdidas: conjunto de búferes compartidos para los paquetes recibidos mientras se afirma una pausa. Si PFC está habilitado en prioridades en un puerto, cuando el puerto envía un mensaje de pausa al par conectado, el puerto utiliza los búferes de margen para almacenar los paquetes que llegan entre el momento en que el puerto envía el mensaje de pausa y el momento en que llega el último paquete después de que el par pausa el tráfico. El valor mínimo para los búferes de espacio libre sin pérdidas es 0 (cero) por ciento. (Los búferes de espacio libre sin pérdidas son los únicos búferes para los que el valor recomendado puede ser inferior al 5 por ciento).
-
Búferes con pérdidas: conjunto de búferes compartidos para todo el tráfico de entrada de máximo esfuerzo (tráfico de unidifusión, multidestino y prioridad estricta de máximo esfuerzo). Recomendamos el 5 por ciento como valor mínimo para los búferes de mejor esfuerzo.
Los valores porcentuales combinados de las particiones de búfer de entrada sin pérdida, sin pérdida y de máximo esfuerzo deben sumar exactamente el 100 %. Si los porcentajes de búfer suman más del 100 por ciento o menos del 100 por ciento, el conmutador devuelve un error de confirmación. Si configura explícitamente una partición de búfer compartido de entrada, debe configurar explícitamente las tres particiones de búfer de entrada, incluso si la partición de búfer de espacio libre sin pérdida tiene un valor de 0 (cero) por ciento.
Egress Shared Buffer Pool Partitions
Puede configurar tres particiones de agrupación de búfer de salida:
-
Búferes sin pérdida: conjunto de búferes compartidos para todas las colas de salida sin pérdida. Se recomienda el 5 por ciento como valor mínimo para los búferes sin pérdida.
-
Búferes con pérdida: conjunto de búferes compartidos para todas las colas de salida de máximo esfuerzo (unidifusión de máximo esfuerzo y colas de prioridad estricta alta). Recomendamos el 5 por ciento como valor mínimo para los búferes de mejor esfuerzo.
-
Búferes de multidifusión: conjunto de búferes compartidos para todas las colas de salida de multidestino (error de multidifusión, difusión y búsqueda de destino). Se recomienda el 5 por ciento como valor mínimo para búferes de multidifusión.
Los valores porcentuales combinados de las particiones de búfer de salida sin pérdida, con pérdida y de multidifusión deben sumar exactamente el 100 %. Si los porcentajes de búfer suman más del 100 por ciento o menos del 100 por ciento, el conmutador devuelve un error de confirmación. Todas las particiones del búfer de salida deben configurarse explícitamente y deben tener un valor de al menos el 5 %. Si configura explícitamente una partición de búfer compartido de salida, debe configurar explícitamente las tres particiones de búfer de salida y cada partición debe tener un valor de al menos el 5 por ciento.
Conjunto de búfer de puerto dedicado y asignación de búfer a colas
El conjunto de búfer dedicado global es la memoria que se asigna de manera igual a cada puerto, por lo que cada puerto recibe una cantidad mínima garantizada de espacio de búfer. Los búferes dedicados no se comparten entre puertos. Cada puerto recibe una proporción igual del conjunto de búfer dedicado.
Cuando el tráfico entra y sale del conmutador, los puertos del conmutador utilizan sus búferes dedicados para almacenar paquetes. Si los búferes dedicados no son suficientes para manejar el tráfico, el conmutador utiliza búferes compartidos. La única manera de aumentar el conjunto de búferes dedicado es reducir el conjunto de búferes compartidos de su valor predeterminado del 100 por ciento de los búferes no reservados disponibles.
La cantidad de espacio de almacenamiento dedicado no es configurable por el usuario y depende del porcentaje de búferes no reservados disponibles asignados a los búferes compartidos. (El espacio de búfer dedicado es igual al mínimo de búferes de puerto reservados más el resto de los búferes no reservados disponibles que no están asignados al conjunto de búferes compartidos).
Si el 100 % de los búferes no reservados disponibles se asignan al conjunto de búferes compartidos, el conmutador sigue reservando un conjunto de búfer dedicado mínimo.
Cuanto mayor sea el conjunto de búfer compartido, mejor será la absorción de ráfagas entre los puertos. Cuanto mayor sea el conjunto de búfer dedicado, mayor será la cantidad de espacio de búfer dedicado para cada puerto. Cuanto mayor sea el espacio de búfer dedicado, menos probable es que la congestión en un puerto pueda afectar al tráfico en otro puerto, ya que el tráfico no necesita usar tanto espacio de búfer compartido.
Allocating Dedicated Port Buffers to Queues
Puede dividir la asignación de búfer dedicada para un puerto de salida entre las colas de puertos incluyendo la buffer-size instrucción en la configuración del programador. Esto le permite controlar la asignación de búfer dedicado del puerto de salida por puerto y por cola. (Por ejemplo, esto le permite dedicar más espacio de memoria a las colas que transportan tráfico sin pérdida o impedir que el puerto reserve memorias intermedias para las colas que no transportan tráfico). La asignación de búfer de puerto dedicado de salida es una estructura jerárquica que asigna un conjunto de búfer dedicado global de manera uniforme entre los puertos y, luego, divide la asignación de cada puerto entre las colas de puertos.
De forma predeterminada, los puertos dividen su asignación de búferes dedicados entre sus colas de salida en la misma proporción en que el programador predeterminado establece las velocidades de transmisión mínimas garantizadas (la opción) para el transmit-rate tráfico. Solo las colas incluidas en el programador predeterminado reciben ancho de banda y búferes dedicados, en las proporciones que se muestran en la Tabla 2:
| Clase de envío |
Cola |
Ancho de banda mínimo garantizado ( |
Proporción de búferes de puertos dedicados reservados |
|---|---|---|---|
| Mejor esfuerzo |
0 |
5% |
5% |
| FCoE |
3 |
35% |
35% |
| Sin pérdidas |
4 |
35% |
35% |
| control de red |
7 |
5% |
5% |
| mcast |
8 |
20% |
20% |
En la configuración predeterminada, ninguna cola de salida que no sean las que se muestran en la tabla 2 recibe una asignación de búferes de puerto dedicados.
El conmutador utiliza la programación jerárquica para controlar la asignación de ancho de banda de puertos y colas, tal y como se describe en Descripción de la programación jerárquica de puertos de CoS (ETS) y se muestra en Ejemplo: Configuración de la programación de puertos jerárquicos de CoS (ETS). Para la configuración del tamaño del búfer de cola de salida, cuando se adjunta un perfil de control de tráfico (incluye la información del programador de colas) a un puerto, los búferes de salida dedicados en el puerto se dividen entre las colas según lo configurado en el programador.
Si no desea utilizar la asignación predeterminada de búferes de puertos dedicados a las colas, utilice la buffer-size opción del programador que está conectado al puerto para configurar la asignación de colas. Puede configurar la asignación de búfer dedicado a las colas de dos maneras:
-
Como porcentaje: la cola recibe el porcentaje especificado de búferes de puertos dedicados cuando la cola se asigna al programador y el programador está conectado a un puerto.
-
Como resto: después de que el puerto atienda las colas que tienen una configuración explícita de tamaño de búfer de porcentaje, el espacio de búfer de puerto dedicado restante se divide en partes iguales entre las otras colas a las que está conectado un programador. (Si no hay un programador predeterminado o explícito para una cola, no hay asignación de búfer dedicada para esa cola). Si configura un programador y no especifica un tamaño de búfer como porcentaje, resto es la configuración predeterminada.
El total de todos los porcentajes de tamaño de búfer configurados explícitamente para todas las colas de un puerto no puede superar el 100 %.
Configuring Dedicated Port Buffer Allocation to Queues
En una configuración de puerto que incluye varios conjuntos de clases de reenvío, con varias clases de reenvío asignadas a varios programadores, la asignación de búferes dedicados de puerto a las colas depende de la combinación de colas con tamaños de búfer configurados como porcentajes explícitos y colas configuradas con (o predeterminadas para) la remainder opción.
La mejor manera de demostrar cómo el uso de las opciones de porcentaje y resto afecta a la asignación de búfer de puerto dedicado a las colas es mostrar un ejemplo de asignación de búfer de cola y, a continuación, mostrar cómo cambia la asignación de búfer de cola cuando se agrega otra clase de reenvío (cola) al puerto.
En la tabla 3 se muestra una configuración inicial que incluye cuatro conjuntos de clases de reenvío, las cinco clases de reenvío predeterminadas (asignadas a las cinco colas predeterminadas para esas clases de reenvío), la buffer-size configuración de opciones y la asignación de búfer resultante para cada cola. La tabla 4 muestra la misma configuración después de agregar otra clase de reenvío (best-effort-2, asignada a la cola 1) al conjunto de clases de reenvío de mejor esfuerzo. La comparación de las asignaciones de búfer en cada tabla muestra cómo la adición de otra cola afecta a la asignación de búfer cuando se utilizan restos y porcentajes explícitos para configurar la asignación de búfer para diferentes colas.
| Conjunto de clases de reenvío (grupo de prioridad) |
Clase de envío |
Cola |
Configuración del tamaño de búfer del programador |
Asignación de búfer por cola (porcentaje) |
|---|---|---|---|---|
| fc-set-be |
Mejor esfuerzo |
0 |
10% |
10% |
| fc-set-sin pérdida |
FCoE |
3 |
20% |
20% |
| Sin pérdidas |
4 |
40% |
40% |
|
| fc-set-strict-high |
control de red |
7 |
resto |
15% |
| fc-set-mcast |
mcast |
8 |
resto |
15% |
En este primer ejemplo, el 70 % del conjunto de búferes dedicados del puerto de salida se asigna explícitamente a las colas de máximo esfuerzo, FCoE y sin pérdidas. El 30 por ciento restante del conjunto de búferes dedicados del puerto se divide entre las dos colas que usan la opción (network-control y mcast), por lo que cada cola recibe el remainder 15 por ciento del conjunto de búferes dedicados.
Ahora agregamos otra clase de reenvío (cola) al grupo de prioridad de máximo esfuerzo (fc-set-be) y la configuramos con un tamaño de búfer de resto en lugar de configurar un porcentaje específico. Dado que una tercera cola ahora comparte los búferes dedicados restantes, las colas que comparten el resto reciben menos búferes dedicados, como se muestra en la Tabla 4. Las colas con porcentajes configurados explícitamente reciben el porcentaje configurado de búferes dedicados.
| Grupo prioritario (fc-set) |
Clase de envío |
Cola |
Configuración del tamaño de búfer del programador |
Asignación de búfer por cola (porcentaje) |
|---|---|---|---|---|
| fc-set-be |
Mejor esfuerzo |
0 |
10% |
10% |
| mejor-esfuerzo-2 |
1 |
resto |
10% |
|
| fc-set-sin pérdida |
FCoE |
3 |
20% |
20% |
| Sin pérdidas |
4 |
40% |
40% |
|
| fc-set-strict-high |
control de red |
7 |
resto |
10% |
| fc-set-mcast |
mcast |
8 |
resto |
10% |
Las dos tablas muestran cómo el puerto divide el espacio de búfer dedicado que queda después de atender las colas que tienen un porcentaje explícitamente configurado de espacio de búfer dedicado.
Compensación entre espacio de búfer compartido y espacio de búfer dedicado
La compensación entre el espacio de búfer compartido y el espacio de búfer dedicado es:
-
Los búferes compartidos proporcionan una mejor absorción de las ráfagas de tráfico, ya que hay un conjunto más grande de búferes dinámicos que los puertos pueden usar según sea necesario para manejar las ráfagas. Sin embargo, todos los flujos que agotan su espacio de búfer dedicado compiten por el conjunto de búfer compartido. Un conjunto de búfer compartido más grande significa un conjunto de búfer dedicado más pequeño y, por lo tanto, más competencia por el conjunto de búfer compartido porque más flujos agotan su asignación de búfer dedicada. Demasiado espacio de búfer compartido da como resultado que ningún flujo único reciba mucho espacio de búfer compartido, para mantener la equidad cuando muchos flujos compiten por ese espacio.
-
Los búferes dedicados proporcionan espacio de búfer garantizado para cada puerto. Cuanto mayor sea el conjunto de búfer dedicado, menos probable es que la congestión en un puerto afecte al tráfico en otro puerto, ya que el tráfico no necesita usar tanto espacio de búfer compartido. Sin embargo, menos espacio de búfer compartido significa menos capacidad para absorber dinámicamente las ráfagas de tráfico.
Para una absorción óptima de ráfagas, el conmutador necesita suficiente espacio de búfer dedicado para evitar la competencia persistente por el espacio de búfer compartido. Cuando menos flujos compiten por los búferes compartidos, los flujos que necesitan espacio de búfer compartido para absorber ráfagas reciben más del búfer compartido porque menos flujos agotan su espacio de búfer dedicado.
La configuración predeterminada y las configuraciones recomendadas para diferentes escenarios de tráfico asignan el 100 % del espacio de memoria configurable por el usuario al conjunto de búferes compartidos global, ya que la cantidad de espacio reservado para los búferes dedicados proporciona suficiente espacio para evitar la competencia persistente por los búferes compartidos dinámicos. Esto da como resultado menos flujos que compiten por los búferes compartidos, por lo que los flujos competidores reciben más espacio de búfer.
Orden de consumo de búfer
El conjunto de búfer total se divide en conjuntos de búfer compartidos de entrada y salida y grupos de búfer dedicados. Cuando el tráfico fluye a través del conmutador, el espacio de búfer se utiliza en un orden determinado que depende del tipo de tráfico.
En la entrada, el orden de consumo de búfer es:
-
Tráfico de unidifusión de máximo esfuerzo:
-
Búferes dedicados
-
Búferes compartidos
-
Margen de maniobra global (muy pequeño)
-
-
Tráfico de unidifusión sin pérdidas:
-
Búferes dedicados
-
Búferes compartidos
-
Búferes de headroom sin pérdidas
-
Margen de maniobra global (muy pequeño)
-
-
Tráfico multidestino:
-
Búferes dedicados
-
Búferes compartidos
-
Margen de maniobra global (muy pequeño)
-
En la salida, el orden de consumo de búfer es el mismo para el tráfico de máximo esfuerzo de unidifusión, unidifusión sin pérdidas y multidestino:
-
Búferes dedicados
-
Búferes compartidos
En todos los casos, en todos los puertos, el conmutador utiliza primero el conjunto de búfer dedicado y el conjunto de búfer compartido solo después de que se haya agotado el conjunto de búfer dedicado para el puerto o la cola. Esto reserva la cantidad máxima de espacio de búfer compartido dinámico para absorber ráfagas de tráfico.
Valores predeterminados del conjunto de búferes
Puede ver los valores predeterminados o configurados del conjunto de búferes de entrada y salida en unidades de KB mediante el show class-of-service shared-buffer comando operativo. Puede ver los valores configurados de la agrupación de búfer compartido en unidades porcentuales mediante el show configuration class-of-service shared-buffer comando operativo.
En esta sección, se proporcionan los valores predeterminados del búfer total, el búfer compartido y el búfer dedicado.
- Tamaño total del conjunto de búfer
- Valores predeterminados del conjunto de búferes compartidos
- Valores predeterminados del conjunto de búferes dedicados
Tamaño total del conjunto de búfer
El conjunto de búferes total es una memoria común que tiene una contabilidad de entrada y salida independiente, por lo que el conjunto de búferes completo está disponible tanto desde la perspectiva de entrada como de salida. El conjunto de búfer total consta del espacio de búfer dedicado y el espacio de búfer compartido. El tamaño del conjunto de búfer total no es configurable por el usuario, pero la asignación de espacio de búfer a los conjuntos de búferes dedicados y compartidos es configurable por el usuario.
Valores predeterminados del conjunto de búferes compartidos
Algunos conmutadores tienen un conjunto de búfer compartido más grande que otros. Sin embargo, la asignación de espacio de búfer compartido a los conjuntos de búfer de entrada y salida individuales es la misma en términos porcentuales, aunque los valores absolutos sean diferentes. Por ejemplo, el búfer de entrada sin pérdida predeterminado es el 9 % del espacio de búfer de entrada compartido total en todos los conmutadores, aunque el valor absoluto predeterminado del búfer de entrada sin pérdida difiera de un conmutador a otro.
Shared Ingress Buffer Default Values
En la tabla 5 , se muestran los valores predeterminados de asignación de búfer compartido de entrada como porcentajes para todos los conmutadores. Si cambia la asignación predeterminada de búfer compartido, configure el cambio como un porcentaje.
| Total compartido Búfer de entrada |
Búfer sin pérdidas |
Búfer de espacio libre sin pérdidas |
Búfer con pérdida |
|---|---|---|---|
| 100% |
9% |
45% |
46% |
Shared Egress Buffer Default Values
En la tabla 6 se muestran los valores predeterminados de asignación de búfer compartido de salida para todos los conmutadores como porcentajes.
| Total compartido Búfer de salida |
Búfer sin pérdidas |
Búfer con pérdida |
Búfer de multidifusión |
|---|---|---|---|
| 100% |
50% |
31% |
19% |
Valores predeterminados del conjunto de búferes dedicados
El sistema reserva conjuntos de búferes dedicados de entrada y salida que se dividen en partes iguales entre los puertos del conmutador. De forma predeterminada, el sistema asigna el 100 % del espacio de memoria intermedia no reservado disponible a la agrupación de memorias intermedias compartidas. Si reduce el porcentaje de espacio de almacenamiento intermedio no reservado disponible asignado a la agrupación de almacenamiento intermedio compartido, el espacio de almacenamiento intermedio no reservado restante se agrega a la asignación de agrupación de almacenamiento intermedio dedicada. La cantidad de espacio de agrupación de búfer dedicado se configura reduciendo (o aumentando) el porcentaje de espacio de búfer asignado a la agrupación de búfer compartido. No se configura directamente la asignación de agrupación de búfer dedicada.
En la tabla 7 se muestran los valores predeterminados del conjunto de búferes dedicados de entrada y salida en unidades de KB para conmutadores QFX5210, QFX5200, QFX5110, QFX5100, EX4600.
| Tipo de búfer dedicado |
QFX5210 |
QFX5200-48Y |
QFX5110, QFX5200-32C |
QFX5100, EX4600 |
|---|---|---|---|---|
| Entrada |
14040 |
3373.50 |
4860.38 |
2912.81 |
| Salida |
15184 |
3412.50 |
5408 |
3744 |
Recomendaciones de configuración de búfer compartido para diferentes escenarios de tráfico de red
La forma en que configure el conjunto de búfer compartido depende de la combinación de tráfico en su red. En esta sección, se proporcionan recomendaciones de configuración de búfer compartido para cinco escenarios básicos de tráfico de red:
-
Tráfico equilibrado: la red ofrece una mezcla equilibrada de tráfico de unidifusión de máximo esfuerzo, sin pérdida y de multidifusión. (Esta es la configuración predeterminada.)
-
Tráfico de unidifusión de máximo esfuerzo: la red transporta principalmente tráfico de máximo esfuerzo de unidifusión.
-
Tráfico de máximo esfuerzo con la pausa de Ethernet (IEEE 802.3X) habilitada: la red transporta principalmente el tráfico de máximo esfuerzo con la pausa de Ethernet habilitada en los vínculos.
-
Tráfico de multidifusión de máximo esfuerzo: la red transporta principalmente tráfico de máximo esfuerzo de multidifusión.
-
Tráfico sin pérdida: la red transporta principalmente tráfico sin pérdida (tráfico en el que PFC está habilitado).
El tráfico sin pérdida se define como el tráfico en el que se habilita PFC para garantizar un transporte sin pérdida. El tráfico sin pérdida no hace referencia al tráfico de máximo esfuerzo en un vínculo en el que se habilite la pausa de Ethernet. Comience con los perfiles recomendados para cada escenario de tráfico de red y ajústelos si es necesario para las condiciones de tráfico de su red.
Cambiar la configuración del búfer es un evento perturbador. El tráfico se detiene en todos los puertos hasta que se complete la reprogramación del búfer. Esto incluye cambiar la configuración predeterminada a una de las configuraciones recomendadas.
Dado que las asignaciones de búfer se configuran en porcentajes, las asignaciones recomendadas para cada escenario de tráfico de red son válidas para todos los conmutadores de la serie QFX y los conmutadores EX4600. Utilice una de las siguientes configuraciones de búfer compartido recomendadas para las condiciones de tráfico de red. Comience con una configuración recomendada y, a continuación, realice pequeños ajustes en las asignaciones de búfer para ajustarlos con precisión si es necesario, como se describe en Optimizar la configuración de búfer.
- Tráfico equilibrado (configuración predeterminada)
- Tráfico de unidifusión de máximo esfuerzo
- Tráfico de pausa de Ethernet
- Tráfico de multidifusión (multidestino) de máximo esfuerzo
- Tráfico sin pérdidas
Tráfico equilibrado (configuración predeterminada)
La configuración predeterminada de búfer compartido está optimizada para redes que transportan una mezcla equilibrada de tráfico de unidifusión, sin pérdida y multidestino (multidifusión, difusión y búsqueda de destino fallida). La configuración predeterminada de clase de servicio (CoS) también está optimizada para redes que transportan una mezcla equilibrada de tráfico.
Recomendamos que utilice la configuración predeterminada de búfer compartido para redes que transportan una mezcla equilibrada de tráfico, especialmente si utiliza la configuración predeterminada de CoS. En la tabla 8 se muestran las asignaciones predeterminadas de búfer compartido de entrada:
| Total compartido Búfer de entrada |
Búfer sin pérdidas |
Búfer de espacio libre sin pérdidas |
Búfer con pérdida |
|---|---|---|---|
| 100% |
9% |
45% |
46% |
En la tabla 9 se muestran las asignaciones de búfer compartido de salida predeterminadas:
| Total compartido Búfer de salida |
Búfer sin pérdidas |
Búfer con pérdida |
Búfer de multidifusión |
|---|---|---|---|
| 100% |
50% |
31% |
19% |
Tráfico de unidifusión de máximo esfuerzo
Si su red transporta principalmente tráfico de unidifusión de máximo esfuerzo (con pérdidas), la configuración predeterminada de búfer compartido asigna demasiado espacio de búfer para admitir el transporte sin pérdida. En lugar de desperdiciar esos búferes, se recomienda usar la siguiente configuración del búfer compartido de entrada (consulte la tabla 10) y la configuración del búfer compartido de salida (consulte la tabla 11):
| Total compartido Búfer de entrada |
Búfer sin pérdidas |
Búfer de espacio libre sin pérdidas |
Búfer con pérdida |
|---|---|---|---|
| 100% |
5% |
0% |
95% |
| Total compartido Búfer de salida |
Búfer sin pérdidas |
Búfer con pérdida |
Búfer de multidifusión |
|---|---|---|---|
| 100% |
5% |
75% |
20% |
Consulte Ejemplo: Configuración recomendada del conjunto de búferes compartidos para redes con tráfico de unidifusión de máximo esfuerzo para ver un ejemplo en el que se muestra cómo configurar los ajustes de búfer recomendados que se muestran en las tablas 10 y 11.
Tráfico de pausa de Ethernet
Si su red transporta principalmente tráfico de máximo esfuerzo (con pérdidas) y habilita la pausa de Ethernet en los vínculos, entonces la configuración predeterminada del búfer compartido asigna demasiado espacio de búfer al búfer de entrada compartido (el tráfico de pausa de Ethernet usa los búferes dedicados en lugar de los búferes compartidos) y no suficiente espacio para los búferes de margen sin pérdida. Le recomendamos que use la siguiente configuración del búfer compartido de entrada (consulte la tabla 12) y la configuración del búfer compartido de salida (consulte la tabla 13):
| Total compartido Búfer de entrada |
Búfer sin pérdidas |
Búfer de espacio libre sin pérdidas |
Búfer con pérdida |
|---|---|---|---|
| 70% |
5% |
80% |
15% |
| Total compartido Búfer de salida |
Búfer sin pérdidas |
Búfer con pérdida |
Búfer de multidifusión |
|---|---|---|---|
| 100% |
5% |
75% |
20% |
Consulte Ejemplo: Configuración recomendada del conjunto de búfer compartido para redes con tráfico mayoritariamente de máximo esfuerzo en vínculos con pausa de Ethernet habilitada para ver un ejemplo en el que se muestra cómo configurar los ajustes de búfer recomendados que se muestran en las tablas 10 y 11.
Tráfico de multidifusión (multidestino) de máximo esfuerzo
Si su red transporta principalmente tráfico de multidifusión de máximo esfuerzo (con pérdidas), entonces la configuración predeterminada de búfer compartido asigna demasiado espacio de búfer para admitir el transporte sin pérdida. En lugar de desperdiciar esos búferes, se recomienda usar la siguiente configuración del búfer compartido de entrada (consulte la tabla 14) y la configuración del búfer compartido de salida (consulte la tabla 15):
| Total compartido Búfer de entrada |
Búfer sin pérdidas |
Búfer de espacio libre sin pérdidas |
Búfer con pérdida |
|---|---|---|---|
| 100% |
5% |
0% |
95% |
| Total compartido Búfer de salida |
Búfer sin pérdidas |
Búfer con pérdida |
Búfer de multidifusión |
|---|---|---|---|
| 100% |
5% |
20% |
75% |
Consulte Ejemplo: Configuración recomendada del conjunto de búfer compartido para redes con tráfico mayoritariamente de multidifusión para ver un ejemplo que muestra cómo configurar los ajustes de búfer recomendados que se muestran en la Tabla 14 y la Tabla 15.
Tráfico sin pérdidas
Si su red transporta principalmente tráfico sin pérdida, entonces la configuración predeterminada de búfer compartido asigna demasiado espacio de búfer para admitir el tráfico de máximo esfuerzo. En lugar de desperdiciar esos búferes, se recomienda usar la siguiente configuración del búfer compartido de entrada (consulte la tabla 16) y la configuración del búfer compartido de salida (consulte la tabla 17):
| Total compartido Búfer de entrada |
Búfer sin pérdidas |
Búfer de espacio libre sin pérdidas |
Búfer con pérdida |
|---|---|---|---|
| 100% |
15% |
80% |
5% |
| Total compartido Búfer de salida |
Búfer sin pérdidas |
Búfer con pérdida |
Búfer de multidifusión |
|---|---|---|---|
| 100% |
90% |
5% |
5% |
Consulte Ejemplo: Configuración recomendada del conjunto de búfer compartido para redes con tráfico mayoritariamente sin pérdida para ver un ejemplo que muestra cómo configurar los ajustes de búfer recomendados que se muestran en la Tabla 16 y la Tabla 17.
Optimizar la configuración del búfer
A partir de la configuración predeterminada o de una configuración de búfer recomendada, puede optimizar aún más la asignación de búfer para admitir mejor la combinación de tráfico en su red. Ajuste la configuración gradualmente para ajustar la asignación de búfer compartido. Tenga cuidado al ajustar la configuración del búfer compartido, no solo al ajustar las particiones del búfer de entrada y salida, sino también al ajustar el porcentaje total de búfer compartido de entrada y salida. (Recuerde que si asigna menos del 100 por ciento de los búferes disponibles a los búferes compartidos, los búferes restantes se agregan a los búferes dedicados). Ajustar los búferes incorrectamente puede causar problemas, como la congestión del puerto de entrada.
Cambiar la configuración del búfer es un evento perturbador. El tráfico se detiene en todos los puertos hasta que se complete la reprogramación del búfer.
La relación entre los tamaños del conjunto de búferes de entrada y el conjunto de búferes de salida afecta a cuándo y dónde se descartan los paquetes. Los tamaños del conjunto de búferes incluyen los búferes compartidos y los búferes dedicados. En general, si hay más búferes de entrada que búferes de salida, el conmutador puede experimentar congestión del puerto de entrada porque las colas de salida se llenan antes de que las colas de entrada puedan vaciarse.
Utilice el show class-of-service shared-buffer comando operativo para ver los tamaños en kilobytes (KB) de los búferes dedicados y compartidos y de las particiones de búfer compartidos.
Para el tráfico de máximo esfuerzo (unidifusión y multidestino), la partición de búfer compartido con pérdida de entrada combinada y los búferes dedicados de entrada deben ser menores que las particiones de búfer compartido con pérdida de multidifusión y salida combinadas más los búferes dedicados de salida. Esto evita la congestión de los puertos de entrada garantizando que los búferes de mejor esfuerzo de salida sean más profundos que los búferes de mejor esfuerzo de entrada y garantiza que, si se descartan paquetes, se descarten en las colas de salida. (La caída de paquetes en la entrada impide que los programadores de salida funcionen correctamente).
Para el tráfico sin pérdida (tráfico en el que se habilita PFC), la partición combinada del búfer compartido de entrada sin pérdida y una parte razonable de la partición del búfer de margen de entrada, más los búferes dedicados, deben ser inferiores al total de la partición del búfer compartido de salida sin pérdida y los búferes dedicados. (Una parte razonable del búfer de margen de entrada es aproximadamente del 20 al 25 por ciento del espacio de búfer, pero esto varía según la cantidad de espacio libre de búfer que se requiera para admitir el tráfico sin pérdida). Cuando se cumplen estas condiciones, si hay congestión del puerto de entrada, la congestión del puerto de entrada activa PFC en el puerto de entrada para evitar la pérdida de paquetes. Si el total de búferes de entrada sin pérdida supera el total de búferes de salida sin pérdida, es posible que los paquetes se descarten en la salida en lugar de aplicar PFC en la entrada para evitar la pérdida de paquetes.
Si confirma una configuración de búfer para la cual el conmutador no tiene recursos suficientes, es posible que el conmutador registre un error en lugar de devolver un error de confirmación. En ese caso, se muestra un mensaje syslog en la consola. Por ejemplo:
user@host# commit configuration check succeeds Message from syslogd@host at Jun 13 11:11:10 ... host dc-pfe: Not enough Ingress Lossless headroom.(Already allocated more). Dedicated : 14340 Lossy : 47100 Lossless 4239 Headroom 21195 Avail : 20781 commit complete
Si la configuración del búfer se confirma, pero recibe un mensaje syslog que indica que no se puede implementar dicha configuración, puede hacer lo siguiente:
-
Vuelva a configurar los búferes o vuelva a configurar otros parámetros (por ejemplo, la configuración PFC, que afecta a la necesidad de búferes de espacio libre sin pérdida y búferes sin pérdida; cuantas más prioridades pause, más espacio de búfer de espacio libre sin pérdida y sin pérdida necesitará) y, a continuación, vuelva a intentar la operación de confirmación.
-
Revierta el conmutador a la última configuración correcta.
Si recibe un mensaje syslog que indica que no se puede implementar la configuración del búfer, debe tomar medidas correctivas. Si no corrige la configuración o revierte a una configuración anterior correcta, el comportamiento del sistema será impredecible.
Reglas y consideraciones generales de configuración de búfer
Tenga en cuenta las siguientes reglas y consideraciones al configurar los búferes:
-
Cambiar la configuración del búfer es un evento perturbador. El tráfico se detiene en todos los puertos hasta que se complete la reprogramación del búfer.
-
Si configura los porcentajes de búfer compartido de entrada o salida como inferiores al 100 %, el porcentaje restante de espacio de búfer se agrega al conjunto de búfer dedicado.
-
La suma de todas las particiones de búfer compartido de entrada debe ser igual al 100 %. Cada partición debe configurarse con un valor de al menos el 5 por ciento, excepto el búfer de espacio libre sin pérdida, que puede tener un valor del 0 por ciento.
-
La suma de todas las particiones de búfer compartido de salida debe ser del 100 %. Cada partición debe configurarse con un valor de al menos el 5 por ciento.
-
Los búferes compartidos sin pérdida y con sin pérdida espacio libre sirven al tráfico en el que habilita PFC y no sirven al tráfico sujeto a pausa de Ethernet.
-
El conmutador utiliza primero el conjunto de búferes dedicado y el conjunto de búferes compartidos solo después de agotar el conjunto de búferes dedicado para un puerto o cola.
-
Muy poco espacio de búfer dedicado da como resultado demasiada competencia por el espacio de búfer compartido.
-
Demasiado espacio de búfer dedicado da como resultado una absorción de ráfagas más pobre porque hay menos espacio de búfer compartido disponible.
-
Compruebe siempre los mensajes syslog después de confirmar una nueva configuración de búfer.
-
La configuración óptima de búfer para su red depende de los tipos de tráfico en la red. Si su red transporta menos tráfico de un tipo determinado (por ejemplo, tráfico sin pérdida), puede reducir el tamaño de los búferes asignados a ese tipo de tráfico (por ejemplo, puede reducir los tamaños de los búferes de sin pérdida y sin pérdida margen de maniobra).
Comportamiento del búfer específico de la plataforma
Utilice la siguiente tabla para revisar los comportamientos específicos de la plataforma para sus plataformas.
| Plataforma |
Diferencia |
|---|---|
| Serie QFX5000 |
|
| Serie QFX10000 |
|
| Chasis virtual QFX y chasis virtual EX4600/EX4650 |
|