Use este identificador para citar ou linkar para este item: https://repositorio.ufms.br/handle/123456789/9744
Tipo: Tese
Título: Scaling Stateful Network Services on Multicore Architectures
Autor(es): FABRICIO BARBOSA DE CARVALHO
Primeiro orientador: Ronaldo Alves Ferreira
Resumo: Nos últimos anos, as velocidades de rede aumentaram enquanto as velocidades de CPU se estabilizaram, tornando as pilhas de rede baseadas em kernel cada vez mais impraticáveis, particularmente para servidores multicore em datacenters. Consequentemente, pilhas de rede de sistemas de kernel-bypass e aplicações multicore se tornaram necessárias para acompanhar redes de datacenter mais rápidas. Um grande número de aplicações ainda requer TCP para interoperabilidade com aplicações legadas. No entanto, o processamento TCP consome muitos recursos em comparação com aplicações em escala de microssegundos, e seu estado por conexão complica o escalonamento em arquiteturas multicore. A interação entre a pilha de rede e o escalonamento de aplicações, seja em trabalhadores compartilhados ou não (por exemplo, núcleos), impacta fortemente o desempenho ao afetar o uso do cache, a eficiência do pipeline da CPU e os padrões de acesso à memória. Dadas as demandas de redes de alta velocidade, otimizar essas arquiteturas é essencial, mas muitos sistemas existentes falham em abordar o desempenho do TCP e suas interações com a aplicação em condições do mundo real. Um dos objetivos desta tese é investigar o escalonamento efetivo de uma pilha TCP juntamente com aplicações em arquiteturas multicore, enfatizando as compensações envolvidas na alocação de trabalhadores para processamento TCP e de aplicações. Esta tese analisa com base em princípios a relação entre um protocolo de rede com estado e garantias fortes para escalonamento de tal pilha com aplicações multicore. Para permitir comparações justas, projetamos e implementamos o Demieagle, um framework de benchmark que inclui (i) uma pilha TCP flexível, com kernel-bypass e em escala de microssegundos que escalona o processamento de rede e as solicitações de aplicações com diferentes arquiteturas multicore e (ii) um conjunto de benchmark com cargas de trabalho em uma variedade de características que enfatizam diferentes compensações no escalonamento multicore. O Demieagle permite a execução de experimentos comparáveis para descobrir as compensações de diferentes políticas e arquiteturas de escalonamento multicore; assim, orientando os programadores de aplicações em direção a uma política de escalonamento ideal para sua carga de trabalho. Nesta tese, também abordamos a complexidade do dimensionamento de funções de rede. A Virtualização de Funções de Rede (NFV) promete melhor utilização de recursos computacionais ao dimensionar dinamicamente os recursos sob demanda. No entanto, a maioria das funções de rede são com estados e exigem atualizações de estado por pacote. Durante uma operação de dimensionamento, os trabalhadores precisam sincronizar o acesso a um estado compartilhado para evitar condições de corrida e garantir que as funções de rede processem os pacotes na ordem de chegada. Infelizmente, a abordagem clássica para controlar o acesso simultâneo a um estado compartilhado com locks não é escalável para os requisitos de taxa de transferência e latência atuais. Para abordar esses desafios, projetamos, implementamos e avaliamos o Dyssect, um sistema que permite o dimensionamento dinâmico de funções de rede com estados ao desagregar seus estados. Ao coordenar cuidadosamente as ações entre os trabalhadores e um controlador central, o Dyssect migra fragmentos e fluxos entre os trabalhadores para balanceamento de carga ou priorização de tráfego sem usar locks ou reordenar pacotes. Além disso, a desagregação de estado do Dyssect permite o offloading de funções de rede com estado para NICs programáveis ​​e torna mais fácil explorar compensações de hardware-software que se adaptam melhor a funções de rede específicas e cargas de tráfego. Nossa avaliação experimental mostra que o Dyssect reduz a latência de cauda em até 32,04% e aumenta o vazão em até 19,36% em comparação com soluções estado da arte.
Abstract: In recent years, network speeds have surged while CPU speeds have plateaued, making kernel-based networking stacks increasingly impractical, particularly for multicore servers in datacenters. Consequently, kernel-bypass networking stacks and multicore applications have become necessary to keep up with faster datacenter networks. A large number of applications still require TCP for interoperability with legacy applications. However, TCP processing is resource-intensive compared to microsecond-scale applications, and its per-connection state complicates scheduling across multicore architectures. The interaction between network stack and application scheduling, whether on shared or different workers (e.g., cores), strongly impacts performance by affecting cache usage, CPU pipeline efficiency, and memory access patterns. Given the demands of high-speed networks, optimizing these architectures is essential, yet many existing systems fail to address the performance of TCP and its interactions with the application under real-world conditions. One of the goals of this thesis is to investigate the effective scheduling of a TCP stack alongside applications on multicore architectures, emphasizing the trade-offs involved in allocating workers for both TCP and application processing. This thesis takes a principled look at the relationship between a stateful network protocol with strong guarantees for scheduling such a stack with multicore applications. To allow fair comparisons, we design and implement Demieagle, a benchmark framework that includes (i) a flexible, kernel-bypassing, microsecond-scale TCP stack that schedules network processing and application requests with different multicore architectures and (ii) a benchmark suite with workloads across a range of characteristics that stress different trade-offs in multicore scheduling. Demieagle allows the execution of "apples-to-apples" experiments to uncover the trade-offs of different multicore scheduling policies and architectures; thus, guiding application programmers toward an ideal scheduling policy for their workload. In this thesis, we also address the complexity of scaling network functions. Network Function Virtualization (NFV) promises better utilization of computational resources by dynamically scaling resources on demand. However, most network functions are stateful and require per-packet state updates. During a scaling operation, workers need to synchronize access to a shared state to avoid race conditions and to guarantee that network functions process packets in arrival order. Unfortunately, the classic approach to control concurrent access to a shared state with locks does not scale to today's throughput and latency requirements. To address these challenges, we design, implement, and evaluate Dyssect, a system that enables dynamic scaling of stateful network functions by disaggregating their states. By carefully coordinating actions between workers and a central controller, Dyssect migrates shards and flows between workers for load balancing or traffic prioritization without using locks or reordering packets. Also, Dyssect's state disaggregation allows the offloading of stateful network functions to programmable NICs and makes it easier to explore hardware-software trade-offs that better suit specific network functions and traffic loads. Our experimental evaluation shows that Dyssect reduces tail latency up to 32.04% and increases throughput up to 19.36% compared to state-of-the-art competing solutions.
Palavras-chave: Scheduling
Stateful Network Functions
Service Chain
SmartNIC
País: Brasil
Editor: Fundação Universidade Federal de Mato Grosso do Sul
Sigla da Instituição: UFMS
Tipo de acesso: Acesso Aberto
URI: https://repositorio.ufms.br/handle/123456789/9744
Data do documento: 2024
Aparece nas coleções:Programa de Pós-graduação em Ciência da Computação

Arquivos associados a este item:
Arquivo TamanhoFormato 
THESIS_-_Fabricio_Carvalho.pdf1,87 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.