Tīkla pakešu filtrēšanas un modifikācijas apakšsistēmas Netfilter izstrādātāji ielāpu komplekts, kas ievērojami paātrina lielu atbilstības sarakstu (nftables set) apstrādi, kam nepieciešams pārbaudīt apakštīklu, tīkla portu, protokola un MAC adrešu kombināciju. Plāksteri filiālē jau ir pieņemti , kas tiks ierosināts iekļaušanai pamatprogrammā Linux 5.7. Visievērojamākais paātrinājums tika sasniegts, pateicoties AVX2 instrukcijas (nākotnē plānots publicēt līdzīgas optimizācijas, kas balstītas uz NEON instrukcijām priekš ARM).
Modulī iekļautās optimizācijas (PIle paketes politikas), kas atrisina paketes satura saskaņošanas problēmu ar patvaļīgiem lauka stāvokļa diapazoniem, kas tiek izmantoti filtrēšanas noteikumos, piemēram, IP un tīkla portu diapazoni (nft_set_rbtree un nft_set_hash manipulē ar intervālu saskaņošanu un vērtību tiešu atspoguļošanu). Pipapo versija, kas vektorizēta, izmantojot 256 bitu AVX2 instrukcijas sistēmā ar AMD Epyc 7402 procesoru, uzrādīja veiktspējas pieaugumu par 420%, analizējot 30 tūkstošus ierakstu, tostarp portu protokolu kombinācijas. Pieaugums, salīdzinot apakštīkla un porta numura kombināciju, analizējot 1000 ierakstus, bija 87% IPv4 un 128% IPv6.

Vēl viena optimizācija, kas ļāva izmantot 8 bitu atbilstības grupas, nevis 4 bitu, arī uzrādīja ievērojamus veiktspējas uzlabojumus: 66%, parsējot 30 tūkstošus porta protokola ierakstu, 43% apakštīkla_IPv4 portam un 61% apakštīkla_IPv6 portam. Kopumā, ņemot vērā AVX2 optimizācijas, pipapo veiktspēja šajos testos pieauga attiecīgi par 766%, 168% un 269%. Sarežģītiem salīdzinājumiem iegūtie raksturlielumi ir pirms viena lauka reģistrēšanas (izņemot porta+protokola testu), bet pagaidām tie atpaliek no tiešajām pārbaudēm, izmantojot un nometumu apstrādātāji, kuru pamatā ir netdev.

Avots: opennet.ru
