Trabalhar com Onload
Nesta página, descrevemos como usar o Onload para instâncias do Compute Engine de latência ultrabaixa (ULL, na sigla em inglês).
O Onload é uma pilha de rede de alto desempenho para aplicativos sensíveis à latência que exigem latência ultrabaixa, jitter mínimo e desempenho consistente. O Onload oferece uma implementação de TCP/IP que ignora o kernel do sistema operacional e é executada diretamente no espaço do usuário, permitindo que os aplicativos usem APIs de soquete BSD padrão.
O uso do Onload com a solução ULL inclui suporte para o seguinte:
- Direcionamento de fluxo: com interfaces de rede ULL, é possível ignorar o hash de escalonamento lateral de recebimento (RSS) padrão direcionando fluxos de tráfego específicos diretamente para uma fila de recebimento (RX) designada. Para tráfego unicast e multicast de ULL, há suporte para o direcionamento de fluxo de três tuplas (protocolo, endereço IP de destino, porta de destino).
Tipo de instância e imagem do SO obrigatórios
Para usar o Onload, crie instâncias do Compute Engine ULL (U4P ou U4C) usando o projeto e a imagem fornecidos pelo Google para teste, conforme descrito em Criar instâncias do Compute Engine ULL.
Quando você usa a imagem necessária, o Onload vem pré-instalado e carregado na inicialização. Depois, execute processos com o Onload conforme descrito nos procedimentos desta página.
Iniciar e parar onload
Esta seção descreve como iniciar e parar o Onload. Você precisa iniciar o Onload para concluir os procedimentos nas seções a seguir.
Para iniciar o Onload, execute o seguinte comando:
sudo /opt/gcp_tp-scripts/load-onload-and-tune
Para interromper o Onload, execute o seguinte comando:
sudo /opt/gcp_tp-scripts/unload-onload
Ativar a pesquisa de ocupado
Para ajudar a alcançar latência ultrabaixa e minimizar o jitter, ative a pesquisa ocupada.
Para ativar a pesquisa de ocupado, faça o seguinte:
Se ainda não tiver feito isso, conecte-se à instância usando SSH.
É possível ativar a pesquisa de ocupado para todas as filas ou de forma mais granular. Escolha a opção que corresponde ao seu caso de uso:
Todas as filas:
sudo /opt/gcp_tp-scripts/busypoll-all-queues
Fila RX específica que uma pilha Onload está usando:
Se ainda não tiver feito isso, inicie uma pilha Onload executando o seguinte comando:
gcp_tp-onload /opt/neper/tcp_rr &
Para receber o
stack-idda pilha que você iniciou, execute o seguinte comando:onload_stackdump
Para receber os números de índice das suas interfaces de rede, execute o seguinte comando:
cat /sys/class/net/NIC_NAME/ifindex
Substitua
NIC_NAMEpelo nome da interface de rede no SO convidado, comoeth1,eth2.Para ativar a pesquisa de ocupado, execute o seguinte comando:
sudo /opt/gcp_tp-scripts/busypoll-onload-stack STACK_ID enable NIC_INDEX CPU_ID
Substitua:
STACK_ID: o ID da pilha que você recebeu anteriormenteNIC_INDEX: o número de índice da interface de rede para que você quer ativar a pesquisa ocupada, por exemplo,1ou2.CPU_ID: o ID da CPU para ativar a pesquisa de ocupado.- Recomendamos não usar a CPU
0ou qualquer CPU em uso por um aplicativo. Use núcleos de CPU locais para o nó NUMA da interface de rede especificada. Exemplo:
eth1usa o nó NUMA0, que usa os núcleos de CPU0-29.eth2usa o nó NUMA2. que usa núcleos de CPU60-89.
- Recomendamos não usar a CPU
É possível desativar a pesquisa ocupada usando o seguinte comando:
sudo /opt/gcp_tp-scripts/busypoll-onload-stack STACK_ID disable NIC_INDEX CPU_ID
A seguir
- Para sincronizar o relógio do sistema da instância com o relógio da NIC física do servidor host, consulte Configurar a hora exata.