Выпуск сетевого стека F-Stack 1.13, выполняемого в пространстве пользователя

Po enain letih razvoja je potekala izdanje projekta F-Stack 1.13, razvijajoč učinkovit omrežni stek, ki deluje v uporabniškem prostoru in temelji na okvirju DPDK in TCP/IP steku FreeBSD (F-Stack ni vezan na FreeBSD in kot primarno platformo za uporabo obravnava Linux). Projekt se uporablja v različnih izdelkih in storitvah Tencent, največje telekomunikacijske podjetje na Kitajskem. Koda se distribuira je pod licenco BSD. Podprta je tudi uporaba v Linuxu in FreeBSD.

F-Stack omogoča organizacijo omrežne interakcije v aplikacijah, pri čemer namesto omrežnega steka operacijskega sistema uporablja svoj lasten omrežni stek, ki deluje v uporabniškem prostoru in neposredno komunicira z omrežno opremo. Na voljo so specializirane različice Nginx in Redis, predelane za uporabo F-Stack.

Za razvoj aplikacij podprt je na voljo tako standardni Posix API (Socket, Epoll, Kqueue), ki poenostavi prenos obstoječih aplikacij na F-Stack, kot tudi lastni programski vmesnik, temelječ na sodelujočih programih (mikropotokih), ki poenostavi ustvarjanje omrežnih aplikacij in omogoča izogibanje zapleteni logiki asinhrone obdelave zahtev. F-Stack prav tako zagotavlja sredstva za poenostavitev uporabe v aplikacijah z večprocesno arhitekturo.

Za interakcijo z omrežno kartico, mimo vmesnikov jedra operacijskega sistema, se uporablja okvir DPDK (Data Plane Development Kit), ki zagotavlja nabor knjižnic za nizkotno delo z omrežnimi adapterji, interakcijo v večjedrnih sistemih, uporabo obročastih pomnilnikov in velikih strani pomnilnika ("huge page"). Uporaba DPDK omogoča sprejemanje in pošiljanje omrežnih paketov z minimalnim številom ciklov CPU (približno 80 ciklov na paket) ter razvijanje visoko zmogljivih komponent omrežnega steka. Funkcionalnost TCP/IP steka je neposredno prevzeta iz FreeBSD 11.1 in je ločena v neodvisno knjižnico operacijskega sistema.

F-Stack se pozicionira kao rešenje koje se može primeniti za poboljšanje performansi obrada mrežnih zahteva u situacijama kada rad uobičajenog TCP/IP steka jezgra Linux postaje usko grlo i ograničava skalabilnost. Pri tome, primena F-Stack-a donosi značajnu optimizaciju i omogućava u nekim situacijama povećanje broja obrađenih manjih zahteva nekoliko puta.

Выпуск сетевого стека F-Stack 1.13, выполняемого в пространстве пользователя

Выпуск сетевого стека F-Stack 1.13, выполняемого в пространстве пользователя

Povećanje performansi postiže se isključivanjem operacija kao što su kopiranje mrežnih paketa, planiranje niti, obrada prekida i korišćenje sistemskih poziva. F-Stack omogućava dostizanje plafona mrežne performanse koji je moguć za korišćenu mrežnu kartu. Na primer, rešenja zasnovana na F-Stack-u pokazala su mogućnost obrade 10 miliona paralelnih konekcija, 5 miliona zahteva u sekundi i 1 milion konekcija u sekundi.

U novom izdanju:

  • Dodata podrška za VLAN;
  • Obezbeđena mogućnost rada u izolovanim kontejnerima na bazi Dockera;
  • Implementirani su interfejsi ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd i ff_setsockopt_freebsd;
  • Dodata je opcija "idle_sleep" za smanjenje opterećenja procesora u situaciji kada nema dolaznih paketa.
  • Dodata podrška za izgradnju za arhitekturu ARM64;
  • U prevedenoj verziji Nginx na F-Stack-u zamenjeni su obradi getpeername, getsockname i shutdown;
  • Obavljen je prelazak na novu verziju DPDK 17.11.4 LTS;
  • U sastav je dodata utilita traffic za prikaz trenutnog saobraćaja koji obrade aplikacije zasnovane na F-Stack-u (podseća na trafshow).

Od planova za budućnost se opozarja podrška za IPv6, obezbeđivanje API-a za jezike Python, PHP i Go, podrška za API Cyptodev (Intel QAT), korišćenje zerocopy prilikom slanja paketa, podrška SPDK i mogućnost pokretanja u obliku pozadinskog procesa.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster