Bola zverejnená sieťová zásobníková F-Stack 2.0, ktorá pracuje v užívateľskom priestore

Uskutočnila sa vydanie projektu F-Stack 2.0, ktorý rozvíja edíciu sieťového zásobníka FreeBSD adaptovanú na samostatnú prácu v používateľskom priestore v podobe knižnice. Projekt vytvorila najväčšia telekomunikačná spoločnosť v Číne, Tencent, a používa sa v jej produktoch a službách. Kód je napísaný v jazyku C a rozširuje sa pod licenciou BSD. Podporuje prácu v Linuxe a FreeBSD. Projekt tiež podporuje preložené edície Nginx 1.28 a DBMS Redis 6.2.6 pre použitie s F-Stack, ktoré vykazujú výkon nad obvyklé zostavy pracujúce nad systémovým sieťovým zásobníkom.

F-Stack umožňuje aplikáciám využívať vlastný lokálny sieťový zásobník, nezávislý od sieťového zásobníka operačného systému, fungujúci v používateľskom priestore a priamo pracujúci so sieťovým zariadením. F-Stack je prezentovaný ako riešenie, ktoré zvyšuje výkon spracovateľov sieťových požiadaviek v podmienkach, kedy štandardný TCP/IP zásobník jadra Linuxu sa stáva úzkym miestom a obmedzuje škálovateľnosť. Teoreticky môže F-Stack dosiahnuť strop sieťového výkonu možného pre použité sieťové karty a v niektorých situáciách umožňuje niekoľkonásobne zvýšiť počet spracovávaných drobných sieťových požiadaviek.

Zvýšenie výkonu sa dosahuje vylúčením takých operácií, ako sú kopírovanie sieťových paketov, plánovanie prúdov, spracovanie prerušenia a volanie systémových volaní. Na interakciu so sieťovou kartou, obchádzajúc rozhrania jadra operačného systému, sa používa rámec DPDK (Data Plane Development Kit), ktorý rozvíja súbor knižníc pre nízkolevelovú prácu so sieťovými adaptérmi. DPDK umožňuje znížiť režijné náklady a vmestiť sa do minimálneho počtu CPU cyklov pri prijímaní alebo odosielaní sieťových paketov.

Funkcionalita TCP/IP stacku zodpovedá sieťovému stacku FreeBSD 15 a bola oddelená z tohto operačného systému do nezávislej knižnice. Na vývoj aplikácií je možné používať štandardné API POSIX (socket, epoll, kqueue) alebo vlastné programové rozhranie založené na mikrotokoch, ktoré zjednodušuje vytváranie sieťových aplikácií a umožňuje obísť zložitú logiku asynchrónneho spracovania požiadaviek. Je možné ho používať s nemodifikovanými aplikáciami, pričom sa načítava prostredníctvom LD_PRELOAD.

Najvýraznejšie zmeny v novom vydaní:

  • Komponenty sieťového stacku boli aktualizované na stav FreeBSD 15 (predtým sa používal FreeBSD 13).
  • Bola implementovaná viacvláknová prevádzka (thread_mode=1) v jednom procese, doplňujúca predtým dostupný viacprocesový režim.
  • Pridaný odľahčený režim prevádzky (primary_slim), pri ktorom hlavný proces vykonáva iba základné úlohy inicializácie a koordinácie práce, zatiaľ čo príjem paketov a spracovanie frontov príjmu/odosielania (rx/tx) sa vykonáva iba na strane dcérskych procesov.
  • Bola pridaná podpora mechanizmu hardvérovej akcelerácie.
    TSO (TCP Segmentation Offload) pre presun operácií zlúčenia paketov na sieťovú kartu, s možnosťou návratu na softvérovú implementáciu. Zlepšená podpora TSO (TCP Segmentation Offload, presun na sieťovú kartu spracovania segmentov paketov) pre IPv6.
  • Bola pridaná možnosť zmeny veľkosti MTU (Maximum Transmission Unit) a implementovaná podpora jumbo-krabíc.
  • Boli rozšírené možnosti správy hardvérovej akcelerácie vypočítavania kontrolných súčtov odosielaných paketov.
  • Bola pridaná funkcia ff_zc_recv() na prijímanie údajov bez medzizásobovania (zero-copy). Prepracovaná je aj podobná funkcia ff_zc_send() na odosielanie. Optimalizovaná a doplnená. podporou IPv6. funkcia ff_rss_check().
  • Bola pridaná možnosť FF_KERNEL_COEXIST na spoluprácu so sieťovým stackom jadra.
  • Bola poskytnutá možnosť uloženia informácií o prevádzke do pcap-dumpov s nanosekundovou presnosťou.
  • Do config.ini boli pridané nové parametre idle_loop_interval, extra_eal_args, drain_ring_size, reload_heartbeat_timeout_ms a reload_udp_idle_ms.
  • V špecializovanej zostave nginx bola implementovaná podpora pre opätovné načítanie konfigurácie a aktualizáciu binárneho súboru bez prerušenia spojení (graceful_reload=1).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster