Udgivelse af netværksstakken F-Stack 1.13, der udføres i brugerens rum

Efter halvandet års udvikling tog sted udgivelsen af projektet F-Stack 1.13, der udvikler et højtydende netværksstak, der arbejder i brugerens rum og er baseret på rammeværket DPDK og TCP/IP-stakken fra FreeBSD (F-Stack er ikke bundet til FreeBSD og betragter Linux som den primære platform til anvendelse). Projektet anvendes i forskellige produkter og tjenester Tencent, det største telekommunikationsselskab i Kina. Koden distribueres er under BSD-licens. Det understøtter drift i Linux og FreeBSD.

F-Stack giver mulighed for at organisere netværkssamarbejde i applikationer ved at anvende sin egen netværksstak i stedet for operativsystemets netværksstak, som fungerer i brugerens rum og arbejder direkte med netværksudstyret. Der tilbydes specialiserede versioner af Nginx og Redis, der er oversat til brug af F-Stack.

Til udvikling af applikationer understøttes både som det standardiserede Posix API (Socket, Epoll, Kqueue), der gør det lettere at overføre eksisterende applikationer til F-Stack, og også et eget programmeringsinterface baseret på samarbejdstråde (mikrotråde), som forenkler oprettelsen af netværksapplikationer og muliggør at undgå kompleks logik til asynkron behandling af anmodninger. F-Stack tilbyder også værktøjer til at lette anvendelsen i applikationer med en multiprocessarkitektur.

For at interagere med netværkskortet uden om operativsystemets kernegrænseflader anvendes rammeværket DPDK (Data Plane Development Kit), som tilbyder et sæt biblioteker til lavniveau-arbejde med netværksadaptere, interaktion i flerkerne-systemer, brug af ringbuffere og store hukommelsessider (“huge page”). Brug af DPDK muliggør modtagelse og afsendelse af netværkspakker med minimal CPU-cyklusser (ca. 80 cyklusser pr. pakke) og udvikling af højtydende komponenter til netværksstakken. Funktionaliteten i TCP/IP-stakken er direkte overtaget fra FreeBSD 11.1 og udskilt i et operativsystem-uafhængigt bibliotek.

F-Stack positioneres som en løsning, der kan anvendes til at forbedre præstationen af netværksanmodningsbehandlere, når det standard TCP/IP-stak i Linux-kernen bliver en flaskehals og begrænser skaleringen. Anvendelsen af F-Stack giver en mærkbar optimering og gør det i visse situationer muligt at øge antallet af behandlede små anmodninger mange gange.

Udgivelse af netværksstakken F-Stack 1.13, der udføres i brugerens rum

Udgivelse af netværksstakken F-Stack 1.13, der udføres i brugerens rum

Ydelsesforøgelsen opnås ved at eliminere operationer som kopiering af netværkspakker, trådplanlægning, afbrydelsesbehandling og anvendelse af systemopkald. F-Stack gør det muligt at nå den maksimale netværksydelse, der er mulig for det anvendte netværkskort. For eksempel har løsninger baseret på F-Stack vist sig at håndtere 10 millioner parallelle forbindelser, 5 millioner anmodninger pr. sekund og 1 million forbindelser pr. sekund.

I den nye version:

  • Understøttelse af VLAN er tilføjet;
  • Mulighed for at arbejde i isolerede containere baseret på Docker er sikret;
  • Implementering af grænsefladerne ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd og ff_setsockopt_freebsd;
  • Tilføjet parameteren "idle_sleep" for at reducere CPU-belastningen i situationer uden indkommende pakker;
  • Understøttelse af compilation for ARM64-arkitektur er tilføjet;
  • I den oversatte version af Nginx til F-Stack er der erstattet getpeername, getsockname og shutdown behandlere;
  • Overgangen til den nye version DPDK 17.11.4 LTS er gennemført;
  • Værktøjet er tilføjet traffic til at vise den aktuelle trafik, der behandles af applikationer baseret på F-Stack (minder om trafshow).

Fremtidige planer inkluderer bemærket understøttelse af IPv6, levering af API til sprog som Python, PHP og Go, understøttelse af API Cyptodev (Intel QAT), brug af zerocopy ved afsendelse af pakker, understøttelse SPDK og mulighed for at køre i form af en baggrundsproces.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster