Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.unipampa.edu.br/jspui/handle/riu/7476
Tipo: Trabalho de Conclusão de Curso
Título : Análise de desempenho de aplicações eBPF/XDP em planos de dados programáveis
Autor(es): Capeletti, Ígor Ferrazza
Primeiro Orientador: Luizelli, Marcelo Caggiani
Resumo: O Extended Berkeley Packet Filter (eBPF) é um subsistema do Núcleo do Sistema Operacional (kernel) que filtra os pacotes de rede nos dispositivos do plano de dados com o auxílio do Hook eXpress Data Path (XDP). O Hook XDP permite que programas eBPF realizem o processamento dos pacotes de rede no espaço do usuário, no espaço do kernel, no driver das placas e também no hardware das placas de rede. Apesar das iniciativas de avaliar o desempenho de programas eBPF, as análises existentes ainda não avaliam a execução de diversos programas eBPF processando diferentes tamanhos de pacotes para todas as abordagens existentes do Hook XDP. Este trabalho tem o propósito de analisar as capacidades e limitações que os programas eBPF atingem processando pacotes em diferentes abordagens do Hook XDP com SmartNICs. Portanto realizamos avaliações de desempenho como Latência, Taxa de Transferência e uso de CPU para as execuções de diversos programas eBPF em SmartNICs com suporte à todos os Hooks XDP. Em nosso trabalho, estudamos o paradigma Rede Definida por Software (SDN) e o plano de dados programável com eBPF/XDP. Em seguida, realizamos o levantamento dos principais trabalhos relacionados com eBPF/XDP e apresentamos a metodologia utilizada para realização dos experimentos e avaliações. Nossos resultados mostraram que os modos XDP Generic e Native conseguiram manter a Taxa de Transferência máxima da SmartNIC ao processar grandes pacotes com algoritmos de até 3200 acessos à memória. O modoAF_XDP também alcançou boas taxas de transferência ao processar grandes pacotes, mas somente para algoritmos com até 100 acessos à memória. O modo XDP Generic consegue manter mínima Latência ao processar pacotes com até 1600 acessos à memória. Os modos XDP Native e AF_XDP conseguem realizar até 3200 acessos à memória com baixa Latência. Ao avaliar o uso de CPU, percebemos que ao processar milhões de pacotes pequenos, o uso dos núcleos fica sempre em 100% devido às milhões de interrupções geradas ao CPU. Quando aumentamos o tamanho de cada pacote, a quantidade total de pacotes diminui consideravelmente, mostrando que a porcentagem de uso de todos os núcleos diminui devido a grande diminuição de interrupções geradas ao CPU. Nas avaliações de número de instruções, número de branches, número de load hits e load misses, os resultados mostraram que não ocorreram diferenças de comportamento entre os diferentes experimentos.
Resumen : The Extended Berkeley Packet Filter (eBPF) is a subsystem of Operating System Core (kernel) that filters network packets on data plane devices with the aid of Hook eXpress Data Pat (XDP). Hook XDP allows programs eBPF to process network packets in user space, kernel space, in the card drivers and also in the card hardware of network. Despite efforts to evaluate the performance of eBPF programs, existing analyzes still do not evaluate the execution of different programs eBPF processing different packet sizes for all existing approaches to Hook XDP. This work aims to analyze the capabilities and limitations that eBPF programs reach by processing packets in different approaches to Hook XDP with SmartNICs. Therefore, we perform performance evaluations such as Latency, Transfer Rate and CPU usage for the execution of various programs eBPF on SmartNICs with support for all Hooks XDP. In our work, we studied the Software-Defined Network (SDN) paradigm and the programmable data plane with eBPF/XDP. Then, we carried out a survey of the main works related to eBPF/XDP and presented the methodology used to carry out the experiments and evaluations. Our results showed that the XDP Generic and Native modes were able to maintain the SmartNIC’s maximum Throughput when processing large packets with algorithms of up to 3200 memory accesses. The AF_XDP mode also achieved good transfer rates when processing large packets, but only for algorithms with up to 100 memory accesses. The XDP Generic mode manages to maintain minimal latency when processing packets with up to 1600 memory accesses.The XDP Native and AF_XDP modes can perform up to 3200 memory accesses with low latency. When evaluating the CPU usage, we noticed that when processing millions of small packets, the cores usage is always at 100% due to the millions of interrupts generated by the CPU. When we increase the size of each packet, the total amount of packets decreases considerably, showing that the percentage of usage of all cores decreases due to the large decrease in interrupts generated by the CPU. In the evaluations of the number of instructions, number of branches, number of load hits and load misses, the results showed that there were no differences in behavior between the different experiments.
Palabras clave : Ciência da computação
Desempenho - Avaliação
eBPF/XDP
Planos de dados programáveis
Computer science
Performance - Evaluation
Programmable data plans
CNPQ: CNPQ::CIENCIAS EXATAS E DA TERRA
Idioma: por
metadata.dc.publisher.country: Brasil
Editorial : Universidade Federal do Pampa
Sigla da Instituição: UNIPAMPA
Campus: Campus Alegrete
Citación : CAPELETTI, Ígor Ferrazza. Análise de desempenho de aplicações eBPF/XDP em planos de dados programáveis. Orientador: Marcelo Caggiani Luizelli. 2022. 83 p. Trabalho de Conclusão de Curso (Bacharel em Ciência da Computação) – Universidade Federal do Pampa, Curso de Ciência da Computação, Alegrete, 2022.
Tipo de acesso: Acesso Aberto
URI : https://repositorio.unipampa.edu.br/jspui/handle/riu/7476
Fecha de publicación : 3-ago-2022
Aparece en las colecciones: Ciência da Computação

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
Igor Ferrazza Capeletti - 2022.pdf1.39 MBAdobe PDFVisualizar/Abrir


Los ítems de DSpace están protegidos por copyright, con todos los derechos reservados, a menos que se indique lo contrario.