Izdanje mrežnog steka F-Stack 1.13, koji se izvršava u prostoru korisnika

Nakon godinu i pol dana razvoja održan je izdavanje projekta F-Stack 1.13, razvijajući visoko-performantni mrežni stog koji radi u korisničkom prostoru, temeljen na okviru DPDK i TCP/IP stogu FreeBSD (F-Stack nije vezan uz FreeBSD i kao primarnu platformu za primjenu razmatra Linux). Projekt se koristi u raznim proizvodima i uslugama Tencent, najveće telekomunikacijske kompanije u Kini. Kod distribuira se je licenciran pod BSD licencom. Podržana je radna funkcija u Linuxu i FreeBSD.

F-Stack omogućuje organiziranje mrežne komunikacije u aplikacijama, koristeći vlastiti mrežni stog umjesto mrežnog stoga operativnog sustava, koji funkcionira u korisničkom prostoru i izravno komunicira s mrežnom opremom. Pružene su specijalizirane verzije Nginx i Redis, prevedene za korištenje s F-Stack.

Za razvoj aplikacija podržava koristi se standardni Posix API (Socket, Epoll, Kqueue), koji olakšava prijelaz na F-Stack postojeće aplikacije, kao i vlastiti programski sučelje zasnovano na kooperativnim nitima (mikro- niti), koje olakšava stvaranje mrežnih aplikacija i omogućuje izbjegavanje složene logike asinkronog rukovanja zahtjevima. F-Stack također pruža alate za pojednostavljenje primjene u aplikacijama s višepostupnom arhitekturom.

Za interakciju s mrežnom karticom, mimo sučelja jezgre operativnog sustava, koristi se okvir DPDK (Data Plane Development Kit), koji pruža set biblioteka za nisko-level rad s mrežnim adapterima, interakciju u višekernel sistemima, korištenje ring buffer-a i velikih stranica memorije („huge page“). Korištenje DPDK omogućuje prihvaćanje i slanje mrežnih paketa s minimalnim brojem CPU ciklusa (oko 80 ciklusa po paketu) i razvoj visoko-performantnih komponenti mrežnog stoga. Funkcionalnost TCP/IP stoga je preuzeta iz FreeBSD 11.1 i izdvojena u neovisnu od operativnog sustava biblioteku.

F-Stack se pozicionira kao rješenje koje se može primijeniti za poboljšanje performansi obrada mrežnih zahtjeva u uvjetima kada rad standardnog TCP/IP stoga jezgre Linux postaje usko grlo i ograničava skalabilnost. Upotreba F-Stack-a pruža značajnu optimizaciju i u nekim situacijama omogućuje višestruko povećanje broja obrađenih malih zahtjeva.

Izdanje mrežnog steka F-Stack 1.13, koji se izvršava u prostoru korisnika

Izdanje mrežnog steka F-Stack 1.13, koji se izvršava u prostoru korisnika

Povećanje performansi postiže se isključivanjem operacija kao što su kopiranje mrežnih paketa, planiranje niti, obrada prekida i korištenje sistemskih poziva. F-Stack omogućuje postizanje vrhnja mrežne performanse koja je moguća za korištenu mrežnu karticu. Na primjer, rješenja temeljena na F-Stack-u pokazala su mogućnost obrade od 10 milijuna paralelnih veza, 5 milijuna zahtjeva u sekundi i 1 milijun veza u sekundi.

U novom izdanju:

  • Dodana podrška za VLAN;
  • Osigurana mogućnost rada u izoliranim kontejnerima temeljenim na Dockeru;
  • Implementirani su interfejsi ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd i ff_setsockopt_freebsd;
  • Dodana je opcija ‘idle_sleep’ za smanjivanje opterećenja CPU-a u situacijama kada nema dolaznih paketa.
  • Dodana podrška za izgradnju za arhitekturu ARM64;
  • U prevedenoj verziji Nginx na F-Stack zamijenjeni su obrada getpeername, getsockname i shutdown;
  • Ostvaren je prijelaz na novu verziju DPDK 17.11.4 LTS;
  • Uključena je alatka traffic za prikaz trenutnog prometa koji obrađuju aplikacije temeljene na F-Stack-u (podsjeća na trafshow).

Iz planova za budućnost ističe se podrška za IPv6, pružanje API-ja za jezike Python, PHP i Go, podrška za API Cyptodev (Intel QAT), korištenje zerocopy pri slanju paketa, podrška za SPDK i mogućnost pokretanja u obliku pozadinskog procesa.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster