Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Há sempre compensações em decidir quais funções de hardware implementar em um adaptador de rede. Está se tornando cada vez mais importante considerar a adição de recursos de descarregamento de tarefas que permitam moderação de interrupção, ajuste dinâmico no hardware, melhoria do uso do barramento PCI e suporte a Jumbo Frames. Esses recursos de descarregamento são importantes para o adaptador de rede de alto desempenho usado em configurações de que exigem desempenho superior.
- Suporte ao descarregamento de soma de verificação TCP e IP
- Suporte para Large Send Offload (LSO)
- Suporte ao descarregamento de segurança IP (IPSec)
- Melhorar a moderação de interrupção
- Usando o barramento PCI de forma eficiente
- Suporte para quadros jumbo
Suporte ao descarregamento de soma de verificação TCP e IP
Para o tráfego de rede mais comum, transferir o cálculo do checksum para o hardware do adaptador de rede oferece uma vantagem de desempenho significativa, ao reduzir o número de ciclos de CPU necessários por byte. O cálculo da soma de verificação é a função mais dispendiosa na pilha de rede por dois motivos:
- Contribui para o longo comprimento do caminho.
- Isso causa efeitos de rotatividade de cache (normalmente no remetente).
Delegar o cálculo da soma de verificação ao remetente melhora o desempenho geral do sistema, reduzindo a carga na CPU do host e aumentando a eficácia da cache.
No Laboratório de Desempenho do Windows, medimos melhorias na taxa de transferência TCP de 19% quando a soma de verificação foi descarregada durante cargas de trabalho intensivas de rede. A análise dessa melhoria mostra que 11% da melhoria total se deve à redução do comprimento do caminho e 8% ao aumento da eficácia dos caches.
O descarregamento do cálculo da soma de verificação no recetor tem as mesmas vantagens que o descarregamento do cálculo da soma de verificação no remetente. O aumento do benefício pode ser visto em sistemas que atuam como cliente e servidor, como um servidor proxy de soquetes. Em sistemas onde a CPU não está necessariamente ocupada, como um sistema cliente, o benefício do descarregamento da verificação de soma pode resultar em melhores tempos de resposta da rede, em vez de uma melhoria visível na taxa de transferência.
Suporte a descarga de envio grande (LSO)
O Windows permite que o adaptador de rede/driver anuncie um Tamanho Máximo de Segmento (MSS) maior do que o MTU para TCP até 64K. Isso permite que o TCP aloque um buffer de até 64K para o driver, que divide o buffer grande em pacotes que cabem no MTU da rede.
O trabalho de segmentação TCP é feito pelo hardware do adaptador/driver de rede em vez da CPU do host. Isso resulta em uma melhoria significativa de desempenho se a CPU do adaptador de rede for capaz de lidar com o trabalho adicional.
Para muitos dos adaptadores de rede testados, houve pouca melhoria observada para atividades de rede puras quando a CPU do host era mais poderosa do que o hardware do adaptador de rede. No entanto, para cargas de trabalho de negócios típicas, uma melhoria geral do desempenho do sistema de até 9% da taxa de transferência foi medida, porque a CPU do host usa a maioria de seus ciclos para executar transações. Nesses casos, o descarregamento da segmentação TCP para o hardware libera a CPU host da carga de segmentação, permitindo ciclos extras para executar mais transações.
Suporte ao descarregamento de segurança IP (IPSec)
O Windows oferece a capacidade de descarregar o trabalho de criptografia do IPSec para o hardware do adaptador de rede. A encriptação, especialmente 3 DES (também conhecido como DES triplo), tem uma relação ciclos/bytes muito elevada. Portanto, não é nenhuma surpresa que o descarregamento de IPSec para o hardware do adaptador de rede tenha medido um aumento de desempenho de 30% em testes seguros de Internet e VPN.
Melhorar a moderação de interrupções
Um adaptador de rede simples gera uma interrupção de hardware no host após a chegada de um pacote ou para sinalizar a conclusão de uma solicitação de envio de pacote. A latência de interrupção e os efeitos de rotatividade de cache resultantes adicionam sobrecarga ao desempenho geral da rede. Em muitos cenários (por exemplo, uso intenso do sistema ou tráfego de rede pesado), é melhor reduzir o custo da interrupção de hardware processando vários pacotes para cada interrupção.
Com cargas de trabalho de rede pesadas, até 9% melhoria de desempenho na taxa de transferência foi medida em relação a cargas de trabalho intensivas de rede. No entanto, ajustar os parâmetros de moderação de interrupção apenas para melhorias na taxa de transferência pode resultar em um impacto no desempenho no tempo de resposta. Para manter as configurações ideais e acomodar diferentes cargas de trabalho, é melhor permitir parâmetros ajustados dinamicamente, conforme descrito no ajuste automático mais adiante neste artigo.
Usando o barramento PCI de forma eficiente
Um dos fatores mais importantes no desempenho de hardware do adaptador de rede é a eficiência com que ele usa o barramento PCI. Além disso, o desempenho DMA do adaptador de rede afeta o desempenho de todas as placas PCI que estão no mesmo barramento PCI. As seguintes diretrizes devem ser consideradas ao otimizar o uso do PCI:
Simplifique as transferências de DMA agregando páginas de destino quando apropriado.
Reduza a sobrecarga do protocolo PCI executando DMA em grandes partes (pelo menos 256 bytes). Se possível, cronometre o fluxo de dados para que pacotes inteiros sejam transferidos em uma única transação PCI. No entanto, considere como a transferência deve ocorrer. Por exemplo, não espere que todos os dados cheguem antes de iniciar as transferências, porque a espera aumentará a latência e consumirá espaço adicional no buffer.
É melhor preencher a transferência de pacotes DMA com bytes adicionais, em vez de precisar de uma transferência extra curta apenas para finalizar transferindo os últimos bytes do pacote.
Use as transações Leitura de memória, Linha de leitura de memória e Leitura de memória múltipla conforme recomendado pela especificação PCI.
O hardware da interface de barramento do adaptador de rede deve detectar limitações no controlador de memória do host e ajustar o comportamento de acordo. Por exemplo, o hardware da interface do barramento do adaptador de rede deve detetar limitações de pré-busca do controlador de memória em uma leitura de memória DMA e aguardar um curto período antes de tentar a transação novamente. O hardware deve detetar tentativas excessivas por parte do adaptador de rede e aumentar o tempo antes da primeira tentativa em transações futuras quando houver interrupção por parte do host. Não adianta continuar a enviar transações para o controlador de memória quando você tem certeza de que ele ainda está ocupado buscando o próximo conjunto sequencial de dados.
Minimize a inserção de estados de espera, especialmente durante as transferências de dados. É melhor abrir mão do barramento e deixar outro adaptador PCI usando o barramento fazer algum trabalho se mais de um ou dois estados de espera forem inseridos.
Use E/S mapeada de memória em vez de E/S programada. Isso também é verdade para os motoristas.
Suporte a quadros jumbo
O suporte a MTUs (Maximum Transmission Units, unidades máximas de transmissão) maiores e, portanto, tamanhos de quadros maiores, especificamente Jumbo Frames, reduz a sobrecarga de pilha de rede incorrida por byte. Foi medido um aumento de 20% na taxa de transferência TCP quando a MTU foi alterada de 1514 para 9000. Além disso, obtém-se uma redução significativa na utilização da CPU devido ao menor número de chamadas da pilha de rede para o driver de rede.