nftlb võrdlusnäitajad ja toimivusklahvid

Vaata kategooriaid

nftlb võrdlusnäitajad ja toimivusklahvid

2 min lugeda

kriteeriumid #

Latests'i võrdlusnäitajad, dateeritud juuni 2018-is, näitavad olulist parendust tulemuste kasutamisel, kui kasutatakse nftables-i kui iptables-i asemel andmeedast.

Arvestades 2i klientidele testitud keskkonda, mis täidavad HTTP koormuse koormuse tööriista, 1i koormuse tasakaalustajat ja 3i taustaprogramme, mille HTTP-terminator annab vastuse umbes 210i baitidest, saame järgmised võrdlusalused: HTTP voolab sekundis:

iptables DNAT 256.864,07 RPS / cpu iptables SNAT 262.088,94 RPS / cpu nftables DNAT 560.976,44 RPS / cpu nftables SNAT 608.941,57 RPS / cpu nftables SNAT 7.302.517,31 RPS / cpu nftables.XNUMXSR

Ülaltoodud joonised on esitatud füüsilise CPU kohta, kuna mastaapsuse lisamise südamikud on peaaegu lineaarsed. Kuigi need võrdlusalused on tehtud ainult 3i taustaprogrammidega, iptables'i jõudlus väheneb oluliselt, lisades rohkem taustaprogramme, kuna need hõlmavad järjestikuseid reegleid.

Need võrdlusnäitajad viidi läbi, kui retpoliin oli keelatud (puudusid Spectre / Meltdown leevendused), kuid kui need on lubatud, on NAT-i juhtumitel tuvastatud toimivuskaristused, kus nii iptable'i kui ka nftable-i juhtumite puhul on lubatud ühendtrada, esimese jaoks palju halvemad:

iptables: 40.77% CPU trahv nftables: 17.27% CPU trahv

Toimivusklahvid #

Retpoliini karistusi selgitatakse tänu sellele, et iptablesis kasutatakse palju rohkem kaudseid kõnesid kui nftables'is. Kuid ka mõned täiendavad võtmed, mida selgitatakse allpool.

Reeglite optimeerimine #

Peamine jõudluse võti on reeglite optimeerimine. Iptables oli juba teada, et ipseti kasutamine suurendab jõudlust, kuna see vähendab järjestikuste reeglite töötlemist.

Kuigi nftlb-s võib seda laiendada ka muudel eesmärkidel kasutamiseks, seadsime virtuaalset teenust kasutades põhireeglid, kasutades ekspressiivset keelt, mis toetab loomulikult komplektide ja kaartide kasutamist. Palun vaadake allpool loodud reegleid a virtuaalne TCP teenus nimega vs01 koos 2i taustaprogrammidega:

tabel ip nftlb { map tcp-services { type ipv4_addr . inet_service: otsus
        elemendid = { 192.168.0.100 . http: goto vs01}
    } ahela eelmarsruutimine { type nat hook prerouting priority 0; poliitika aktsepteerima;
        ip isa . tcp dport vmap @tcp-services
    } chain postrouting { type nat hook postrouting priority 100; poliitika aktsepteerimine; }

    kett vs01 { dnat to jhash ip saddr mod 2 kaart { 0 : 192.168.1.10, 1 : 192.168.1.11 } }
}

Kui peame uue taustaprogrammi lisama, siis taastage sellega seotud kett virtuaalseks teenuseks, lisamata uusi reegleid ja mõjutamata ülejäänud virtuaalteenuseid.

    kett vs01 {
        dnat to jhash ip saddr mod 3 kaart { 0 : 192.168.1.10, 1 : 192.168.1.11, 2 : 192.168.1.12 }
    }

Siis, kui uus virtuaalne teenus vs02 tuleb luua, muutub reeglistik selliseks, nagu allpool näidatud, ilma uute reeglite lisamiseta ega mõjuta muid virtuaalteenuseid:

tabel ip nftlb { map tcp-services { type ipv4_addr . inet_service: otsuse elemendid = {192.168.0.100. http : goto vs01,
                     192.168.0.102 . https : goto vs02 } } ahela eelmarsruutimine { type nat hook prerouting priority 0; poliitika aktsepteerima; ip isa . tcp dport vmap @tcp-services } ahela postmarsruut { type nat hook postrouting priority 100; poliitika aktsepteerima; } kett vs01 { dnat to jhash ip saddr mod 3 kaart { 0 : 192.168.1.10, 1 : 192.168.1.11, 2 : 192.168.1.12 } }

    kett vs02 { dnat to jhash ip saddr mod 2 kaart { 0 : 192.168.2.10, 1 : 192.168.2.11 } }
}

Varased konksud #

nftables võimaldab kasutada varakult sissepääsukonks mida kasutatakse nftlb-s DSR-stsenaariumide ajal.

Ka seda varajast konksu saab kasutada filtreerimise eesmärgil, mis suurendab pakettide kukutamise korral jõudlust. See on näidatud allpool, kus iptables ja nftables on kõige varasemas etapis pakettides sekundis:

iptablesi eelmarsruutimise töötlemata langus: 38.949.054,35 45.743.628,64 XNUMX PPS / nftablesi tuuma sissepääsu langus: XNUMX XNUMX XNUMX PPS / tuum

Kiirendusmeetodid #

Optimeerimiseks on veel rohkem ruumi, sest nftables toetab juba kiirteid ja kergeid meetodeid, mida saab kasutada pakettide mangeldamiseks. Näited selle kohta on:

Tabelid. Conntracki kiire tee, et delegeerida juba loodud ühendused sissepääsuetapiga, läbimata kogu aeglast teed. Lisateave siin.

Kodakondsuseta NAT. Mõnede koormuse tasakaalustamise juhtumite puhul võib kodakondsuseta NAT-i teostada ilma ühendusjälgimiseta ja sisselülitamisetapilt, et saada kõik NAT-stsenaariumide rakendused.

📄 Laadige see dokument alla PDF-vormingus #

    EMAIL: *

    Linuxi poolt BetterDocs