Linux-ydin 5.7 nopeuttaa monimutkaisten luetteloiden hakua NetFilterissä

Verkkopakettien Netfilter-suodatus- ja muokkausalijärjestelmän kehittäjät julkaistu joukko korjaustiedostoja, jotka nopeuttavat merkittävästi suurten hakuluetteloiden (nftables set) käsittelyä, jotka edellyttävät aliverkkojen, verkkoporttien, protokollien ja MAC-osoitteiden yhdistelmän tarkistamista. Korjaukset on jo hyväksytty haaratoimistoon nf-seuraava, jota ehdotetaan sisällytettäväksi Linux 5.7 -ytimeen. Huomattavin kiihtyvyys saavutettiin ansiosta mukaansatempaava AVX2-ohjeet (jatkossa suunnitellaan julkaisevan vastaavia optimointeja NEON-ohjeiden pohjalta ARM:lle).

Moduuliin sisältyvät optimoinnit nft_set_pipapo (PIle Packet POLicies), joka ratkaisee ongelman sovittaa paketin sisältö mielivaltaisiin kenttätila-alueisiin, joita käytetään suodatussäännöissä, kuten IP- ja verkkoporttialueet (nft_set_rbtree ja nft_set_hash manipuloivat intervallien täsmäämistä ja arvojen suoraa heijastusta). Pipapon versio, joka oli vektorisoitu 256-bittisten AVX2-käskyjen avulla järjestelmässä, jossa oli AMD Epyc 7402 -prosessori, osoitti 420 %:n suorituskyvyn kasvua, kun jäsennettiin 30 tuhatta tietuetta, mukaan lukien porttiprotokollayhdistelmät. Kasvu, kun verrataan aliverkon ja portin numeron yhdistelmää jäsennettäessä 1000 tietuetta, oli 87 % IPv4:llä ja 128 % IPv6:lla.

Linux-ydin 5.7 nopeuttaa monimutkaisten luetteloiden hakua NetFilterissä

Toinen optimointi, joka salli 8-bittisten hakuryhmien käytön 4-bitin sijaan, osoitti myös merkittäviä suorituskyvyn parannuksia: 66 % jäsennettäessä 30 tuhatta porttiprotokollamerkintää, 43 % subnet_IPv4-portille ja 61 % subnet_IPv6-portille. Yhteensä AVX2-optimoinnit huomioiden pipapon suorituskyky parani näissä testeissä 766 %, 168 % ja 269 %. Monimutkaisia ​​vertailuja varten saadut ominaisuudet ovat ennen yhden kentän lähtöselvityksiä rbtree (lukuun ottamatta portti+protokollatestiä), mutta toistaiseksi ne ovat jäljessä suorista tarkastuksista käyttämällä tiivisteet ja netdeviin perustuvat pudotuskäsittelijät.

Linux-ydin 5.7 nopeuttaa monimutkaisten luetteloiden hakua NetFilterissä

Lähde: opennet.ru

Lisää kommentti