« Tüm yayınlar

Netkit: Konteyner Ağlarında Linux Paket İletim Performansını Artırmak

Cilium'un netkit ve bpf_redirect_peer ile konteyner ağlarındaki backlog kuyruğu gecikmesini nasıl ortadan kaldırdığını inceliyoruz.

Cilium ekibi, konteynerler arası ağ trafiğinde veth cihazlarının neden olduğu performans kaybını inceleyen bir araştırma yayımladı. Ölçümler, aynı host üzerindeki iki konteynerin, aynı ağ ad alanındaki iki sürece göre %31, ağ üzerinden haberleşen iki host'a göre ise %26 daha düşük throughput elde ettiğini gösteriyor. Bu farkın kaynağı, her veth paketinin CPU başına backlog kuyruğundan geçmek zorunda olması.

Çözüm olarak geliştirilen netkit cihazları ve Linux 5.10'da eklenen bpf_redirect_peer BPF yardımcı fonksiyonu, paketlerin ağ ad alanı sınırını backlog kuyruğuna uğramadan geçmesini sağlıyor. Linux 6.7 ile çekirdeğe giren netkit, veth'in aksine birincil ve eş (peer) cihaz ayrımıyla BPF programlarının konteyner içinden sökülmesini engelliyor ve host'un routing tablosuna erişim imkanı veriyor.

Cilium v1.19.5 üzerinde yapılan TCP_RR ve TCP_CRR testlerinde netkit, konteyner ağlarının performansını host ağı seviyesine çıkarıyor; TCP_CRR senaryosunda conntrack işleminin atlanması sayesinde CPU tüketimi host ağından bile daha düşük çıkıyor. Bu iyileştirmeler Cilium'da bpf.hostLegacyRouting=false ve bpf.datapathMode=netkit ayarlarıyla etkinleştirilebiliyor.

Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz