Lëshimi i stakut të rrjetit F-Stack 1.13, i realizuar në hapësirën e përdoruesit

Pasë një vit e gjysmë zhvillimi u mbajt publikimi i projektit F-Stack 1.13, që zhvillon një stekë rrjeti me performancë të lartë që punon në hapësirën e përdoruesit, i bazuar në kornizën DPDK dhe stekën TCP/IP të FreeBSD (F-Stack nuk është i varur nga FreeBSD dhe e konsideron Linux si platformën kryesore për përdorim). Projekti përdoret në produkte dhe shërbime të ndryshme Tencent, kompaninë më të madhe të telekomunikacionit në Kinë. Kodi distribuohet është nën licencën BSD. Mbështetet ekzekutimi në Linux dhe FreeBSD.

F-Stack ofron mundësinë për të organizuar ndërveprimin rrjetor në aplikacione duke përdorur një stekë rrjeti të tijën përveç stekës rrjetore të sistemit operativ, që funksionon në hapësirën e përdoruesit dhe punon drejtpërdrejt me pajisjet rrjetore. Sigurohen edita të specializuara të Nginx dhe Redis, të modifikuara për përdorimin e F-Stack.

Për zhvillimin e aplikacioneve mbështetjes si një API standard Posix (Socket, Epoll, Kqueue), që thjeshton kalimin në F-Stack të aplikacioneve ekzistuese, ashtu dhe një ndërfaqe të vetme të programimit të bazuar në korutina (mikrotëhe), që thjeshton krijimin e aplikacioneve rrjetore dhe lejon shmangien e logjikës së komplikuar të përpunimit asinkron të kërkesave. F-Stack gjithashtu ofron mjete për të lehtësuar përdorimin në aplikacione me arkitekturë shumë-procesore.

Për ndërveprimin me kartën rrjetore, përmes ndërfaqeve të bërthamës së sistemit operativ, përdoret korniza DPDK (Data Plane Development Kit), që ofron një grup bibliotekash për punë me nivel të ulët me adaptuesit rrjetorë, ndërveprimin në sisteme me shumë bërthama, angazhimin e buferëve rrethorë dhe faqeve të mëdha të memories ("huge page"). Përdorimi i DPDK ofron mundësinë për të pranuar dhe dërguar paketa rrjetore me një numër minimal ciklesh CPU (rreth 80 cikle për paketë) dhe për të zhvilluar komponentë me performancë të lartë të stekës rrjetore. Funksionaliteti i stekës TCP/IP është marrë nga FreeBSD 11.1 dhe është ndarë në një bibliotekë të pavarur nga sistemi operativ.

F-Stack pozicionohet si një zgjidhje që mund të përdoret për të përmirësuar performancën e manipuluesve të kërkesave rrjetore në kushte kur funksionimi i stekës TCP/IP të bërthamës së Linux-it bëhet një pikë ngushtice dhe kufizon shkallëzimin. Përdorimi i F-Stack ofron një optimizim të dukshëm dhe lejon në disa raste rritjen e numrit të kërkesave të vogla të përpunuara disa herë.

Lëshimi i stakut të rrjetit F-Stack 1.13, i realizuar në hapësirën e përdoruesit

Lëshimi i stakut të rrjetit F-Stack 1.13, i realizuar në hapësirën e përdoruesit

Rritja e performancës arrihet duke përjashtuar operacione si kopjimi i paketimeve rrjetore, planifikimi i rrymave, përpunimi i ndërprerjeve dhe aplikimi i thirrjeve sistemore. F-Stack lejon arritjen e kufirit të performancës rrjetore, të mundshme për kartën e rrjetit që përdoret. Për shembull, zgjidhjet e bazuara në F-Stack demonstruan mundësinë e përpunimit të 10 milion lidhjeve paralelisht, 5 milion kërkesave në sekondë dhe 1 milion lidhjesh në sekondë.

Në lëshimin e ri:

  • Shtuar mbĂ«shtetje pĂ«r VLAN;
  • Siguruar mundĂ«sinĂ« e punĂ«s nĂ« konteinerĂ« tĂ« izoluar tĂ« bazuar nĂ« Docker;
  • Realizuar interfeset ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd dhe ff_setsockopt_freebsd;
  • Shtuar parametri 'idle_sleep' pĂ«r tĂ« reduktuar ngarkesĂ«n nĂ« CPU nĂ« situata kur nuk ka paketa hyrĂ«se
  • Shtuar mbĂ«shtetje pĂ«r ndĂ«rtimin pĂ«r arkitekturĂ«n ARM64;
  • NĂ« redaktimin e pĂ«rkthyer nĂ« F-Stack tĂ« Nginx janĂ« zĂ«vendĂ«suar trajtuesit getpeername, getsockname dhe shutdown;
  • Kryer kalimi nĂ« versionin e ri DPDK 17.11.4 LTS;
  • PjesĂ« e shtuar Ă«shtĂ« utilita traffic pĂ«r tĂ« treguar trafikun aktual qĂ« po pĂ«rpunohet nga aplikacionet nĂ« bazĂ« tĂ« F-Stack (ngjan me trafshow).

Nga planet për të ardhmen shënohet mbështetje për IPv6, ofrimi i API për gjuhët Python, PHP dhe Go, mbështetje për API Cyptodev (Intel QAT), përdorimi i zerocopy gjatë dërgimit të paketimeve, mbështetje SPDK dhe mundësia e ekzekutimit në formën e një procesi në sfond.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster