Võrgu staki F-Stack 1.13 väljaanne, mis täidetakse kasutaja ruumis

Pärast poolteist aastat arendust leidis aset projekti väljaanne F-Stack 1.13, arendav kasutajaruumi kõrge jõudlusega võrgustiki, mis põhineb raamistiku DPDK ja FreeBSD TCP/IP protokolli (F-Stack ei ole seotud FreeBSD-ga ja peamine rakendamisplatvorm on Linux). Projekti kasutatakse erinevates toodetes ja teenustes Tencent, Hiina suurima telekommunikatsioonifirma. Kood levitatakse 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. Pakutakse spetsiaalseid väljaandeid Nginxi ja Redis, mis on kohandatud F-Stacki kasutamiseks.

Rakenduste arendamiseks toetatud 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 DPDK (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.

Võrgu staki F-Stack 1.13 väljaanne, mis täidetakse kasutaja ruumis

Võrgu staki F-Stack 1.13 väljaanne, mis täidetakse kasutaja ruumis

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, traffic , et kuvada praegust F-Stacki põhinevate rakenduste kaudu töödeldavat liiklust (meenutab trafshow'd).

Tulevikus plaanitakse, märgitakse IPv6 toetus, API pakkumine Python, PHP ja Go keelte jaoks, Cyptodevi API toetus (Intel QAT), zerocopy kasutamine pakettide saatmisel, toetus SPDK ja võimalus käivitada taustprotsessina.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster