Pas pas një viti e gjysmë zhvillimi lëshimin e projektit , duke zhvilluar një stek rrjeti me performancë të lartë në hapësirën e përdoruesit, i bazuar në një strukturë dhe stek TCP/IP të FreeBSD (F-Stack nuk është i lidhur me FreeBSD dhe si platformë kryesore për përdorim konsideron Linux). Projekti përdoret në produkte dhe shërbime të ndryshme , kompania më e madhe telekomunikuese në Kinë. Kodi nën licencën BSD. Mbështetet puna në Linux dhe FreeBSD.
F-Stack ofron mundësinë për të organizuar ndërveprimin rrjetor në aplikacione, duke përdorur në vend të stekut rrjetor të sistemit operativ stekun e vet rrjetor, që funksionon në hapësirën e përdoruesit dhe punon drejtpërdrejt me pajisjet rrjetore. edita të specializuara të Nginx dhe Redis, të përkthyer për përdorimin e F-Stack.
Për zhvillimin e aplikacioneve si API standard Posix (Socket, Epoll, Kqueue), që thjeshton kalimin në F-Stack të aplikacioneve ekzistuese, ashtu edhe ndërfaqen e vet programore të bazuar në kooperativa (mikroprocesorë), 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ë thjeshtuar përdorimin në aplikacione me arkitekturë shumëprocesike.
Për ndërveprimin me kartën rrjetore, duke kaluar përmes ndërfaqeve të kernelit të sistemit operativ, përdoret struktura (Data Plane Development Kit), që ofron një grup bibliotekash për punë në nivele të ulëta me adapatorët rrjetorë, ndërveprimin në sisteme me shumë bërthamë, angazhimin e tamponëve ring dhe faqeve të mëdha memorie ("huge page"). Përdorimi i DPDK ofron mundësinë për të pranuar dhe dërguar paketa rrjetore me numrin minimal të cikleve të CPU (rreth 80 cikle për paketë) dhe për të zhvilluar komponentë me performancë të lartë të stekut rrjetor. Funksionaliteti i stekut 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ë rritur performancën e procesorëve të kërkesave rrjetërore kur funksionimi i TCP/IP standard të kernelit Linux bëhet një ngushticë dhe kufizon shkallëzimin. Përdorimi i F-Stack ofron optimizim të ndjeshëm dhe lejon në disa raste rritjen e numrit të kërkesave të vogla të procesuar në mënyrë drastike.
Rritja e performancës arrihet duke përjashtuar operacione si kopjimi i paketave rrjetërore, planifikimi i proceseve, përpunimi i ndërprerjeve dhe përdorimi i thirrjeve sistemike. F-Stack lejon arritjen e kufirit të performancës rrjetërore, të mundshme për kartelën rrjetërore të përdorur. Për shembull, zgjidhjet e bazuara në F-Stack kanë demonstruar aftësinë për të trajtuar 10 milion lidhje paralele, 5 milion kërkesa në sekondë dhe 1 milion lidhje në sekondë.
Në versionin e ri:
- Shtuar mbështetje për VLAN;
- Siguruar mundësinë e funksionimit në konteiner të izoluar të bazuar në Docker;
- Implementuar ndërfaqet ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd dhe ff_setsockopt_freebsd;
- Shtuar parametri 'idle_sleep' për të zvogëluar ngarkesën në CPU në situatën e mungesës së paketimeve të ardhshme.
- Shtuar mbështetje për ndërtimin për arkitekturën ARM64;
- Në redaksinë e përkthyer në F-Stack të Nginx janë zëvendësuar procesorët getpeername, getsockname dhe shutdown;
- Kaluar në versionin e ri DPDK 17.11.4 LTS;
- Në përbërje është shtuar utilitari për të paraqitur trafikun aktual që përpunojnë aplikacionet duke përdorur F-Stack (ngjan me trafshow).
Nga planet për të ardhmen mbështetje për IPv6, ofrimin e API për gjuhët Python, PHP dhe Go, mbështetje për API Cyptodev (), përdorimi i zerocopy gjatë dërgimit të paketimeve, mbështetje për dhe mundësia e ekzekutimit në formën e një procesi në sfond.
Burimi: opennet.ru
