Linux Sunucuda TCP Tuning

Linux sunucularında TCP tuning, ağ performansını optimize etmek için kritik bir adımdır.

Reklam Alanı

Linux sunucularında TCP tuning, ağ performansını optimize etmek için kritik bir adımdır. Yüksek trafikli web sunucuları, veritabanı kümeleri veya bulut tabanlı uygulamalar gibi ortamlarda, varsayılan TCP ayarları yetersiz kalabilir. Bu ayarlar, bağlantı kurma sürelerini kısaltır, kaynak tüketimini azaltır ve DDoS saldırılarına karşı direnci artırır. Bu makalede, kurumsal ortamlar için pratik TCP tuning tekniklerini adım adım inceleyeceğiz. Sunucunuzun throughput’ını artırarak, gecikmeleri minimize edecek somut ayarlar ve uygulama yöntemleri paylaşacağız.

TCP Tuning Parametrelerinin Temelleri

TCP tuning, Linux çekirdeğinin ağ yığınına özgü parametreleri sysctl aracılığıyla yapılandırmayı içerir. Bu parametreler, /proc/sys/net/ dizini altında bulunur ve kalıcı hale getirmek için /etc/sysctl.conf dosyasını düzenlemek en iyi yaklaşımdır. Örneğin, yüksek bağlantı hacimli sunucularda bağlantı kuyruklarını genişletmek, SYN backlog’u yönetmek ve zaman aşımı değerlerini kısaltmak standart prosedürlerdir. Bu ayarlar, sunucunun CPU ve bellek kullanımını dengelerken, ağ bant genişliğini maksimize eder.

Başlamadan önce, mevcut ayarları incelemek için sysctl -a | grep tcp komutunu çalıştırın. Bu, mevcut konfigürasyonu anlamanıza yardımcı olur. Ardından, değişiklikleri test etmek için geçici olarak sysctl -w net.ipv4.tcp_xxx=değer ile uygulayın ve kalıcılaştırmak için sysctl.conf’a ekleyin. Her değişiklik sonrası sysctl -p ile yükleyin.

Bağlantı Kuyruk Ayarları

net.core.somaxconn parametresi, dinleme soketlerindeki maksimum bekleyen bağlantı sayısını belirler. Varsayılan 128 değeri, yoğun trafik için yetersizdir; 4096 veya 8192’ye çıkararak backlog’u genişletin. Benzer şekilde, net.ipv4.tcp_max_syn_backlog=8192 ile SYN kuyruğunu artırın. Bu ayarlar, bağlantı reddini önler ve sunucunun yük altında stabil kalmasını sağlar. Uygulama örneği: sysctl.conf’a net.core.somaxconn = 8192 ve net.ipv4.tcp_max_syn_backlog = 8192 satırlarını ekleyin, ardından yeniden yükleyin.

SYN Flood Koruması

DDoS saldırılarına karşı net.ipv4.tcp_syncookies=1 etkinleştirin. Bu, SYN çerezleri kullanarak sahte bağlantıları filtreler ve backlog’u korur. Ek olarak, net.ipv4.tcp_synack_retries=2 ile SYN-ACK yeniden denemelerini azaltın. Kurumsal sunucularda bu ayar, kaynak israfını önler. Test için hping3 --syn -p 80 -i u1 sunucu_ip ile simüle edin ve ss -s ile kuyrukları izleyin.

İleri Düzey TCP Optimizasyonları

Zaman aşımı parametreleri, kullanılmayan bağlantıları hızlı temizleyerek kaynakları serbest bırakır. net.ipv4.tcp_fin_timeout=15 saniyeye indirin; bu, TIME_WAIT durumundaki soketleri kısaltır. net.ipv4.tcp_tw_reuse=1 ile yeniden kullanılabilir TIME_WAIT soketleri etkinleştirin, ancak dikkatli olun zira yanlış kullanım veri kaybına yol açabilir. Yüksek hacimli HTTP sunucuları için net.ipv4.tcp_keepalive_time=300, tcp_keepalive_intvl=60 ve tcp_keepalive_probes=5 kombinasyonu idealdir. Bu ayarlar, idle bağlantıları yönetir ve bellek sızıntısını önler.

  • net.ipv4.tcp_tw_recycle=0 bırakın; modern kernel’lerde önerilmez çünkü NAT ortamlarında sorun yaratır.
  • net.core.netdev_max_backlog=3000 ile cihaz kuyruğunu artırın, özellikle 10Gbps+ ağlar için.
  • vm.overcommit_memory=1 ile bellek tahsisini optimize edin, TCP ile dolaylı ilişkilidir.

Bu optimizasyonlar, Nginx veya Apache gibi web sunucularında %20-30 throughput artışı sağlayabilir. Değişiklikleri staging ortamında test edin.

Zaman Aşımı ve Keepalive Optimizasyonları

TCP keepalive ayarları, uzun süreli bağlantılarda (örneğin SSH veya veritabanı) bağlantı sağlığını korur. Varsayılan 7200 saniye (2 saat) yerine 300 saniyeye çekmek, hızlı algılama sağlar. Uygulamada: sysctl.conf’a ekleyin ve ss -tan | grep TIME-WAIT ile öncesi-sonrası karşılaştırın. Bu, sunucuda biriken 10.000+ TIME_WAIT soketini %50 azaltabilir.

Uygulama ve Performans İzleme

Tuning’i uygulamak için /etc/sysctl.conf dosyasını nano veya vim ile düzenleyin, değişiklikleri kaydedin ve sysctl -p çalıştırın. Yeniden başlatma gerekmez. İzleme için netstat veya modern ss aracını kullanın: ss -s ile genel istatistikleri, ss -ltn ile dinleme soketlerini görün. tcpdump ile trafik analizi yapın: tcpdump -i any port 80 -w capture.pcap. Wireshark ile inceleyin.

Performansı ölçmek için iperf3 gibi araçlar idealdir: Sunucu tarafı iperf3 -s, istemci iperf3 -c sunucu_ip -t 60. Öncesi-sonrası benchmark alın. Ayrıca, sar veya nload ile ağ yükünü takip edin. Tuning sonrası CPU kullanımını top ile, bellek kullanımını free -h ile doğrulayın. Kurumsal olarak, Ansible gibi araçlarla birden fazla sunucuya dağıtın.

Sonuç olarak, Linux sunucuda TCP tuning, sistematik bir yaklaşımla uygulandığında ağ verimliliğini dramatik artırır. Bu rehberdeki adımları izleyerek, kendi ortamınıza uyarlayın ve düzenli izleme ile ince ayar yapın. Düzenli bakım, kesintisiz hizmet için vazgeçilmezdir.

Kategori: Genel
Yazar: Meka
İçerik: 562 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 02-03-2026
Güncelleme: 02-03-2026