PÀrast poolteist aastat arendust projekti vÀljaanne , arendav kasutajaruumi kÔrge jÔudlusega vÔrgustiki, mis pÔhineb raamistiku ja FreeBSD TCP/IP protokolli (F-Stack ei ole seotud FreeBSD-ga ja peamine rakendamisplatvorm on Linux). Projekti kasutatakse erinevates toodetes ja teenustes , Hiina suurima telekommunikatsioonifirma. Kood BSD litsentsi all. Tugi Linuxi ja FreeBSD tööle.
F-Stack vĂ”imaldab korraldada vĂ”rguside rakendustes, kasutades operatsioonisĂŒsteemi vĂ”rguprotokolli asemel oma vĂ”rguprotokolli, mis ŃŃĐœĐșŃĐžĐŸĐœĐžeerib kasutajaruumis ja töötab otse vĂ”rguseadmest. spetsiaalseid vĂ€ljaandeid Nginxi ja Redis, mis on kohandatud F-Stacki kasutamiseks.
Rakenduste arendamiseks nagu tavaline Posix API (Socket, Epoll, Kqueue), mis lihtsustab olemasolevate rakenduste ĂŒleviimist F-Stackile, nii ka oma programmisliideset, mis pĂ”hineb koostööprotsessidel (mikrovoogudel), lihtsustades vĂ”rgurakenduste loomist ja vĂ”imaldades vĂ€ltida keerulist asĂŒnkroonsete pĂ€ringute töötlemise loogikat. F-Stack pakub ka vahendeid, mis lihtsustavad rakendusi, millel on mitme protsessi arhitektuur.
VĂ”rgukaardiga suhtlemiseks, mööda operatsioonisĂŒsteemi tuumate interfaces, rakendatakse raamistiku (Data Plane Development Kit), mis pakub komplekti raamatukogusid madala taseme tööks vĂ”rguadapteritega, suhtlemiseks mitme tuumaga sĂŒsteemides, ring-buffereid ja suuri mĂ€lu lehekĂŒlgi ("huge page"). DPDK kasutamine vĂ”imaldab vĂ”rgu pakettide vastuvĂ”tmist ja saatmist minimaalsete CPU tsĂŒklite arvuga (umbes 80 tsĂŒklit paketi kohta) ning arendada kĂ”rge jĂ”udlusega vĂ”rguprotokolli komponente. TCP/IP protokolli funktsionaalsus on otse kopeeritud FreeBSD 11.1-st ja eraldatud platvormist sĂ”ltumatuks raamatukoguks.
F-Stack positsioonitakse lahenduseks, mida saab kasutada vÔrgupÀringute töötlemise jÔudluse parandamiseks olukordades, kus Linuxi tuuma tavaline TCP/IP pind muutub kitsaskohaks ja piirab skaleerimist. F-Stacki kasutamine toob kaasa mÀrkimisvÀÀrse optimeerimise ja vÔimaldab mÔnes olukorras suurendada töödeldavate vÀikeste pÀringute arvu mitmekordselt.
JĂ”udluse suurenemine saavutatakse vĂ”rgupakettide kopeerimise, niitide ajastamise, katkemiste töötlemise ja sĂŒsteemikĂ”nede vĂ€listamise kaudu. F-Stack vĂ”imaldab saavutada vĂ”rgu jĂ”udluse piiri, mis on vĂ”imalik kasutatava vĂ”rkaartide jaoks. NĂ€iteks on F-Stacki lahendustes demonstreeritud 10 miljoni samaaegse ĂŒhenduse, 5 miljoni pĂ€ringu ja 1 miljoni ĂŒhenduse töötlemise vĂ”imekust.
Uues vÀljaandes:
- VLANi tugi on lisatud;
- Tagatud on vÔimalus töötada isoleeritud konteinerites Dockeris;
- Teostatud on ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd ja ff_setsockopt_freebsd liideste rakendamine;
- Lisatud on parameeter "idle_sleep" CPU koormuse vÀhendamiseks, kui sisendeid ei ole.
- ARM64 arhitektuuri jaoks on lisatud toetus;
- F-Stacki tÔlgitud versioonis Nginx on asendatud getpeername, getsockname ja shutdown töötlejad;
- Ăleminek uuele versioonile DPDK 17.11.4 LTS on toimunud;
- Komplekti on lisatud utiliit, , et kuvada praegust F-Stacki pÔhinevate rakenduste kaudu töödeldavat liiklust (meenutab trafshow'd).
Tulevikus plaanitakse, IPv6 toetus, API pakkumine Python, PHP ja Go keelte jaoks, Cyptodevi API toetus ïŒïŒ, zerocopy kasutamine pakettide saatmisel, toetus ja vĂ”imalus kĂ€ivitada taustprotsessina.
Allikas: opennet.ru
