A F-Stack 1.13 hálózati verem kiadása, amely felhasználói térben fut.

Másfél év fejlesztés után megtörtént a projekt kiadása F-Stack 1.13, amely egy felhasználói térben működő, magasan teljesítő hálózati verem, amely keretrendszeren alapul DPDK és a FreeBSD TCP/IP veremén (az F-Stack nem kötődik a FreeBSD-hez és a Linux-ot tekinti elsődleges alkalmazási platformnak). A projekt különböző termékekben és szolgáltatásokban használatos Tencent, Kína legnagyobb távközlési vállalatánál. A kód terjesztésre kerül BSD licenc alatt áll. Támogatja a Linux és FreeBSD környezetet.

Az F-Stack lehetővé teszi a hálózati interakciók megszervezését az alkalmazásokban, a rendszermag hálózati veremének használata helyett saját hálózati verem alkalmazásával, amely felhasználói térben működik és közvetlenül kommunikál a hálózati eszközökkel. Elérhetőek specializált Nginx és Redis kiadások, amelyek az F-Stack használatára lettek optimalizálva.

Az alkalmazások fejlesztéséhez támogatott elérhető a szabványos Posix API (Socket, Epoll, Kqueue), amely megkönnyíti a meglévő alkalmazások F-Stack-re történő átállítását, valamint saját programozási interfész, amely a koroutines (mikroszálak) alapjaira épül, megkönnyítve a hálózati alkalmazások készítését és elkerülve a bonyolult aszinkron kérésfeldolgozási logikát. Az F-Stack emellett eszközöket is biztosít a többszálas architektúrájú alkalmazások egyszerűsítéséhez.

A hálózati kártyával való interakcióhoz, megkerülve a rendszermag interfészeit, a keretrendszert DPDK (Data Plane Development Kit) használ, amely könyvtárkészletet biztosít az alacsony szintű munkához a hálózati adapterekkel, interakcióhoz a többmagos rendszerekben, gyűrűs pufferek aktiválásához és nagy memóriapage-ek („huge page”) kezeléséhez. A DPDK használatával lehetővé válik a hálózati csomagok vételének és küldésének végrehajtása minimális CPU ciklusszámmal (körülbelül 80 ciklus csomagonként), valamint a magas teljesítményű hálózati verem komponensek fejlesztése. A TCP/IP verem funkcionalitása közvetlenül a FreeBSD 11.1-ből származik és egy operációs rendszertől független könyvtárba van kiemelve.

Az F-Stack olyan megoldásként van pozicionálva, amely alkalmazható a hálózati kérések feldolgozójának teljesítményének növelésére, amikor a Linux kernel beépített TCP/IP stack-je szűk keresztmetszetként működik és korlátozza a skálázhatóságot. Az F-Stack alkalmazása jelentős optimalizálást nyújt, és bizonyos helyzetekben többszörösére növelheti a feldolgozható apró kérések számát.

A F-Stack 1.13 hálózati verem kiadása, amely felhasználói térben fut.

A F-Stack 1.13 hálózati verem kiadása, amely felhasználói térben fut.

A teljesítménynövekedés a hálózati csomagok másolásának, a száltervezésnek, a megszakításkezelésnek és a rendszerhívások alkalmazásának mellőzésével érhető el. Az F-Stack lehetővé teszi a hálózati teljesítmény plafonjának elérését, amely elérhető a használt hálózati kártyához. Például az F-Stack alapú megoldások 10 millió párhuzamos kapcsolat, 5 millió kérés másodpercenként és 1 millió kapcsolat másodpercenkénti feldolgozásának lehetőségét mutatták be.

Az új kiadásban:

  • VLAN támogatás hozzáadva;
  • Docker alapú elkülönített konténerek használatának lehetősége biztosítva;
  • ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd és ff_setsockopt_freebsd interfészek megvalósítva;
  • Hozzáadva az "idle_sleep" paraméter a CPU terhelésének csökkentésére bejövő csomagok hiányában.
  • ARM64 architektúrára vonatkozó fordítási támogatás hozzáadva;
  • Az F-Stack-re átültetett Nginx kiadásában a getpeername, getsockname és shutdown kezelők lecserélve;
  • Átállás a DPDK 17.11.4 LTS új verziójára;
  • Felszerelésbe egy segédprogram került be; traffic a F-Stack alapú alkalmazások által feldolgozott aktuális forgalom megjelenítésére (hasonlít a trafshow-ra).

A jövőbeni tervek között szerepel megjegyzendő IPv6 támogatás, API biztosítása Python, PHP és Go nyelveken, Cyptodev API támogatás (Intel QAT), zerocopy használata csomagok küldésénél, támogatás SPDK és a háttérfolyamatként történő futtatás lehetősége.

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