Yüksek Yoğunluklu Sunucularda Linux Kernel TCP Yığını ve ZFS ARC Optimizasyonu
Saniyede yüz binlerce bağlantıyı karşılayan Linux sunucularda BBR tıkanıklık kontrolü, soket tamponları ve ZFS ARC bellek sınırlarının üretim ortamı için yapılandırılması.
Varsayılan Çekirdek Parametrelerinin Sınırları
Standart Linux dağıtımları, genel amaçlı masaüstü ve düşük yoğunluklu sunucu iş yükleri için dengelenmiş sysctl varsayılanlarıyla gelir. Ancak yüksek eşzamanlı (high-concurrency) trafik altında çalışan kenar sunucularda veya ZFS depolama havuzlarında bu varsayılanlar erken paket düşmelerine ve bellek çekişmesine (memory contention) yol açar.
1. TCP BBR ve Soket Kuyruk Derinliği
Geleneksel cubic algoritması paket kaybını tıkanıklık sinyali olarak kabul ederken, TCP BBR (Bottleneck Bandwidth and Round-trip propagation time) hattın gerçek bant genişliğini ve RTT süresini modelleyerek kuyruk şişmesini (bufferbloat) önler:
# /etc/sysctl.d/99-nova-network-tuning.conf
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
# SYN ve accept kuyruklarını yüksek bağlantı patlamalarına hazırlama
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 16384
net.core.netdev_max_backlog = 16384
# TIME_WAIT soketlerinin güvenli geri kazanımı ve port aralığı
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
2. ZFS ARC ile Uygulama Belleği Arasındaki Denge
ZFS, varsayılan olarak sistem RAM'inin önemli bir bölümünü ARC (Adaptive Replacement Cache) için ayırır. Aynı düğüm üzerinde veritabanı veya uygulama konteynerleri çalışıyorsa, çekirdeğin OOM (Out-of-Memory) kesintilerine girmemesi için ARC üst sınırı deterministik olarak sabitlenmelidir:
# 64 GB RAM'e sahip bir düğümde ZFS ARC üst sınırını 24 GB (bayt cinsinden) olarak sabitleme
echo "options zfs zfs_arc_max=25769803776" > /etc/modprobe.d/zfs.conf
# Çalışan sistemde kesintisiz (live) uygulama:
echo 25769803776 > /sys/module/zfs/parameters/zfs_arc_max
Operasyonel Doğrulama
Değişikliklerin ardından ss -ti ile aktif soketlerde bbr algoritmasının devrede olduğu ve arc_summary çıktısında önbellek isabet oranının (hit ratio) %94+ seviyesinde korunduğu doğrulanmalıdır.