Bola vydaná verzia F-Stack 1.24, revízia sieťového stacku FreeBSD pre používateľský priestor, ktorá využíva framework DPDK pre maximálny výkon. Projekt vytvorila spoločnosť Tencent, najväčšia čínska telekomunikačná spoločnosť, a používa ho v svojich produktoch a službách. Kód je napísaný v jazyku C a distribuovaný pod licenciou BSD. Podporuje... Linux a FreeBSD.
F-Stack umožňuje aplikáciám používať vlastný lokálny sieťový zásobník, nezávislý od sieťového zásobníka operačného systému, fungovať v používateľskom priestore a priamo interagovať so sieťovými zariadeniami. F-Stack je určený na zvýšenie výkonu obsluhy sieťových požiadaviek v podmienkach, kde štandard... TCP/IP zásobník jadra Linux stáva sa úzkym hrdlom a obmedzuje škálovanie – v niektorých situáciách projekt umožňuje výrazné zvýšenie počtu spracovaných malých sieťových požiadaviek. Teoreticky F-Stack umožňuje dosiahnuť strop sieťového výkonu pre použitú sieťovú kartu.
Zlepšenie výkonu sa dosahuje odstránením operácií, ako je kopírovanie sieťových paketov, plánovanie vlákien, spracovanie prerušení a používanie 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ý vyvíja sadu knižníc pre nízkoúrovňovú prácu so sieťovými adaptérmi. DPDK umožňuje znížiť režijné náklady a splniť minimálny počet cyklov CPU pri prijímaní alebo odosielaní sieťových paketov.
funkčnosť TCP/IP Stack zodpovedá sieťovému stacku FreeBSD 13 a bol od tohto operačného systému oddelený do nezávislej knižnice. Vývoj aplikácií môže využívať štandardné POSIX API (socket, epoll, kqueue) alebo proprietárne API založené na mikrovláknach, ktoré zjednodušuje vytváranie sieťových aplikácií a eliminuje potrebu zložitej asynchrónnej logiky spracovania požiadaviek.
Projekt podporuje edície multiprotokolu konvertované pomocou F-Stacku. server Systémy riadenia databáz Nginx 1.25.2 a Redis 6.2.6, ktoré preukazujú lepší výkon ako štandardné zostavenia bežiace na sieťovom zásobníku systému.
Najvýraznejšie zmeny v novom vydaní:
- Konfiguračný súbor config.ini poskytuje možnosť voľby medzi použitím KNI (Kernel NIC Interface) a virtio_user ako prenosu na prenos paketov medzi jadrom a aplikáciou na spracovanie paketov založenou na DPDK. Pridaná možnosť použiť ratelimit pre KNI.
- Pridaná podpora pre povolenie nastavenia sieťového zásobníka "net.add_addr_allfibs=1" na pridanie adries do všetkých smerovacích tabuliek.
- Pridané rozhranie API ff_get_traffic na príjem návštevnosti, napríklad na implementáciu QoS (Quality of Service).
- Pridané funkcie pthread_create a pthread_join, ktoré pripomínajú podobné funkcie z POSIX.
- Pridané rozhranie API ff_dpdk_raw_packet_send pre aplikácie na odosielanie nespracovaných paketov priamo cez DPDK namiesto cez soket.
- Implementovaná podpora automatickej konfigurácie VLAN, smerovania a smerovania politík.
- Prechod na verziu DPDK 22.11.6 LTS bol vykonaný.
- Implementácia Nginx nad F-Stack pridala podporu pre modul streamu.
Zdroj: opennet.ru
