penanda aras nftlb dan kunci prestasi

Lihat Kategori

penanda aras nftlb dan kunci prestasi

Baca min 2

penanda aras #

Penanda aras laten, bertarikh Jun 2018, menunjukkan peningkatan prestasi yang penting dalam menggunakan nftables sebagai laluan data dan bukannya iptables.

Memandangkan persekitaran testbed dari pelanggan 2 yang melaksanakan alat tekanan beban HTTP, 1 load balancer dan backend 3 dengan terminator HTTP yang memberikan respons kira-kira bait 210, kami memperoleh tanda aras berikut Aliran HTTP sesaat:

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 / cpu nftables DSR.7.302.517,31.

Angka-angka di atas ditunjukkan dari segi CPU fizikal kerana skalabiliti menambahkan teras hampir linear. Walaupun tanda aras ini dilakukan dengan hanya sandaran 3, Prestasi iptables akan turun dengan ketara sambil menambah lebih banyak backend, kerana ia menyiratkan lebih banyak peraturan berurutan.

Penanda aras tersebut dilakukan dengan retpoline yang dilumpuhkan (tidak ada pengurangan Spectre / Meltdown), tetapi setelah mereka mengaktifkan hukuman prestasi yang dikesan dalam kes NAT dengan conntrack diaktifkan untuk kes iptables dan nftables jauh lebih buruk untuk yang pertama:

iptables: 40.77% Penalti CPU nftables: 17.27% Penalti CPU

Kunci prestasi #

Penalti retpolin dijelaskan kerana penggunaan lebih banyak panggilan tidak langsung dalam iptables daripada yang ada. Tetapi, terdapat beberapa kunci prestasi yang akan dijelaskan di bawah.

Pengoptimuman peraturan #

Kunci prestasi utama ialah pengoptimuman peraturan. Ia sudah diketahui dalam iptables bahawa penggunaan ipset meningkatkan prestasi kerana ia mengurangkan pemprosesan peraturan berurutan.

Di samping itu, walaupun ia boleh diperluaskan untuk digunakan untuk tujuan lain, kami menetapkan peraturan asas bagi setiap perkhidmatan maya menggunakan bahasa ekspresif yang secara asal menyokong penggunaan set dan peta. Sila lihat di bawah peraturan yang dihasilkan untuk a perkhidmatan tcp maya bernama vs01 dengan backend 2:

jadual ip nftlb { peta tcp-services { taip ipv4_addr . inet_service : keputusan
        unsur = { 192.168.0.100 . http : goto vs01 }
    } chain prerouting { type nat hook prerouting priority 0; penerimaan dasar;
        ip dadr . tcp dport vmap @tcp-services
    } chain postrouting { type nat hook postrouting priority 100; penerimaan dasar; }

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

Sebaik sahaja kita perlu menambah backend baru, hanya menaikkan semula rantaian yang berkaitan kepada perkhidmatan maya tanpa kemasukan peraturan baru dan tanpa menjejaskan seluruh perkhidmatan maya yang lain.

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

Kemudian, jika perkhidmatan maya yang baru vs02 perlu dibuat, maka set peraturan menjadi seperti yang ditunjukkan di bawah ini, tanpa penambahan peraturan baru atau mempengaruhi perkhidmatan maya yang lain:

jadual ip nftlb { peta tcp-services { taip ipv4_addr . inet_service : elemen keputusan = { 192.168.0.100 . http : goto vs01,
                     192.168.0.102 . https : goto vs02 } } chain prerouting { type nat hook prerouting priority 0; penerimaan dasar; ip dadr . tcp dport vmap @tcp-services } chain postrouting { type nat hook postrouting priority 100; penerimaan dasar; } rantaian vs01 { dnat to jhash ip saddr mod 3 peta { 0 : 192.168.1.10, 1 : 192.168.1.11, 2 : 192.168.1.12 } }

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

Cangkuk awal #

nftables membenarkan penggunaan awal memasangkan cangkuk yang digunakan dalam nftlb semasa senario DSR.

Juga, cangkuk awal ini boleh digunakan untuk tujuan penapisan yang meningkatkan prestasi dalam kes-kes menjatuhkan paket. Ini ditunjukkan di bawah dengan peringkat awal iptables dan kes-kes nftables dalam paket sesaat:

iptables prerouting penurunan mentah: 38.949.054,35 PPS / teras nftables penurunan kemasukan: 45.743.628,64 PPS / teras

Teknik pecutan #

Terdapat lebih banyak ruang untuk pengoptimuman, sememangnya, kerana nftables sudah menyokong laluan cepat dan teknik ringan yang boleh digunakan untuk merompak paket. Sebagai contohnya ialah:

Flowtables. Laluan laluan konkrit untuk mendelegasikan sambungan yang telah ditubuhkan pada tahap kemasukan tanpa melewati keseluruhan laluan perlahan. Maklumat lanjut di sini.

NAT stateless. Untuk beberapa kes pengimbangan beban, NAT tanpa statik boleh dilakukan tanpa pengesanan sambungan dan dari peringkat ingress untuk mendapatkan semua prestasi yang digunakan untuk senario NAT.

📄 Muat turun dokumen ini dalam format PDF #

    E-MEL: *

    Dikuasai oleh BetterDocs