Lançamento da pilha de rede F-Stack 1.13, executada no espaço do usuário

Após um ano e meio de desenvolvimento ocorreu lançamento do projeto F-Stack 1.13, desenvolvendo uma pilha de rede de alto desempenho que opera no espaço do usuário, baseada no framework DPDK e na pilha TCP/IP do FreeBSD (o F-Stack não está vinculado ao FreeBSD e considera o Linux como a plataforma primária para sua aplicação). O projeto é utilizado em diversos produtos e serviços Tencent, a maior empresa de telecomunicações da China. O código é distribuído sob licença BSD. É compatível com Linux e FreeBSD.

O F-Stack permite organizar a interação em rede em aplicações, utilizando, em vez da pilha de rede do sistema operacional, sua própria pilha de rede, que opera no espaço do usuário e trabalha diretamente com o hardware de rede. São fornecidas edições especializadas do Nginx e Redis, adaptadas para usar o F-Stack.

Para o desenvolvimento de aplicações suportado , tanto a API Posix padrão (Socket, Epoll, Kqueue), que facilita a migração de aplicações existentes para o F-Stack, quanto a própria interface de programação baseada em corrotinas (microthreads), que simplifica a criação de aplicações em rede e permite evitar lógicas complexas de processamento assíncrono. O F-Stack também oferece ferramentas para facilitar seu uso em aplicativos com arquitetura multiprocessada.

Para interação com a placa de rede, evitando interfaces do núcleo do sistema operacional, é utilizado o framework DPDK (Data Plane Development Kit), que fornece um conjunto de bibliotecas para operações de baixo nível com adaptadores de rede, interações em sistemas multicore, utilização de buffers circulares e grandes páginas de memória ("huge page"). O uso do DPDK permite receber e enviar pacotes de rede com um número mínimo de ciclos da CPU (cerca de 80 ciclos por pacote) e desenvolver componentes de alto desempenho da pilha de rede. A funcionalidade diretamente do stack TCP/IP é derivada do FreeBSD 11.1 e isolada em uma biblioteca independente do sistema operacional.

O F-Stack é posicionado como uma solução que pode ser aplicada para aumentar o desempenho dos manipuladores de solicitações de rede em situações onde o funcionamento normal da pilha TCP/IP do núcleo do Linux se torna um gargalo que limita a escalabilidade. A utilização do F-Stack oferece uma otimização significativa e permite, em algumas situações, aumentar várias vezes o número de pequenas solicitações processadas.

Lançamento da pilha de rede F-Stack 1.13, executada no espaço do usuário

Lançamento da pilha de rede F-Stack 1.13, executada no espaço do usuário

O aumento de desempenho é alcançado através da exclusão de operações como a cópia de pacotes de rede, o agendamento de threads, o tratamento de interrupções e a utilização de chamadas de sistema. O F-Stack permite alcançar o teto de desempenho de rede possível para a placa de rede utilizada. Por exemplo, soluções baseadas em F-Stack demonstraram a capacidade de processar 10 milhões de conexões simultâneas, 5 milhões de solicitações por segundo e 1 milhão de conexões por segundo.

No novo lançamento:

  • Suporte a VLAN adicionado;
  • Possibilidade de operação em contêineres isolados baseados em Docker garantida;
  • Interfaces ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd e ff_setsockopt_freebsd implementadas;
  • Adicionado o parâmetro "idle_sleep" para reduzir a carga na CPU na ausência de pacotes de entrada;
  • Suporte à construção para a arquitetura ARM64 adicionado;
  • Na versão do Nginx traduzida para F-Stack, manipuladores getpeername, getsockname e shutdown foram substituídos;
  • Transição para a nova versão DPDK 17.11.4 LTS realizada;
  • Adicionada a ferramenta traffic para exibir o tráfego atual processado por aplicativos baseados em F-Stack (semelhante ao trafshow).

Dos planos futuros foi destacado suporte a IPv6, fornecimento de API para as linguagens Python, PHP e Go, suporte à API Cyptodev (Intel QAT), uso de zerocopy ao enviar pacotes, suporte SPDK e possibilidade de execução na forma de um processo em segundo plano.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster