O fim do "imposto" da CPU: como as DPUs reescrevem a arquitetura NVMe-oF

      Rafael Barros 9 min de leitura
      O fim do "imposto" da CPU: como as DPUs reescrevem a arquitetura NVMe-oF

      Análise técnica de como as DPUs eliminam o overhead de interrupções em arquiteturas NVMe over Fabrics, permitindo storage desagregado com performance de DAS e latência determinística.

      Compartilhar:

      Você comprou um servidor com 128 núcleos, pagou uma fortuna em licenças de software por soquete e, no final do dia, descobre que 30% da sua capacidade de computação está sendo usada apenas para mover dados de um lugar para outro. Parabéns, você acabou de conhecer o "imposto" da CPU. No mundo do armazenamento de alto desempenho, especialmente com a ascensão do NVMe over Fabrics (NVMe-oF), a CPU de propósito geral (x86) se tornou o gargalo mais caro e ineficiente do data center.

      Estamos vivendo uma mudança tectônica. A ideia de que a CPU central deve gerenciar tudo — da lógica da aplicação ao handshake do TCP e à criptografia do disco — é uma relíquia arquitetônica. É aqui que entram as DPUs (Data Processing Units). Elas não são apenas "placas de rede mais espertas"; elas são a admissão de que a Lei de Moore não consegue mais acompanhar a velocidade dos nossos SSDs e redes de 400Gbps. Vamos dissecar como isso muda o jogo do storage e por que seu próximo cluster de armazenamento provavelmente não dependerá da CPU do host para quase nada.

      Resumo em 30 segundos

      • O Problema: Processar protocolos de rede (TCP/IP) e armazenamento (NVMe) em CPUs x86 consome ciclos valiosos, criando o "imposto do data center".
      • A Solução: DPUs (como NVIDIA BlueField ou AMD Pensando) isolam o host, processando todo o stack de storage no hardware dedicado.
      • O Resultado: Latência determinística, liberação de 100% da CPU do host para aplicações e viabilidade real do NVMe/TCP sem a complexidade do RDMA.

      A matemática cruel das interrupções e o colapso do x86

      Para entender por que precisamos de DPUs, precisamos olhar para o que acontece quando um pacote de dados chega ao seu servidor. Em uma arquitetura tradicional, a placa de rede (NIC) recebe o pacote e gera uma interrupção. A CPU para o que está fazendo (context switch), copia os dados da memória da placa para a memória do sistema, processa o cabeçalho TCP, verifica a integridade (checksum), descriptografa (TLS) e, finalmente, entrega o payload para a aplicação ou sistema de arquivos.

      Isso funcionava bem quando tínhamos redes de 1Gbps e HDDs girando a 7200 RPM. Hoje, com links de 100Gbps ou 200Gbps e SSDs NVMe capazes de milhões de IOPS, a CPU é bombardeada.

      💡 Dica Pro: A regra de ouro não dita da indústria é que você precisa de aproximadamente 1 núcleo de CPU x86 moderno para cada 10-15 Gbps de tráfego TCP/IP processado via software. Faça as contas para um link de 200Gbps e veja seu orçamento de computação evaporar.

      Esse fenômeno cria o que chamamos de "Noisy Neighbor" (vizinho barulhento) no nível do silício. O processamento de I/O (Entrada/Saída) compete pelos mesmos ciclos de clock, cache L3 e largura de banda de memória que seu banco de dados ou aplicação de IA. O resultado? Latência de cauda (P99) imprevisível.

      O gargalo do I/O: Visualização de como o tráfego de rede e interrupções saturam os núcleos da CPU, deixando poucos recursos para a aplicação real. Figura: O gargalo do I/O: Visualização de como o tráfego de rede e interrupções saturam os núcleos da CPU, deixando poucos recursos para a aplicação real.

      O que é uma DPU e por que ela não é apenas uma SmartNIC

      O termo "SmartNIC" foi abusado pelo marketing por anos para descrever qualquer placa de rede que pudesse fazer um offload básico de checksum. Uma DPU (Data Processing Unit) é uma besta diferente.

      Uma DPU é, essencialmente, um servidor completo dentro do seu servidor. Ela possui:

      1. Núcleos de Processamento Próprios: Geralmente ARM (como na NVIDIA BlueField) ou MIPS/P4 (como na AMD Pensando), rodando seu próprio sistema operacional (frequentemente um Linux completo).

      2. Aceleradores de Hardware: Blocos de silício dedicados para criptografia (IPsec/TLS), compressão, e o mais importante para nós: NVMe-oF.

      3. Conectividade de Alta Velocidade: Interfaces de rede de 100/200/400Gbps e pistas PCIe Gen4 ou Gen5 para conectar ao host.

      A diferença fundamental é o isolamento. Em uma SmartNIC tradicional, o driver ainda roda no host. Na DPU, o stack de armazenamento roda na placa. Para o sistema operacional do servidor (host), o armazenamento remoto aparece como se fosse um disco NVMe local. O host não sabe — e não se importa — se os dados estão vindo via TCP, RoCE ou InfiniBand. A DPU abstrai toda a complexidade da "fabric".

      Tabela comparativa: a evolução do offload

      Característica NIC Padrão SmartNIC (FPGA/ASIC básico) DPU (Data Processing Unit)
      Processamento de Protocolo CPU do Host (Software) Parcial (Offload de stateless) Total (Full Stack na DPU)
      Impacto na CPU do Host Alto (Interrupções massivas) Médio Quase Zero
      Programabilidade Nenhuma Limitada (Firmware/P4) Alta (Linux, C++, P4, DOCA)
      Isolamento de Segurança Nenhum Baixo Total (Air-gap lógico)
      Caso de Uso Principal Conectividade básica Filtragem de pacotes simples Storage definido por software, Zero Trust

      NVMe/TCP: a redenção através do hardware

      Durante anos, a batalha do NVMe over Fabrics foi travada entre a simplicidade do TCP e a performance do RDMA (RoCE v2).

      • RoCE (RDMA over Converged Ethernet): Oferece latência ultrabaixa e bypass de CPU, mas exige uma rede "Lossless" (sem perda de pacotes), configurada com PFC (Priority Flow Control) e ECN. É um pesadelo para gerenciar em escala. Um switch mal configurado pode derrubar o cluster.

      • NVMe/TCP: Roda em qualquer rede Ethernet padrão. É robusto e escalável. O problema? O overhead do TCP na CPU é brutal. O cálculo de CRC e a remontagem de pacotes matam a performance.

      A DPU resolve esse dilema. Ela implementa o stack NVMe/TCP em hardware. A DPU termina a conexão TCP, verifica os CRCs, remonta os dados e os escreve diretamente na memória do host via DMA (Direct Memory Access).

      ⚠️ Perigo: Tentar rodar NVMe/TCP de alta performance (100Gbps+) sem offload de hardware é pedir para transformar seus servidores de aplicação em aquecedores glorificados. Você verá latências de disco flutuando violentamente dependendo da carga da CPU.

      Com a DPU, o NVMe/TCP atinge paridade de performance com o RoCE, mas mantendo a simplicidade da infraestrutura de rede Ethernet padrão. Você não precisa mais de switches caros com buffers profundos ou configurações esotéricas de QoS.

      Comparativo de Latência de Cauda: A instabilidade do processamento via software versus a consistência determinística do offload via DPU. Figura: Comparativo de Latência de Cauda: A instabilidade do processamento via software versus a consistência determinística do offload via DPU.

      O futuro da composabilidade e o papel do CXL

      Se olharmos um pouco além, a DPU é a peça chave para a infraestrutura composável. Com a chegada do CXL (Compute Express Link) — um padrão de interconexão de alta velocidade que mantém a coerência de cache entre CPU e dispositivos —, a distinção entre "memória local" e "memória remota" começa a desaparecer.

      No futuro próximo, as DPUs não apenas apresentarão volumes de disco, mas também faixas de memória. Imagine um chassi cheio de RAM e SSDs gerenciado por DPUs, entregando recursos sob demanda para servidores de computação via CXL sobre fibra. O servidor monolítico, onde você compra CPU, RAM e Storage em uma caixa fechada, está com os dias contados. A DPU é o controlador de tráfego dessa nova arquitetura desagregada.

      O veredito do arquiteto

      Não saia correndo para colocar DPUs em servidores de arquivos simples ou em nós que mal saturam um link de 10Gbps; a conta não fecha. A DPU brilha onde a densidade de I/O é crítica: hypervisors de nuvem, nós de banco de dados de alta performance e clusters de armazenamento definido por software (SDS) como Ceph ou MinIO.

      A realidade é que o modelo centrado na CPU x86 atingiu um muro de escalabilidade. Continuar jogando núcleos de processador geral em problemas de infraestrutura de I/O é financeiramente irresponsável. As DPUs reescrevem essa equação, permitindo que você pague pela CPU para rodar sua aplicação, não para mover bits. Se você está desenhando a próxima geração do seu data center privado ou avaliando instâncias de nuvem (como as baseadas em AWS Nitro), a presença de offload dedicado de storage não é mais um luxo, é um requisito de arquitetura.

      Referências & Leitura Complementar

      • NVM Express Base Specification 2.0: Documentação oficial sobre os transportes NVMe, incluindo TCP e RDMA.

      • NVIDIA DOCA SDK Documentation: Detalhes técnicos sobre como a arquitetura BlueField realiza o offload de NVMe SNAP (Software-defined Network Accelerated Processing).

      • SNIA (Storage Networking Industry Association): Whitepapers sobre a eficiência energética e de performance do offload de armazenamento.

      • RFC 9304: Especificação técnica do protocolo NVMe over TCP.

      Perguntas Frequentes (FAQ)

      Qual a diferença real entre uma SmartNIC e uma DPU para storage? Enquanto SmartNICs realizam offloads parciais de rede (como checksum ou filtragem básica), as DPUs possuem núcleos programáveis completos (geralmente ARM) e memória própria. Elas rodam todo o sistema operacional e o stack NVMe-oF internamente, isolando completamente o host do processamento de I/O e apresentando o armazenamento remoto como se fosse um dispositivo local.
      O NVMe/TCP com DPU consegue competir com RoCE v2? Sim. O grande gargalo do NVMe/TCP sempre foi o overhead de CPU para processar o protocolo. Com o processamento do TCP descarregado nos aceleradores da DPU, a latência e o consumo de recursos se tornam comparáveis ao RDMA (RoCE), mas com a vantagem de usar switches Ethernet padrão sem as configurações complexas de Lossless Network.
      Preciso reescrever minhas aplicações para usar uma DPU? Geralmente não. A beleza da arquitetura de DPU moderna é que ela expõe o armazenamento para o sistema operacional do host como um dispositivo de bloco NVMe padrão (via PCIe). Sua aplicação ou banco de dados vê um "disco local" e interage com ele normalmente, sem saber que toda a mágica de rede e virtualização está acontecendo na placa.
      #DPU #NVMe-oF #Storage Disaggregation #SmartNIC #PCIe Bottlenecks #BlueField #Latency Optimization
      Rafael Barros
      Assinatura Técnica

      Rafael Barros

      Arquiteto de Cloud Storage

      "Desenho arquiteturas de object storage escaláveis e guiadas por API. Meu foco é performance máxima sem deixar o orçamento sangrar com taxas de egress ocultas."