Slide 1

Slide 1 text

Calisto: Sistema para processamento rápido de pacotes com baixa latência em centro de dados Lucas Bleme Gustavo Pantuza Marcos Vieira Luiz Vieira

Slide 2

Slide 2 text

Agenda Problema Arquitetura Implementação Avaliação e experimentos Trabalhos Futuros Conclusão

Slide 3

Slide 3 text

Sistemas operacionais ainda adicionam sobrecarga significante em operações de I/O e processamento de pacotes Redes de alta vazão e baixa latência 2010 2020 Vazão: 1 Gbits/s Latência: ~100 µs Vazão: 100 Gbits/s Latência: ~5 µs

Slide 4

Slide 4 text

- Espera ocupada/ativa (polling) - Aplicações interagem com as filas de pacotes diretamente Arquitetura Tradicional vs Kernel Bypass Aplicação Núcleos Kernel Filas da interface de rede NIC Aplicação Kernel Filas da interface de rede NIC Núcleos Abordagem tradicional Kernel Bypass

Slide 5

Slide 5 text

Objetivo - Realocar núcleos dinamicamente entre aplicações - Processar pacotes considerando sua afinidade de fluxo - Reduzir sincronização entre diferentes CPUs Abordagens anteriores não proveem estas características em conjunto (Shenango, ZygOS, RSS++)

Slide 6

Slide 6 text

Contribuição - Algoritmo eficiente para processamento rápido de pacotes promovendo afinidade de fluxo entre núcleos - Nível de indireção entre filas de pacotes da NIC e aplicações aumentando a flexibilidade de extensão de políticas de balanceamento

Slide 7

Slide 7 text

Arquitetura Shenango IOKernel Kernel Core 2 Core 3 Core n Filas da interface de rede NIC Filas de pacotes Core 1 Núcleo ativo

Slide 8

Slide 8 text

Troca de Contexto IOKernel Hash RSS Núcleo CPU 4 5 0 1 2 3 6 7 4 % 4 = 0 5 % 4 = 1 6 % 4 = 2 7 % 4 = 3 4 threads ativas

Slide 9

Slide 9 text

Troca de Contexto IOKernel Hash RSS Núcleo CPU 4 5 0 1 2 3 6 7 4 % 5 = 4 5 % 5 = 0 6 % 5 = 1 7 % 5 = 2 5 threads ativas 4

Slide 10

Slide 10 text

Arquitetura Calisto Hash RSS Núcleo CPU 100 101 1 2 3 4 5 6 Novo pacote hash 101 160 Tabela Hash contém o valor Receive Side Scaling (RSS) de cada pacote, calculado pela NIC

Slide 11

Slide 11 text

Implementação - IOKernel modificado utiliza DPDK 18.11 - Estrutura de dados Tabela Hash, funções de pesquisa e inserção foram utilizadas a partir da struct rte_hash.h - ~150 linhas de código C, modificadas no IOKernel do sistema Shenango

Slide 12

Slide 12 text

Implementação enquanto existeNovoPacote() faça var inteiro nucleoDestino lookup(tabela_hash, rss) se nucleoDestino = -1 então nucleoDestino++ insert(tabela_hash, rss, nucleoDestino) fimSe enviaParaThreadAtiva(pkg, nucleoDestino) fimEnquanto (chave), (valor)

Slide 13

Slide 13 text

Avaliação e Experimentos Cliente Servidor Calisto Comutador - Ambiente CloudLab com máquinas Intel Xeon 2.0 GHz de 16 núcleos cada e NIC Mellanox ConnectX com 2 portas de 10 Gb - Aplicações produzindo tráfego sintético enviando milhares de pacotes TCP a cada segundo - Volume de pacotes enviados aumenta de mil em mil a cada 5 segundos

Slide 14

Slide 14 text

Resultados Aumento de até 100% na latência durante o início do experimento, causado pelas operações de pesquisa (lookup) + inserção na tabela hash

Slide 15

Slide 15 text

Resultados Aumento de até 100% na latência durante o início do experimento, causado pelas operações de pesquisa (lookup) + inserção na tabela hash

Slide 16

Slide 16 text

Resultados Redução de 20ms para 18ms na latência, medido durante tráfego intenso contínuo após preenchimento da tabela hash, com afinidade de fluxo

Slide 17

Slide 17 text

Trabalhos Futuros - Preenchimento da Tabela Hash a priori, buscando reduzir a quantidade de operações de inserção durante o processamento de pacotes de fluxos desconhecidos - Utilizar política do Shenango alternadamente com a política que promove afinidade de fluxos do Calisto - Substituir pthreads do IOKernel por lthreads (RTC e operações não bloqueantes) - Implementar NFVs produzindo experimentos com NICs de maior capacidade (100 Gbps pro exemplo)

Slide 18

Slide 18 text

Conclusão - Sistema Calisto provê latência de cauda até 10% mais baixa durante o processamento rápido de pacotes quando comparado com Shenango em tráfego intenso, ferramenta considerada estado da arte - Políticas que promovem afinidade de fluxo são alternativas interessantes para processamento de pacotes em centro de dados, podendo ser incorporadas a trabalhos existentes na área de redes andreybleme@ufmg.br https://github.com/andreybleme/calisto

Slide 19

Slide 19 text

Calisto: Sistema para processamento rápido de pacotes com baixa latência em centro de dados Lucas Bleme Gustavo Pantuza Marcos Vieira Luiz Vieira