Netværksstakken F-Stack 2.0 er offentliggjort, og den fungerer i brugerens rum

Udgivelsen af F-Stack 2.0 er sket, som udvikler en version af netværksstakken FreeBSD til isoleret brug i brugerrummet i form af et bibliotek. Projektet er skabt af den største telekommunikationsvirksomhed i Kina, Tencent, og anvendes i dens produkter og tjenester. Koden er skrevet i C og distribueres under BSD-licensen. Der understøttes drift i Linux og FreeBSD. Projektet understøtter også versioner af Nginx 1.28 og databasen Redis 6.2.6, oversat til brug af F-Stack, som viser bedre ydeevne end de almindelige versioner, der kører oven på den systembredde netværksstak.

F-Stack gør det muligt at bruge en lokal netværksstak i applikationer, der ikke afhænger af operativsystemets netværksstak, fungerer i brugerrummet og arbejder direkte med netværksudstyret. F-Stack positioneres som en løsning, der kan øge ydeevnen af netværksanmodningsbehandlere, når den standard TCP/IP-stak i Linux-kernen bliver en flaskehals og begrænser skalering. Teoretisk set kan F-Stack nå den maksimale netværksydelse, der er mulig for det anvendte netværkskort, og i nogle situationer giver det mulighed for at øge antallet af små netværksanmodninger betydeligt.

Forøgelsen af ydeevnen opnås ved at undgå operationer som kopiering af netværkspakker, trådsplanlægning, håndtering af afbrydelser og systemopkald. For at interagere med netværkskortet, uden om operativsystemets kerneinterfacer, anvendes DPDK (Data Plane Development Kit), som udvikler et bibliotekssæt til lav-niveau arbejde med netværksadaptere. DPDK giver mulighed for at reducere overhead og holde sig inden for et minimalt antal CPU-cyklusser ved modtagelse eller afsendelse af netværkspakker.

Funktionaliteten af TCP/IP-stakken svarer til netværksstakken FreeBSD 15 og er blevet adskilt fra dette operativsystem til et uafhængigt bibliotek. Til udvikling af applikationer kan standard POSIX API (socket, epoll, kqueue) eller et eget program interface baseret på mikrotasks anvendes, hvilket forenkler oprettelsen af netværksapplikationer og muliggør at undgå kompleks logik ved asynkron behandling af forespørgsler. Det er muligt at anvende den med uændrede applikationer via LD_PRELOAD.

De mest mærkbare ændringer i den nye udgave:

  • Komponenterne i netværksstakken er opdateret til tilstand FreeBSD 15 (tidligere brugt FreeBSD 13).
  • Multitrådet tilstand (thread_mode=1) er implementeret i én proces, der supplerer den tidligere tilgængelige multiprocess tilstand.
  • Tilføjet en letvægtsdriftstilstand (primary_slim), hvor hovedprocessen kun udfører grundlæggende initialiserings- og koordineringsopgaver, mens pakkeindtag og behandling af modtagelse/overførsel (rx/tx) kun udføres af underprocesser.
  • Support for hardware acceleration er blevet tilføjet.
    TSO (TCP Segmentation Offload) til at overføre pakkesammenslåningsoperationer til netværkskortet, med mulighed for at falde tilbage til softwareimplementering. Forbedret support for TSO (TCP Segmentation Offload, overførsel til netværkskort til behandling af segmenterede pakker) for IPv6.
  • Muligheden for at ændre størrelsen på MTU (Maximum transmission unit) er blevet tilføjet, og jumbo-frames understøttes nu.
  • Mulighederne for styring af hardware acceleration ved beregning af kontrolsummer for de sendte pakker er blevet udvidet.
  • Funktionen ff_zc_recv() er blevet tilføjet for at modtage data uden mellemlagring (zero-copy). Den tilsvarende funktion ff_zc_send() er blevet omarbejdet til at sende. Optimeret og udvidet. støtte til IPv6 Funktionen ff_rss_check() er blevet forbedret.
  • Muligheden FF_KERNEL_COEXIST er blevet tilføjet for at arbejde sammen med netværksstakken i kernen.
  • Muligheden for at gemme information om trafik i pcap-dumps med nanosekunders præcision er blevet givet.
  • Nye parametre idle_loop_interval, extra_eal_args, drain_ring_size, reload_heartbeat_timeout_ms og reload_udp_idle_ms er tilføjet i config.ini.
  • Den specielle samling af nginx understøtter genindlæsning af konfiguration og opdatering af den binære fil uden at afbryde forbindelser (graceful_reload=1).

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