Entender a configuração do buffer de CoS
O Junos usa memória de buffer de pacotes comum a todo o PFE para armazenar pacotes em filas de interface. Essa memória de buffer compartilhada tem contabilidade de entrada e saída separada para tomar decisões de aceitação, descarte ou pausa. Como o switch tem um único pool de memória com contabilidade de entrada e saída separada, a quantidade total de memória do buffer está disponível da perspectiva de entrada e saída. Os pacotes são contabilizados à medida que entram e saem do dispositivo, mas não há o conceito de um pacote chegando a um buffer de entrada e depois sendo movido para um buffer de saída. As quantidades específicas de memória de buffer comum para switches individuais estão listadas na Tabela 1.
| Interruptor |
Memória de buffer de pacote comum |
|---|---|
| QFX5100, EX4600 |
12MB |
| QFX5110, QFX5200-32C |
16 MB |
| QFX5200-48Y |
22MB |
| QFX5120 |
32 MB |
| QFX5130 |
132 MB |
| QFX5210 |
42MB |
| QFX5220 |
64 MB |
| QFX5230 |
112 MB |
| QFX5240 |
165 MB |
| QFX5700 |
132 MB |
Os buffers são divididos em dois pools de uma perspectiva de entrada e saída:
-
Os buffers compartilhados são um pool de memória global que o switch aloca dinamicamente às portas conforme necessário, de modo que os buffers são compartilhados entre as portas do switch.
-
Os buffers dedicados são um pool de memória dividido igualmente entre as portas do switch. Cada porta recebe uma quantidade mínima garantida de espaço de buffer, dedicado a cada porta, não compartilhado entre as portas.
O tráfego sem perdas é o tráfego no qual você habilita o controle de fluxo baseado em prioridade (PFC) para garantir um transporte sem perdas. O tráfego sem perdas não se refere ao tráfego de melhor esforço em um link habilitado para Ethernet PAUSE (IEEE 802.3x).
O dispositivo reserva espaço de buffer não configurável para garantir que as portas e filas recebam uma alocação mínima de memória. Você pode configurar como o sistema usa o restante do espaço de buffer para otimizar a alocação para sua combinação de tráfego de rede. Você pode configurar a porcentagem de espaço de buffer disponível usado como espaço de buffer compartilhado versus espaço de buffer dedicado. Você também pode configurar como o espaço de buffer compartilhado é alocado para diferentes tipos de tráfego. Você pode otimizar as configurações de buffer para o tráfego em sua rede.
A configuração padrão de classe de serviço fornece duas classes de encaminhamento sem perdas (fcoe e no-loss), uma classe de encaminhamento unicast de melhor esforço, uma classe de encaminhamento de tráfego de controle de rede e uma classe de encaminhamento multidestino (falha de pesquisa de multicast, broadcast e destino).
Cada classe de encaminhamento padrão é mapeada para uma fila de saída padrão diferente. A configuração padrão aloca os buffers de uma maneira que suporta uma quantidade moderada de tráfego sem perdas, enquanto ainda fornece a capacidade de absorver explosões na transmissão de tráfego de melhor esforço.
Alterar as configurações de buffer altera as habilidades dos buffers de absorver explosões de tráfego e lidar com tráfego sem perdas. Por exemplo, redes com tráfego de melhor esforço exigem a alocação da maior parte do espaço de buffer compartilhado para buffers de melhor esforço. Isso fornece buffers profundos e flexíveis que podem absorver explosões de tráfego com perda mínima de pacotes, às custas da disponibilidade de buffer para tráfego sem perdas.
Por outro lado, as redes com tráfego sem perdas exigem a alocação da maior parte do espaço de buffer compartilhado para buffers de headroom sem perdas. Isso evita a perda de pacotes em fluxos sem perdas às custas da absorção eficiente do tráfego de melhor esforço e intermitência.
Alterar a configuração do buffer é um evento disruptivo. O tráfego é interrompido em todas as portas até que a reprogramação do buffer seja concluída.
Este tópico descreve a arquitetura e as configurações do buffer:
Buffer Pools
De uma perspectiva de entrada e saída, o buffer PFE é dividido em dois pools principais, um buffer pool compartilhado e um buffer pool dedicado que garante uma alocação mínima para cada porta. Você pode configurar a quantidade de espaço de buffer alocado para cada um dos dois pools. Uma parte do espaço do buffer é reservada para que sempre haja uma quantidade mínima de espaço de buffer compartilhado e dedicado disponível para cada porta.
-
Buffer pool compartilhado — um espaço de memória global que todas as portas do switch compartilham dinamicamente, pois precisam de buffers. O pool de buffers compartilhado é particionado em buffers para os tipos de tráfego unicast de melhor esforço, multidestino de melhor esforço (falha na pesquisa de broadcast, multicast e destino) e PFC (sem perdas). Você pode alocar espaço de memória compartilhada global para armazenar partições em buffer para oferecer melhor suporte a diferentes combinações de tráfego de rede. Quanto maior o pool de buffer compartilhado, melhor o switch pode absorver explosões de tráfego, pois mais memória compartilhada está disponível para o tráfego.
-
Buffer pool dedicado — um espaço de memória global reservado alocado igualmente para cada porta. O switch reserva um buffer pool dedicado mínimo que não é configurável pelo usuário. Você pode dividir a alocação de buffer dedicado para uma porta entre as filas de portas por porta, por fila. (Por exemplo, isso permite que você dedique mais espaço de buffer a filas que transportam tráfego sem perdas.)
Um buffer pool dedicado maior significa uma quantidade maior de espaço de buffer dedicado para cada porta, portanto, é menos provável que o congestionamento em uma porta afete o tráfego em outra porta porque o tráfego não precisa usar tanto espaço de buffer compartilhado. No entanto, quanto maior o pool de buffer dedicado, menos tráfego intermitente o switch pode manipular, pois há menos memória de buffer compartilhada dinâmica.
Você pode configurar a maneira como a parte não reservada disponível do espaço de buffer é alocada para o buffer pool compartilhado global e para o buffer pool compartilhado dedicado configurando as porcentagens de buffer compartilhado de entrada e saída.
Por padrão, 100% do espaço de buffer não reservado disponível é alocado para o pool de buffer compartilhado. Se você alterar a porcentagem de espaço alocado para o buffer compartilhado, o espaço de buffer disponível que não está alocado para o buffer compartilhado será alocado para o buffer dedicado. Por exemplo, se você configurar o buffer pool compartilhado de entrada como 80%, os 20% restantes do espaço de buffer disponível serão alocados para o buffer pool dedicado e divididos igualmente entre as portas.
Quando 100% dos buffers disponíveis (configuráveis pelo usuário) são alocados para o pool de buffers compartilhado, o switch ainda reserva um buffer pool dedicado mínimo.
Você pode configurar separadamente as alocações de buffer pool compartilhado de entrada e saída. Também é possível particionar o buffer pool compartilhado de entrada e saída para alocar porcentagens do buffer pool compartilhado para tipos específicos de tráfego. Se você não usar a configuração padrão ou uma das configurações recomendadas, preste atenção especial à configuração de entrada dos buffers de headroom sem perdas (esses buffers lidam com a pausa do PFC durante períodos de congestionamento) e à configuração de saída dos buffers de melhor esforço para lidar com o congestionamento incast (várias fontes sincronizadas enviando dados para o mesmo receptor em paralelo).
Além do buffer pool compartilhado e do buffer pool dedicado, há também um pequeno pool de buffer de headroom global de entrada que é reservado e não é configurável.
Quando ocorre a contenção por espaço de buffer, o switch usa um algoritmo interno para garantir que os buffer pools sejam distribuídos de forma justa entre fluxos concorrentes. Quando o tráfego de um determinado fluxo excede a quantidade de buffer de porta dedicada reservado para esse fluxo, o fluxo começa a consumir memória do pool de buffers compartilhado dinâmico. Os fluxos concorrentes competem pela memória de buffer compartilhada com outros fluxos que também esgotaram seus buffers dedicados. Quando não há congestionamento, não há fluxos concorrentes.
- Tratamento de buffer de fluxos sem perdas (PFC) versus Ethernet PAUSA
- Pool de buffers e partições compartilhadas
- Pool de buffer de porta dedicada e alocação de buffer para filas
- Trade-off entre espaço de buffer compartilhado e espaço de buffer dedicado
- Ordem de consumo de buffer
Tratamento de buffer de fluxos sem perdas (PFC) versus Ethernet PAUSA
Quando discutimos buffers sem perdas nas seções a seguir, queremos dizer buffers que lidam com o tráfego no qual você habilita o PFC para garantir o transporte sem perdas. Os buffers sem perdas não são usados para tráfego de melhor esforço em um link no qual você habilita o Ethernet PAUSE (IEEE 802.3x). Os buffers compartilhados de entrada e saída sem perdas e o buffer compartilhado de headroom sem perdas de entrada são usados apenas para o tráfego no qual você habilita o PFC.
Para oferecer suporte a fluxos sem perdas, você deve configurar os recursos apropriados de ponte de data center (PFC, DCBX e ETS) e propriedades de agendamento.
Pool de buffers e partições compartilhadas
O buffer pool compartilhado é um espaço de memória global que todas as portas do switch compartilham dinamicamente, pois precisam de buffers. O switch usa o pool de buffer compartilhado para absorver explosões de tráfego após o buffer pool dedicado para uma porta ser esgotado.
É possível dividir o buffer pool compartilhado de entrada e o buffer pool compartilhado de saída em três partições para alocar porcentagens de cada buffer pool para diferentes tipos de tráfego. Quando você particiona o buffer pool compartilhado de entrada ou saída:
-
Se você configurar explicitamente uma partição de buffer compartilhado de entrada, deverá configurar explicitamente todas as três partições de buffer compartilhado de entrada. (Você configura explicitamente todas as três partições de entrada ou usa a configuração padrão para todas as três partições de entrada.)
Se você configurar explicitamente uma partição de buffer compartilhado de saída, deverá configurar explicitamente todas as três partições de buffer compartilhado de saída. (Você configura explicitamente todas as três partições de saída ou usa a configuração padrão para todas as três partições de saída.)
A opção retornará um erro de confirmação se você não configurar explicitamente todas as três partições ao configurar as partições de buffer compartilhadas de entrada ou saída.
-
As porcentagens combinadas das três partições de buffer compartilhadas de entrada devem totalizar exatamente 100%.
As porcentagens combinadas das três partições de buffer compartilhadas de saída devem totalizar exatamente 100%.
Quando você configura explicitamente partições de buffer compartilhado de entrada ou saída, o switch retorna um erro de confirmação se a porcentagem total das três partições não for igual a 100%.
-
Se você particionar explicitamente um conjunto de buffers compartilhados, não precisará particionar explicitamente o outro conjunto de buffers compartilhados. Por exemplo, você pode configurar explicitamente as partições de buffer compartilhadas de entrada e usar as partições de buffer compartilhadas de saída padrão. No entanto, se você alterar as partições de buffer do pool de buffer de entrada para corresponder aos tipos esperados de fluxos de tráfego, provavelmente também desejará alterar as partições de buffer do pool de buffer de saída para corresponder a esses fluxos de tráfego.
Você pode configurar a porcentagem de espaço de buffer não reservado disponível alocado para o pool de buffer compartilhado. O espaço que você não aloca para o buffer pool compartilhado é incluído no buffer pool dedicado e dividido igualmente entre as portas. A configuração padrão aloca 100% do espaço de buffer de entrada e saída não reservado para os buffers compartilhados.
A configuração das partições do buffer pool compartilhado de entrada e saída permite alocar mais buffers para os tipos de tráfego que sua rede transporta predominantemente e menos buffers para outro tráfego.
Ingress Shared Buffer Pool Partitions
Você pode configurar três partições do pool de buffer de entrada:
-
Buffers sem perdas — pool de buffer compartilhado para todo o tráfego de entrada sem perdas. Recomendamos 5% como o valor mínimo para buffers sem perdas.
-
Buffers de headroom sem perdas — pool de buffer compartilhado para pacotes recebidos enquanto uma pausa é afirmada. Se o PFC estiver habilitado em prioridades em uma porta, quando a porta enviar uma mensagem de pausa para o peer conectado, a porta usará os buffers de headroom para armazenar os pacotes que chegam entre o momento em que a porta envia a mensagem de pausa e o momento em que o último pacote chega após o peer pausar o tráfego. O valor mínimo para buffers de headroom sem perdas é 0 (zero) por cento. (Os buffers de headroom sem perdas são os únicos buffers para os quais o valor recomendado pode ser inferior a 5%.)
-
Buffers com perdas — pool de buffer compartilhado para todo o tráfego de entrada de melhor esforço (tráfego unicast de melhor esforço, multidestino e tráfego de alta prioridade estrita). Recomendamos 5% como o valor mínimo para buffers de melhor esforço.
Os valores percentuais combinados das partições de buffer de entrada sem perdas, espaço livre sem perdas e de melhor esforço devem totalizar exatamente 100%. Se as porcentagens de buffer totalizarem mais de 100% ou menos de 100%, a opção retornará um erro de confirmação. Se você configurar explicitamente uma partição de buffer compartilhado de entrada, deverá configurar explicitamente todas as três partições de buffer de entrada, mesmo que a partição de buffer de headroom sem perdas tenha um valor de 0 (zero) por cento.
Egress Shared Buffer Pool Partitions
É possível configurar três partições do buffer pool de saída:
-
Buffers sem perdas — pool de buffers compartilhado para todas as filas de saída sem perdas. Recomendamos 5% como o valor mínimo para buffers sem perdas.
-
Buffers com perdas — pool de buffers compartilhado para todas as filas de saída de melhor esforço (unicast de melhor esforço e filas de prioridade estrita). Recomendamos 5% como o valor mínimo para buffers de melhor esforço.
-
Buffers multicast — Pool de buffers compartilhado para todas as filas de saída multidestino (falha de pesquisa de multicast, broadcast e destino). Recomendamos 5% como o valor mínimo para buffers multicast.
Os valores percentuais combinados das partições de buffer de saída sem perdas, com perdas e multicast devem totalizar exatamente 100%. Se as porcentagens de buffer totalizarem mais de 100% ou menos de 100%, a opção retornará um erro de confirmação. Todas as partições de buffer de saída devem ser configuradas explicitamente e devem ter um valor de pelo menos 5%. Se você configurar explicitamente uma partição de buffer compartilhado de saída, deverá configurar explicitamente todas as três partições de buffer de saída, e cada partição deverá ter um valor de pelo menos 5%.
Pool de buffer de porta dedicada e alocação de buffer para filas
O buffer pool dedicado global é a memória alocada igualmente para cada porta, de modo que cada porta recebe uma quantidade mínima garantida de espaço de buffer. Buffers dedicados não são compartilhados entre portas. Cada porta recebe uma proporção igual do buffer pool dedicado.
Quando o tráfego entra e sai do switch, as portas do switch usam seus buffers dedicados para armazenar pacotes. Se os buffers dedicados não forem suficientes para lidar com o tráfego, o switch usará buffers compartilhados. A única maneira de aumentar o buffer pool dedicado é diminuir o buffer pool compartilhado de seu valor padrão de 100% dos buffers não reservados disponíveis.
A quantidade de espaço de buffer dedicado não é configurável pelo usuário e depende da porcentagem de buffers não reservados disponíveis alocados para os buffers compartilhados. (O espaço de buffer dedicado é igual aos buffers de porta reservados mínimos mais o restante dos buffers não reservados disponíveis que não estão alocados para o buffer pool compartilhado.)
Se 100% dos buffers não reservados disponíveis forem alocados para o pool de buffers compartilhado, o switch ainda reserva um buffer pool dedicado mínimo.
Quanto maior o buffer pool compartilhado, melhor a absorção de intermitência nas portas. Quanto maior o pool de buffer dedicado, maior a quantidade de espaço de buffer dedicado para cada porta. Quanto maior o espaço de buffer dedicado, menor a probabilidade de que o congestionamento em uma porta possa afetar o tráfego em outra porta, porque o tráfego não precisa usar tanto espaço de buffer compartilhado.
Allocating Dedicated Port Buffers to Queues
Você pode dividir a alocação de buffer dedicado para uma porta de saída entre as filas de portas incluindo a buffer-size instrução na configuração do agendador. Isso permite que você controle a alocação de buffer dedicado da porta de saída por porta e por fila. (Por exemplo, isso permite que você dedique mais espaço de buffer a filas que transportam tráfego sem perdas ou pare que a porta reserve buffers para filas que não transportam tráfego.) A alocação de buffer de porta dedicada de saída é uma estrutura hierárquica que aloca um buffer pool dedicado global uniformemente entre as portas e, em seguida, divide a alocação de cada porta entre as filas de portas.
Por padrão, as portas dividem sua alocação de buffers dedicados entre suas filas de saída na mesma proporção em que o agendador padrão define as taxas de transmissão mínimas garantidas (a transmit-rate opção) para o tráfego. Somente as filas incluídas no agendador padrão recebem largura de banda e buffers dedicados, nas proporções mostradas na Tabela 2:
| Classe de encaminhamento |
Fila |
Largura de banda mínima garantida ( |
Proporção de buffers de porta dedicados reservados |
|---|---|---|---|
| melhor esforço |
0 |
5% |
5% |
| FCoE |
3 |
35% |
35% |
| sem perdas |
4 |
35% |
35% |
| controle de rede |
7 |
5% |
5% |
| mcast |
8 |
20% |
20% |
Na configuração padrão, nenhuma fila de saída além das mostradas na Tabela 2 recebe uma alocação de buffers de porta dedicados.
O switch usa agendamento hierárquico para controlar a alocação de largura de banda de porta e fila, conforme descrito em Entendendo o Agendamento de Portas Hierárquicas de CoS (ETS) e mostrado em Exemplo: Configurando o Agendamento de Portas Hierárquicas de CoS (ETS). Para a configuração de tamanho do buffer de fila de saída, quando você anexa um perfil de controle de tráfego (inclui as informações do agendador de filas) a uma porta, os buffers de saída dedicados na porta são divididos entre as filas conforme configurado no agendador.
Se você não quiser usar a alocação padrão de buffers de porta dedicados para filas, use a buffer-size opção no agendador que está anexada à porta para configurar a alocação de fila. Você pode configurar a alocação de buffer dedicado para filas de duas maneiras:
-
Como uma porcentagem — a fila recebe a porcentagem especificada de buffers de porta dedicados quando a fila é mapeada para o agendador e o agendador é anexado a uma porta.
-
Como um restante — Depois que a porta atende as filas que têm uma configuração explícita de tamanho de buffer percentual, o espaço de buffer de porta dedicado restante é dividido igualmente entre as outras filas às quais um agendador está anexado. (Nenhum agendador padrão ou explícito para uma fila significa que não há alocação de buffer dedicado para essa fila.) Se você configurar um agendador e não especificar um tamanho de buffer como uma porcentagem, o restante será a configuração padrão.
O total de todas as porcentagens de tamanho de buffer configuradas explicitamente para todas as filas em uma porta não pode exceder 100%.
Configuring Dedicated Port Buffer Allocation to Queues
Em uma configuração de porta que inclui vários conjuntos de classes de encaminhamento, com várias classes de encaminhamento mapeadas para vários agendadores, a alocação de buffers dedicados de porta para filas depende da combinação de filas com tamanhos de buffer configurados como porcentagens explícitas e filas configuradas com (ou padronizadas para) a remainder opção.
A melhor maneira de demonstrar como o uso das opções percentage e remainder afeta a alocação de buffer de porta dedicada para filas é mostrando um exemplo de alocação de buffer de fila e, em seguida, mostrando como a alocação de buffer de fila muda quando você adiciona outra classe de encaminhamento (fila) à porta.
A Tabela 3 mostra uma configuração inicial que inclui quatro conjuntos de classes de encaminhamento, as cinco classes de encaminhamento padrão (mapeadas para as cinco filas padrão para essas classes de encaminhamento), a buffer-size configuração de opção e a alocação de buffer resultante para cada fila. A Tabela 4 mostra a mesma configuração depois que adicionamos outra classe de encaminhamento (best-effort-2, mapeada para a fila 1) ao conjunto de classes de encaminhamento de melhor esforço. A comparação das alocações de buffer em cada tabela mostra como a adição de outra fila afeta a alocação de buffer quando você usa restos e porcentagens explícitas para configurar a alocação de buffer para filas diferentes.
| Conjunto de classes de encaminhamento (grupo prioritário) |
Classe de encaminhamento |
Fila |
Configuração do tamanho do buffer do agendador |
Alocação de buffer por fila (porcentagem) |
|---|---|---|---|---|
| fc-set-be |
melhor esforço |
0 |
10% |
10% |
| fc-set-sem perdas |
FCoE |
3 |
20% |
20% |
| sem perdas |
4 |
40% |
40% |
|
| fc-set-strict-high |
controle de rede |
7 |
restante |
15% |
| fc-set-mcast |
mcast |
8 |
restante |
15% |
Neste primeiro exemplo, 70% do buffer pool dedicado à porta de saída é explicitamente alocado para as filas de melhor esforço, fcoe e sem perdas. Os 30% restantes do buffer pool dedicado da porta são divididos entre as duas filas que usam a remainder opção (network-control e mcast), de modo que cada fila recebe 15% do buffer pool dedicado.
Agora adicionamos outra classe de encaminhamento (fila) ao grupo de prioridade de melhor esforço (fc-set-be) e a configuramos com um tamanho de buffer de restante em vez de configurar uma porcentagem específica. Como uma terceira fila agora compartilha os buffers dedicados restantes, as filas que compartilham o restante recebem menos buffers dedicados, conforme mostrado na Tabela 4. As filas com porcentagens configuradas explicitamente recebem a porcentagem configurada de buffers dedicados.
| Grupo prioritário (fc-set) |
Classe de encaminhamento |
Fila |
Configuração do tamanho do buffer do agendador |
Alocação de buffer por fila (porcentagem) |
|---|---|---|---|---|
| fc-set-be |
melhor esforço |
0 |
10% |
10% |
| melhor esforço-2 |
1 |
restante |
10% |
|
| fc-set-sem perdas |
FCoE |
3 |
20% |
20% |
| sem perdas |
4 |
40% |
40% |
|
| fc-set-strict-high |
controle de rede |
7 |
restante |
10% |
| fc-set-mcast |
mcast |
8 |
restante |
10% |
As duas tabelas mostram como a porta divide o espaço de buffer dedicado que permanece após a manutenção das filas que têm uma porcentagem configurada explicitamente de espaço de buffer dedicado.
Trade-off entre espaço de buffer compartilhado e espaço de buffer dedicado
A compensação entre espaço de buffer compartilhado e espaço de buffer dedicado é:
-
Os buffers compartilhados fornecem melhor absorção de intermitências de tráfego porque há um pool maior de buffers dinâmicos que as portas podem usar conforme necessário para lidar com as intermitências. No entanto, todos os fluxos que esgotam seu espaço de buffer dedicado competem pelo pool de buffer compartilhado. Um buffer pool compartilhado maior significa um buffer pool dedicado menor e, portanto, mais concorrência pelo buffer pool compartilhado porque mais fluxos esgotam sua alocação de buffer dedicado. Muito espaço de buffer compartilhado resulta em nenhum fluxo único recebendo muito espaço de buffer compartilhado, para manter a justiça quando muitos fluxos disputam esse espaço.
-
Buffers dedicados fornecem espaço de buffer garantido para cada porta. Quanto maior o buffer pool dedicado, menor a probabilidade de que o congestionamento em uma porta afete o tráfego em outra porta, porque o tráfego não precisa usar tanto espaço de buffer compartilhado. No entanto, menos espaço de buffer compartilhado significa menos capacidade de absorver dinamicamente explosões de tráfego.
Para uma absorção de intermitência ideal, o switch precisa de espaço de buffer dedicado suficiente para evitar a competição persistente pelo espaço de buffer compartilhado. Quando menos fluxos competem pelos buffers compartilhados, os fluxos que precisam de espaço de buffer compartilhado para absorver intermitências recebem mais do buffer compartilhado porque menos fluxos esgotam seu espaço de buffer dedicado.
A configuração padrão e as configurações recomendadas para diferentes cenários de tráfego alocam 100% do espaço de memória configurável pelo usuário para o pool de buffers compartilhado global porque a quantidade de espaço reservada para buffers dedicados fornece espaço suficiente para evitar a competição persistente por buffers compartilhados dinâmicos. Isso resulta em menos fluxos competindo pelos buffers compartilhados, de modo que os fluxos concorrentes recebem mais espaço de buffer.
Ordem de consumo de buffer
O buffer pool total é dividido em buffer pools compartilhados de entrada e saída e buffer pools dedicados. Quando o tráfego flui pelo switch, o espaço do buffer é usado em uma ordem específica que depende do tipo de tráfego.
Na entrada, a ordem de consumo de buffer é:
-
Tráfego unicast de melhor esforço:
-
Buffers dedicados
-
Buffers compartilhados
-
Buffers de headroom globais (muito pequenos)
-
-
Tráfego unicast sem perdas:
-
Buffers dedicados
-
Buffers compartilhados
-
Buffers de headroom sem perdas
-
Buffers de headroom globais (muito pequenos)
-
-
Tráfego multidestino:
-
Buffers dedicados
-
Buffers compartilhados
-
Buffers de headroom globais (muito pequenos)
-
Na saída, a ordem de consumo de buffer é a mesma para tráfego unicast de melhor esforço, unicast sem perdas e multidestino:
-
Buffers dedicados
-
Buffers compartilhados
Em todos os casos, em todas as portas, o switch usa o buffer pool dedicado primeiro e o buffer pool compartilhado somente depois que o buffer pool dedicado para a porta ou fila é esgotado. Isso reserva a quantidade máxima de espaço de buffer compartilhado dinâmico para absorver explosões de tráfego.
Valores padrão do pool de buffers
É possível visualizar os valores padrão ou configurados do buffer pool de entrada e saída em unidades KB usando o show class-of-service shared-buffer comando operacional. É possível visualizar os valores do buffer pool compartilhado configurados em unidades percentuais usando o show configuration class-of-service shared-buffer comando operacional.
Esta seção fornece os valores padrão de buffer total, buffer compartilhado e buffer dedicado.
- Tamanho total do buffer pool
- Valores padrão do buffer pool compartilhado
- Valores padrão do pool de buffers dedicados
Tamanho total do buffer pool
O buffer pool total é uma memória comum que tem contabilidade de entrada e saída separada, portanto, o buffer pool completo está disponível da perspectiva de entrada e saída. O buffer pool total consiste no espaço de buffer dedicado e no espaço de buffer compartilhado. O tamanho do buffer pool total não é configurável pelo usuário, mas a alocação de espaço de buffer para os buffer pools dedicados e compartilhados é configurável pelo usuário.
Valores padrão do buffer pool compartilhado
Alguns switches têm um pool de buffer compartilhado maior do que outros. No entanto, a alocação de espaço de buffer compartilhado para os buffer pools individuais de entrada e saída é a mesma em uma base percentual, mesmo que os valores absolutos sejam diferentes. Por exemplo, o buffer sem perdas de entrada padrão é de 9% do espaço total do buffer de entrada compartilhado em todos os switches, mesmo que o valor absoluto padrão do buffer sem perdas de entrada seja diferente de switch para switch.
Shared Ingress Buffer Default Values
A Tabela 5 mostra os valores de alocação de buffer compartilhado de entrada padrão como porcentagens para todos os switches. Se você alterar a alocação de buffer compartilhado padrão, configure a alteração como uma porcentagem.
| Buffer de entrada compartilhado total |
Buffer sem perdas |
Buffer de headroom sem perdas |
Buffer com perdas |
|---|---|---|---|
| 100% |
9% |
45% |
46% |
Shared Egress Buffer Default Values
A Tabela 6 mostra os valores de alocação de buffer compartilhado de saída padrão para todos os switches como porcentagens.
| Buffer de saída compartilhado total |
Buffer sem perdas |
Buffer com perdas |
Multicast Buffer |
|---|---|---|---|
| 100% |
50% |
31% |
19% |
Valores padrão do pool de buffers dedicados
O sistema reserva buffer pools dedicados de entrada e saída que são divididos igualmente entre as portas do switch. Por padrão, o sistema aloca 100% do espaço de buffer não reservado disponível para o pool de buffer compartilhado. Se você reduzir a porcentagem de espaço de buffer não reservado disponível alocado para o buffer pool compartilhado, o espaço de buffer não reservado restante será adicionado à alocação de buffer pool dedicado. Você configura a quantidade de espaço dedicado do buffer pool reduzindo (ou aumentando) a porcentagem de espaço do buffer alocado para o buffer pool compartilhado. Você não configura diretamente a alocação dedicada do buffer pool.
A Tabela 7 mostra os valores padrão do pool de buffer dedicado de entrada e saída em unidades KB para switches QFX5210, QFX5200, QFX5110, QFX5100, EX4600.
| Tipo de buffer dedicado |
QFX5210 |
QFX5200-48Y |
QFX5110, QFX5200-32C |
QFX5100, EX4600 |
|---|---|---|---|---|
| Entrada |
14040 |
3373.50 |
4860.38 |
2912.81 |
| Saída |
15184 |
3412.50 |
5408 |
3744 |
Recomendações de configuração de buffer compartilhado para diferentes cenários de tráfego de rede
A maneira como você configura o buffer pool compartilhado depende da combinação de tráfego em sua rede. Esta seção fornece recomendações de configuração de buffer compartilhado para cinco cenários básicos de tráfego de rede:
-
Tráfego balanceado — A rede transporta uma combinação equilibrada de tráfego unicast de melhor esforço, sem perdas e multicast. (Esta é a configuração padrão.)
-
Tráfego unicast de melhor esforço — A rede transporta principalmente tráfego de melhor esforço unicast.
-
Tráfego de melhor esforço com Ethernet PAUSE (IEEE 802.3X) habilitada — A rede transporta principalmente o tráfego de melhor esforço com Ethernet PAUSE habilitada nos links.
-
Tráfego multicast de melhor esforço — A rede transporta principalmente tráfego de melhor esforço multicast.
-
Tráfego sem perdas — a rede transporta principalmente tráfego sem perdas (tráfego no qual o PFC está habilitado).
O tráfego sem perdas é definido como o tráfego no qual você habilita o PFC para garantir um transporte sem perdas. O tráfego sem perdas não se refere ao tráfego de melhor esforço em um link no qual você habilita o Ethernet PAUSE. Comece com os perfis recomendados para cada cenário de tráfego de rede e ajuste-os, se necessário, para as condições de tráfego de rede.
Alterar a configuração do buffer é um evento disruptivo. O tráfego é interrompido em todas as portas até que a reprogramação do buffer seja concluída. Isso inclui alterar a configuração padrão para uma das configurações recomendadas.
Como você configura alocações de buffer em porcentagens, as alocações recomendadas para cada cenário de tráfego de rede são válidas para todos os switches da Série QFX e switches EX4600. Use uma das seguintes configurações de buffer compartilhado recomendadas para suas condições de tráfego de rede. Comece com uma configuração recomendada e, em seguida, faça pequenos ajustes nas alocações de buffer para ajustar os buffers, se necessário, conforme descrito em Otimizando a configuração do buffer.
- Tráfego balanceado (configuração padrão)
- Tráfego unicast de melhor esforço
- Tráfego de pausa Ethernet
- Tráfego multicast (multidestino) de melhor esforço
- Tráfego sem perdas
Tráfego balanceado (configuração padrão)
A configuração padrão de buffer compartilhado é otimizada para redes que transportam uma combinação equilibrada de tráfego unicast, sem perdas e multidestino de melhor esforço (falha de pesquisa de multicast, broadcast e destino). A configuração padrão de classe de serviço (CoS) também é otimizada para redes que transportam uma combinação equilibrada de tráfego.
Recomendamos que você use a configuração de buffer compartilhado padrão para redes que transportam uma combinação equilibrada de tráfego, especialmente se você estiver usando as configurações de CoS padrão. A Tabela 8 mostra as alocações de buffer compartilhado de entrada padrão:
| Buffer de entrada compartilhado total |
Buffer sem perdas |
Buffer de headroom sem perdas |
Buffer com perdas |
|---|---|---|---|
| 100% |
9% |
45% |
46% |
A Tabela 9 mostra as alocações de buffer compartilhado de saída padrão:
| Buffer de saída compartilhado total |
Buffer sem perdas |
Buffer com perdas |
Multicast Buffer |
|---|---|---|---|
| 100% |
50% |
31% |
19% |
Tráfego unicast de melhor esforço
Se sua rede transportar principalmente tráfego unicast de melhor esforço (com perdas), a configuração padrão do buffer compartilhado alocará muito espaço de buffer para oferecer suporte ao transporte sem perdas. Em vez de desperdiçar esses buffers, recomendamos que você use as seguintes configurações de buffer compartilhado de entrada (consulte a Tabela 10) e as seguintes configurações de buffer compartilhado de saída (consulte a Tabela 11):
| Buffer de entrada compartilhado total |
Buffer sem perdas |
Buffer de headroom sem perdas |
Buffer com perdas |
|---|---|---|---|
| 100% |
5% |
0% |
95% |
| Buffer de saída compartilhado total |
Buffer sem perdas |
Buffer com perdas |
Multicast Buffer |
|---|---|---|---|
| 100% |
5% |
75% |
20% |
Consulte Exemplo: Configuração recomendada do pool de buffer compartilhado para redes com tráfego unicast de melhor esforço para obter um exemplo que mostra como definir as configurações de buffer recomendadas mostradas na Tabela 10 e na Tabela 11.
Tráfego de pausa Ethernet
Se sua rede transportar principalmente tráfego de melhor esforço (com perdas) e habilitar Ethernet PAUSE em links, a configuração padrão de buffer compartilhado alocará muito espaço de buffer para o buffer de entrada compartilhado (o tráfego Ethernet PAUSE usa os buffers dedicados em vez de buffers compartilhados) e não espaço suficiente para os buffers de headroom sem perdas. Recomendamos que você use as seguintes configurações de buffer compartilhado de entrada (consulte a Tabela 12) e as seguintes configurações de buffer compartilhado de saída (consulte a Tabela 13):
| Buffer de entrada compartilhado total |
Buffer sem perdas |
Buffer de headroom sem perdas |
Buffer com perdas |
|---|---|---|---|
| 70% |
5% |
80% |
15% |
| Buffer de saída compartilhado total |
Buffer sem perdas |
Buffer com perdas |
Multicast Buffer |
|---|---|---|---|
| 100% |
5% |
75% |
20% |
Consulte Exemplo: Configuração recomendada do pool de buffer compartilhado para redes com tráfego de maior esforço em links com Ethernet PAUSE Enabled para obter um exemplo que mostra como definir as configurações de buffer recomendadas mostradas na Tabela 10 e na Tabela 11.
Tráfego multicast (multidestino) de melhor esforço
Se sua rede transportar principalmente tráfego multicast de melhor esforço (com perdas), a configuração padrão de buffer compartilhado alocará muito espaço de buffer para suportar o transporte sem perdas. Em vez de desperdiçar esses buffers, recomendamos que você use as seguintes configurações de buffer compartilhado de entrada (consulte a Tabela 14) e as seguintes configurações de buffer compartilhado de saída (consulte a Tabela 15):
| Buffer de entrada compartilhado total |
Buffer sem perdas |
Buffer de headroom sem perdas |
Buffer com perdas |
|---|---|---|---|
| 100% |
5% |
0% |
95% |
| Buffer de saída compartilhado total |
Buffer sem perdas |
Buffer com perdas |
Multicast Buffer |
|---|---|---|---|
| 100% |
5% |
20% |
75% |
Consulte Exemplo: Configuração recomendada do pool de buffer compartilhado para redes com tráfego principalmente multicast para obter um exemplo que mostra como definir as configurações de buffer recomendadas mostradas na Tabela 14 e na Tabela 15.
Tráfego sem perdas
Se sua rede transporta principalmente tráfego sem perdas, a configuração de buffer compartilhado padrão aloca muito espaço de buffer para suportar o tráfego de melhor esforço. Em vez de desperdiçar esses buffers, recomendamos que você use as seguintes configurações de buffer compartilhado de entrada (consulte a Tabela 16) e as seguintes configurações de buffer compartilhado de saída (consulte a Tabela 17):
| Buffer de entrada compartilhado total |
Buffer sem perdas |
Buffer de headroom sem perdas |
Buffer com perdas |
|---|---|---|---|
| 100% |
15% |
80% |
5% |
| Buffer de saída compartilhado total |
Buffer sem perdas |
Buffer com perdas |
Multicast Buffer |
|---|---|---|---|
| 100% |
90% |
5% |
5% |
Consulte Exemplo: Configuração recomendada do pool de buffer compartilhado para redes com tráfego sem perdas para obter um exemplo que mostra como definir as configurações de buffer recomendadas mostradas na Tabela 16 e na Tabela 17.
Otimizando a configuração do buffer
A partir da configuração padrão ou de uma configuração de buffer recomendada, você pode otimizar ainda mais a alocação de buffer para melhor suportar a combinação de tráfego em sua rede. Ajuste as configurações gradualmente para ajustar a alocação de buffer compartilhado. Tenha cuidado ao ajustar a configuração do buffer compartilhado, não apenas ao ajustar as partições de buffer de entrada e saída, mas também ao ajustar a porcentagem total de buffer compartilhado de entrada e saída. (Lembre-se de que, se você alocar menos de 100% dos buffers disponíveis para os buffers compartilhados, os buffers restantes serão adicionados aos buffers dedicados). Ajustar os buffers incorretamente pode causar problemas como congestionamento de porta de entrada.
Alterar a configuração do buffer é um evento disruptivo. O tráfego é interrompido em todas as portas até que a reprogramação do buffer seja concluída.
A relação entre os tamanhos do buffer pool de entrada e o buffer pool de saída afeta quando e onde os pacotes são descartados. Os tamanhos do pool de buffers incluem os buffers compartilhados e os buffers dedicados. Em geral, se houver mais buffers de entrada do que buffers de saída, o switch pode sofrer congestionamento de porta de entrada porque as filas de saída são preenchidas antes que as filas de entrada possam ser esvaziadas.
Use o show class-of-service shared-buffer comando operacional para ver os tamanhos em kilobytes (KB) dos buffers dedicados e compartilhados e das partições de buffer compartilhadas.
Para tráfego de melhor esforço (unicast e multidestino), a partição de buffer compartilhado com perdas de entrada combinada e os buffers dedicados de entrada devem ser menores do que as partições de buffer compartilhado com perdas e multicast combinadas mais os buffers dedicados de saída. Isso evita o congestionamento da porta de entrada, garantindo que os buffers de melhor esforço de saída sejam mais profundos do que os buffers de melhor esforço de entrada e garante que, se os pacotes forem descartados, eles serão descartados nas filas de saída. (A queda de pacotes na entrada impede que os agendadores de saída funcionem corretamente.)
Para tráfego sem perdas (tráfego no qual você habilita o PFC), a partição de buffer compartilhado sem perdas de entrada combinada e uma parte razoável da partição de buffer de headroom de entrada, mais os buffers dedicados, devem ser menores que a partição de buffer compartilhado sem perdas de saída total e os buffers dedicados. (Uma parte razoável do buffer de headroom de entrada é de aproximadamente 20 a 25 por cento do espaço de buffer, mas isso varia dependendo de quanto headroom de buffer é necessário para suportar o tráfego sem perdas.) Quando essas condições são atendidas, se houver congestionamento da porta de entrada, o congestionamento da porta de entrada aciona o PFC na porta de entrada para evitar a perda de pacotes. Se o total de buffers de entrada sem perdas exceder o total de buffers de saída sem perdas, os pacotes poderão ser descartados na saída em vez de o PFC ser aplicado na entrada para evitar a perda de pacotes.
Se você confirmar uma configuração de buffer para a qual o switch não tem recursos suficientes, o switch poderá registrar um erro em vez de retornar um erro de confirmação. Nesse caso, uma mensagem de syslog é exibida no console. Por exemplo:
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
Se a configuração do buffer for confirmada, mas você receber uma mensagem de syslog indicando que a configuração não pode ser implementada, você poderá:
-
Reconfigure os buffers ou reconfigure outros parâmetros (por exemplo, a configuração do PFC, que afeta a necessidade de buffers de headroom e buffers sem perdas sem perdas — quanto mais prioridades você pausar, mais espaço de buffer de headroom sem perdas e sem perdas você precisar) e tente a operação de confirmação novamente.
-
Reverta o switch para a última configuração bem-sucedida.
Se você receber uma mensagem de syslog informando que a configuração do buffer não pode ser implementada, você deve tomar uma ação corretiva. Se você não corrigir a configuração ou reverter para uma configuração anterior bem-sucedida, o comportamento do sistema será imprevisível.
Regras e considerações gerais de configuração de buffer
Lembre-se das seguintes regras e considerações ao configurar os buffers:
-
Alterar a configuração do buffer é um evento disruptivo. O tráfego é interrompido em todas as portas até que a reprogramação do buffer seja concluída.
-
Se você configurar as porcentagens de buffer compartilhado de entrada ou saída como menos de 100%, a porcentagem restante de espaço de buffer será adicionada ao pool de buffer dedicado.
-
A soma de todas as partições de buffer compartilhadas de entrada deve ser igual a 100%. Cada partição deve ser configurada com um valor de pelo menos 5%, exceto o buffer de headroom sem perdas, que pode ter um valor de 0%.
-
A soma de todas as partições de buffer compartilhadas de saída deve ser igual a 100%. Cada partição deve ser configurada com um valor de pelo menos 5%.
-
Os buffers compartilhados de headroom sem perdas e sem perdas atendem ao tráfego no qual você habilita o PFC e não atendem ao tráfego sujeito à Ethernet PAUSE.
-
O switch usa o buffer pool dedicado primeiro e o buffer pool compartilhado somente depois que o buffer pool dedicado para uma porta ou fila é esgotado.
-
Muito pouco espaço de buffer dedicado resulta em muita competição por espaço de buffer compartilhado.
-
Muito espaço de buffer dedicado resulta em menor absorção de intermitência porque há menos espaço de buffer compartilhado disponível.
-
Sempre verifique as mensagens de syslog depois de confirmar uma nova configuração de buffer.
-
A configuração de buffer ideal para sua rede depende dos tipos de tráfego na rede. Se sua rede transportar menos tráfego de um determinado tipo (por exemplo, tráfego sem perdas), você poderá reduzir o tamanho dos buffers alocados para esse tipo de tráfego (por exemplo, você pode reduzir os tamanhos dos buffers de headroom sem perdas e sem perdas).
Comportamento do buffer específico da plataforma
Use a tabela a seguir para revisar os comportamentos específicos de suas plataformas.
| Plataforma |
Diferença |
|---|---|
| Série QFX5000 |
|
| Série QFX10000 |
|
| QFX Virtual Chassis e EX4600/EX4650 Virtual Chassis |
|