Võrgustiku stack'i F-Stack 1.13 välja antud, teostatakse kasutajaruumi

Pärast poolteist aastat arendust toimus projekti väljalaskmine F-Stack 1.13, arendades kõrge jõudlusega võrgustiku pinu, mis töötab kasutaja ruumis, ja põhineb raamistikul DPDK ja FreeBSD TCP/IP pinos (F-Stack ei ole seotud FreeBSD-ga ja esmaste rakendamisplatvormidena kaalub Linuxit). Projekti kasutatakse erinevates toodetes ja teenustes Tencent, Hiina suurima telekommunikatsioonifirma. Kood GNU Üldine Avaliku litsentsi alusel. on BSD litsentsi all. Toetatakse töö tegemist Linuxis ja FreeBSD-s.

F-Stack võimaldab korraldada võrgusuhtlust rakendustes, kasutades operatsioonisüsteemi võrgu pinu asemel oma võrgupinu, mis töötab kasutaja ruumis ja on otseselt ühendatud võrguteenustega. Pakutakse spetsialiseeritud väljaandeid Nginx ja Redis, kohandatud F-Stacki kasutamiseks.

Rakenduste arendamiseks toetatakse nii Posix API (Socket, Epoll, Kqueue), mis lihtsustab olemasolevate rakenduste tõlkimist F-Stacki, ning oma programmistiku, mis põhineb koroutine'idel (mikrovoogudel), mis lihtsustab võrgu rakenduste loomist ja võimaldab vältida keerulist asünkroonsete päringute töötluse loogikat. F-Stack pakub ka tööriistu, et lihtsustada rakenduste kasutamist mitme protsessiga arhitektuuriga.

Võrgukaardi suhtlemiseks, mööda operatsioonisüsteemi tuuma liideseid, kasutatakse raamistikku DPDK (Data Plane Development Kit), mis pakub madala taseme teegikogumit võrguadapteritega töötamiseks, interaktsiooniks mitme tuumaga süsteemides, ringbuffereid ja suuri mälulehte („huge page“). DPDK kasutamine võimaldab võrgu pakettide vastuvõtmist ja saatmist minimaalse CPU tsüklite arvu täitmisega (umbes 80 tsüklit paketi kohta) ja arendada kõrge jõudlusega võrgu stack komponente. TCP/IP stack’i funktsionaalsus on otseselt laenatud FreeBSD 11.1-st ja eraldatud operatsioonisüsteemist sõltumatuks raamatukoguks.

F-Stack on lahenduseks, mis võimaldab suurendada võrgu päringute töötlemise efektiivsust olukordades, kus Linuxi tuuma tavapärane TCP/IP kiht muutub kitsaskohaks ja piirab skaleeritavust. F-Stack'i rakendamine toob märkimisväärse optimeerimise ja võimaldab teatud olukordades suurendada töödeldavate väikeste päringute arvu mitu korda.

Võrgustiku stack'i F-Stack 1.13 välja antud, teostatakse kasutajaruumi

Võrgustiku stack'i F-Stack 1.13 välja antud, teostatakse kasutajaruumi

Tõhususe tõus saavutatakse võrgu paketide kopeerimise, voogude planeerimise, katkestuste töötlemise ja süsteemikutsungite välistamise kaudu. F-Stack võimaldab saavutada võrgu jõudluse katet, mis on võimalik kasutatava võrkaartiga. Näiteks on F-Stack'i lahendused demonstreerinud võimalust töödelda 10 miljonit samal ajal ühendust, 5 miljonit päringut sekundis ja 1 miljon ühendust sekundis.

Uues väljaandes:

  • Lisatud on VLAN-i tugi;
  • Tagatud on töövõime isoleeritud konteinerites, mis põhinevad Docker'il;
  • Töötavad liidesed ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd ja ff_setsockopt_freebsd;
  • Lisatud on 'idle_sleep' parameeter, et vähendada CPU koormust, kui sissetulevaid pakette ei ole.
  • Lisa toetust ARM64 arhitektuuri ehitusele;
  • F-Stack redaktsioonis tõlgitud Nginx'is on asendatud getpeername, getsockname ja shutdown käsitlejad;
  • Ülemineku teostamine DPDK 17.11.4 LTS uuele versioonile;
  • Komplekti on lisatud utiliit traffic aktiivsete F-Stack rakenduste kaudu voolava hetktaseme allalaadimise kuvamiseks (sarnaneb trafshow'ga).

Tuleviku plaanides on märgitud IPv6 tugi, API pakkumine Python, PHP ja Go keeledele, Cyptodev API tugi (Intel QAT), pakettide saatmisel zerocopy kasutamine, tugi SPDK ja võimalus käivitada taustprotsessina.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster