ProHoster > Blog > internet nuus > NetFilter komplekse lys passing sal versnel word in die Linux 5.7 kern
NetFilter komplekse lys passing sal versnel word in die Linux 5.7 kern
Ontwikkelaars van die filtersubstelsel en wysiging van Netfilter-netwerkpakkies gepubliseer 'n stel pleisters wat die verwerking van groot karteringlyste (nftables-stel) aansienlik versnel, wat vereis dat 'n kombinasie van subnette, netwerkpoorte, protokol en MAC-adresse nagegaan word. Plappe word reeds in die tak aanvaar nf-volgende, wat voorgestel sal word vir insluiting in die Linux 5.7-kern. Die mees opvallende versnelling is behaal danksy betrokkenheid AVX2-instruksies (in die toekoms word beplan om soortgelyke optimaliserings gebaseer op NEON-instruksies vir ARM te publiseer).
Optimalisasies wat aan die module gemaak is nft_set_pipapo (PIle PAcket POlicies), wat die probleem oplos om die inhoud van 'n pakkie te pas met arbitrêre reekse veldtoestande wat in filterreëls gebruik word, soos IP en netwerkpoortreekse (nft_set_rbtree en nft_set_hash manipuleer intervalpassing en direkte weerspieëling van waardes). 'n Weergawe van pipapo gevektoriseer met 256-bis AVX2-instruksies op 'n stelsel met 'n AMD Epyc 7402-verwerker het 'n prestasieverhoging van 420% getoon wanneer 30 1000 rekords ontleed is wat poortprotokolbindings ingesluit het. Die toename in ooreenstemming van 'n skakel vanaf 'n subnet en 'n poortnommer wanneer 87 inskrywings ontleed word, was 4% vir IPv128 en 6% vir IPvXNUMX.
Nog 'n optimalisering, wat die gebruik van 8-bis-karteringgroepe in plaas van 4-bis-groepe moontlik maak, het ook meetbare prestasiewinste getoon: 66% by die ontleed van 30k poortprotokol-inskrywings, 43% vir subnet_IPv4-poort en 61% vir subnet_IPv6-poort. In totaal, met inagneming van die AVX2-optimalisasies, het pipapo-werkverrigting in hierdie toetse met onderskeidelik 766%, 168% en 269% toegeneem. Die eienskappe wat vir komplekse vergelykings verkry word, is voor die toetse van enkele velde in rbboom (met die uitsondering van die poort + protokol toets), maar tot dusver is hulle agter direkte toetse gebruik hashes en drop-hanteerders gebaseer op netdev.