Megjelent az F-Stack 1.24 felhasználói térben működő hálózati verem

Megjelent az F-Stack 1.24 hálózati verem, amely a FreeBSD hálózati veremének kiadása, és felhasználói térben működik, DPDK keretrendszert alkalmazva a maximális teljesítmény elérése érdekében. A projektet Kína legnagyobb távközlési cége, a Tencent hozta létre, és termékeiben és szolgáltatásaiban használják. A kód C nyelven íródott és BSD licenc alatt terjesztik. Linux és FreeBSD alatt is működik.

Az F-Stack lehetővé teszi, hogy az alkalmazások saját helyi hálózati veremüket használják, amely független az operációs rendszer hálózati veremétől, felhasználói térben működik és közvetlenül az hálózati berendezésekkel kommunikál. Az F-Stack megoldásként van pozicionálva, amely növeli a hálózati kérések feldolgozási teljesítményét, amikor a szokásos Linux kernel TCP/IP verem szűk keresztmetszetet képez és korlátozza a skálázhatóságot — bizonyos helyzetekben a projekt lehetővé teszi a feldolgozott kis hálózati kérések számának többszörös növelését. Elméletileg az F-Stack elérheti a hálózati teljesítmény plafonját, amely elérhető a használt hálózati kártyához.

A teljesítmény növelése olyan műveletek kizárásával valósul meg, mint a hálózati csomagok másolása, szálak ütemezése, megszakítások kezelése és rendszerhívások alkalmazása. A hálózati kártyával való interakcióhoz, megkerülve az operációs rendszer kernelének interfészeit, a DPDK (Data Plane Development Kit) keretrendszert alkalmazzák, amely alacsony szintű munkát végez a hálózati adapterekkel. A DPDK lehetőséget biztosít a költségek csökkentésére és a CPU ciklusok minimalizálására a hálózati csomagok fogadása vagy küldése során.

A TCP/IP verem funkcionalitása megfelel a FreeBSD 13 hálózati veremének, és független könyvtárként kiváltották az operációs rendszerből. Alkalmazások fejlesztéséhez a standard POSIX API-t (socket, epoll, kqueue) vagy saját, mikroszálakra alapozott programozási interfészt használhatunk, amely egyszerűsíti a hálózati alkalmazások létrehozását, és lehetővé teszi a bonyolult aszinkron kérésfeldolgozás logikájának elkerülését.

A projekt támogatja a többprotokollos F-Stack használatára fordított kiadásokat. a szerver Nginx 1.25.2 és Redis 6.2.6 adatbázis, amelyek a normál összeállításokhoz képest magasabb teljesítményt nyújtanak a rendszerhálózati verem felett.

A legfontosabb változások az új kiadásban:

  • A config.ini konfigurációs fájlban lehetőség nyílik a KNI (Kernel NIC Interface) és a virtio_user közötti választásra a csomagok átviteléhez a kernel és a DPDK alapú csomagfeldolgozó alkalmazás között. A KNI számára ratelimit használatát is lehetővé tették.
  • Hozzáadásra került a hálózati verem beállításának "net.add_addr_allfibs=1" engedélyezése az összes routing táblázatba való cím hozzáadásához.
  • Hozzáadva az ff_get_traffic API, amely a forgalom lekérdezésére szolgál, például a QoS (Quality of Service) megvalósításához.
  • Hozzáadva a pthread_create és pthread_join funkciók, amelyek hasonlítanak a POSIX hasonló funkcióihoz.
  • Hozzáadva az ff_dpdk_raw_packet_send API, amely lehetővé teszi a natív csomagok közvetlen küldését DPDK-n keresztül, nem socketen keresztül.
  • Automatikus VLAN konfiguráció, routolás és policy routing támogatás megvalósítása.
  • Átállás a DPDK 22.11.6 LTS verziójára.
  • Az F-Stack feletti Nginx megvalósításában hozzáadták a stream modul támogatását.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster