Experimental Evaluation on Packet Processing Frameworks under Virtual Environments
DPDK. XDP. Kernel Linux. Processamento de Pacote de Rede. Kernel Bypass.
O kernel Linux é um componente central das aplicações de rede, estando presente
na maioria dos servidores em data centers. Com o tempo, à medida que servidores
e placas de rede evoluíram para atender tecnologias de rede com demandas de alto
throughput e baixa latência, o kernel tornou-se um gargalo, impedindo as
aplicações de rede de utilizarem a capacidade máxima do hardware. Nesse cenário,
diferentes frameworks de processamento de pacotes surgiram para solucionar esse
gargalo. Os dois principais são o DPDK e XDP, com propostas diferentes para
atingir altas taxas de processamento. DPDK adota o bypass do kernel, excluindo-o
do processamento e levando os pacotes para o user-space. Já o XDP, por outro lado,
processa os pacotes dentro do kernel, de forma antecipada comparada ao
processamento padrão. Em conjunto com isso, o paradigma de computação em nuvem,
atualmente disponível na maioria dos data centers, traz a virtualização como
tecnologia fundamental. Com múltiplas aplicações e sistemas sendo executados no
mesmo host, surge outro problema, o de competição de recursos. Assim, essa
dissertação executa experimentos que buscam avaliar como a presença de um
ambiente virtual de computação em nuvem pode interferir no desempenho de ambos
DPDK e XDP. Os resultados mostram que embora o processamento “dentro do kernel”
traga mais segurança e integração com sistema, essas exatas medidas de segurança
causam perda de desempenho ao XDP. Além disso, o XDP também demonstra ser o mais
afetado pela presença do ambiente virtual, considerando a taxa de throughput e
também a perda de pacotes. Por outro lado, existe um dilema ao utilizar o XDP,
que não somente é possível alcançar maior segurança, mas também em relação ao uso
de recursos, já que o DPDK aloca um núcleo de CPU completo para utilizar no
processamento de pacotes. Também, dependendo do processamento sendo feito pelo
framework, como quando depende de uso intenso de CPU, o DPDK oferece uma perda
considerável de desempenho do throughput.