Ubuntu Server’da TCP KeepAlive Süreleri Ayarlama

Ubuntu Server ortamlarında ağ bağlantılarının güvenilirliği, özellikle uzun süreli bağlantılarda kritik öneme sahiptir.
Ubuntu Server’da TCP KeepAlive Süreleri Ayarlama

Ubuntu Server ortamlarında ağ bağlantılarının güvenilirliği, özellikle uzun süreli bağlantılarda kritik öneme sahiptir. TCP KeepAlive mekanizması, bu bağlantıların canlı tutulmasını sağlayarak gereksiz kaynak tüketimini önler ve ağ kesintilerini erken tespit eder. Bu makalede, Ubuntu Server üzerinde TCP KeepAlive sürelerini optimize etme yöntemlerini adım adım inceleyeceğiz. Varsayılan ayarlar çoğu senaryoda yeterli olsa da, yüksek trafikli sunucularda veya uzun bağlantılı uygulamalarda (örneğin veritabanı sunucuları veya API gateway’leri) özelleştirme performansı önemli ölçüde artırabilir. Bu rehber, sistem yöneticilerine pratik bir yol haritası sunarak, kurumsal ortamlarda stabiliteyi pekiştirmeyi hedeflemektedir.

TCP KeepAlive Mekanizmasının Temelleri

TCP KeepAlive, TCP protokolünün bir parçası olarak, idle bağlantılarda periyodik olarak probe paketleri göndererek bağlantının durumunu kontrol eder. Bu mekanizma etkinleştirildiğinde, bağlantı belirli bir süre hareketsiz kaldığında (tcp_keepalive_time parametresiyle belirlenen süre) ilk probe gönderilir. Probe’a yanıt alınamazsa, tcp_keepalive_intvl aralıklarıyla tekrarlanır ve tcp_keepalive_probes sayısına ulaşınca bağlantı sonlandırılır. Ubuntu Server’da varsayılan değerler tcp_keepalive_time=7200 saniye (2 saat), tcp_keepalive_intvl=75 saniye ve tcp_keepalive_probes=9’dur. Bu değerler, genel kullanım için dengelidir ancak bulut tabanlı veya mobil ağlarda gecikmeleri artırabilir.

KeepAlive’in etkinleştirilmesi, NAT tablosu zaman aşımı sorunlarını çözer ve firewall kurallarının bağlantıyı erken kesmesini önler. Kurumsal sunucularda, bu ayarlar /proc/sys/net/ipv4/ dizini altında okunabilir ve sysctl komutuyla yönetilir. Örneğin, mevcut değerleri kontrol etmek için cat /proc/sys/net/ipv4/tcp_keepalive_time komutunu kullanabilirsiniz. Bu temel anlayış, sonraki optimizasyon adımlarını kolaylaştırır ve yanlış yapılandırmaları önler.

Varsayılan Değerlerin Analizi

Ubuntu’nun varsayılan TCP KeepAlive ayarları, Linux kernel’inin standartlarına dayanır. tcp_keepalive_time 7200 saniye olarak, uzun idle sürelerini tolere etmek üzere tasarlanmıştır. Bu, masaüstü odaklı kernel ayarlarından kaynaklanır ancak server ortamlarında 300-600 saniyeye indirilerek daha hızlı tespit sağlanabilir. tcp_keepalive_intvl 75 saniye, probe’lar arası dengeli bir aralıktır; çok kısa olması ağ trafiğini artırırken, uzun olması kesintileri geciktirir. tcp_keepalive_probes 9 ile toplam kapanma süresi yaklaşık 11.25 dakika olur. Bu değerleri sysctl net.ipv4.tcp_keepalive_time gibi komutlarla doğrulayın ve log dosyalarından (örneğin /var/log/syslog) bağlantı drop’larını inceleyin.

KeepAlive’in Avantajları ve Riskleri

Avantajları arasında, “yarı-açık” bağlantıların temizlenmesi ve kaynak sızıntısının önlenmesi yer alır. Özellikle NGINX veya Apache gibi web sunucularında, uzun poll bağlantıları için idealdir. Riskler ise, hassas ağlarda ekstra trafik üretmesidir; bu yüzden test ortamında doğrulanmalıdır. Kurumsal politikalar gereği, bu ayarlar dokümantasyonla desteklenmeli ve rollback planı hazırlanmalıdır. Pratikte, 600 saniye time ile 30 saniye interval ve 5 probe, dengeli bir başlangıç noktasıdır.

Sistem Genelinde TCP KeepAlive Ayarlarını Yapılandırma

Ubuntu Server’da kalıcı TCP KeepAlive ayarları, /etc/sysctl.conf dosyası kullanılarak yapılır. Bu dosya, sistem yeniden başlatıldığında otomatik uygulanır. Öncelikle mevcut ayarları yedekleyin: sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak. Ardından dosyayı düzenleyin: sudo nano /etc/sysctl.conf. Aşağıdaki satırları ekleyin:

  • net.ipv4.tcp_keepalive_time = 600
  • net.ipv4.tcp_keepalive_intvl = 30
  • net.ipv4.tcp_keepalive_probes = 5

Değişiklikleri geçici olarak uygulamak için sudo sysctl -p çalıştırın. Kalıcı hale getirmek reboot ile sağlanır. Bu ayarlar tüm TCP soketlerini etkiler, bu yüzden üretim öncesi test edin. Örneğin, bir test sunucusunda netstat veya ss komutlarıyla bağlantı sayısını izleyin: ss -tan | grep ESTAB. Ayarlar, kernel parametreleri olarak /proc/sys/net/ipv4/ altında güncellenir ve dmesg log’undan doğrulanabilir.

Uygulama Bazlı Özelleştirmeler

Sistem genel ayarlar yetersiz kalırsa, uygulamalar setsockopt() ile kendi KeepAlive’lerini ayarlayabilir. Python örneği: socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1); socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 600). Node.js’te agent.keepAlive=true ile benzer etki sağlanır. Java’da Socket.setKeepAlive(true) sonrası sunucu socket’lerde TCP_KEEPIDLE gibi extended options kullanılır. Bu yaklaşım, veritabanı bağlantıları (PostgreSQL gibi) için idealdir ve global ayarları bozmaz. Kod entegrasyonunda, hata yakalama ekleyin ve bağlantı havuzlarını gözden geçirin.

Ayarlamaların Doğrulanması ve İzlenmesi

Yapılandırma sonrası doğrulama, net-tools veya iproute2 paketleriyle yapılır. sysctl net.ipv4.tcp_keepalive_* ile değerleri kontrol edin. Bağlantı testi için netcat kullanın: nc -l -p 8080 sunucu tarafında ve nc sunucu_ip 8080 istemcide uzun idle simüle edin. Wireshark ile probe paketlerini yakalayın; TCP KeepAlive header’ını (options 0x08) arayın. İzleme için Prometheus + Node Exporter entegrasyonu önerilir; tcp_keepalive metrics’leri custom exporter’larla toplanır.

Uzun vadeli izleme, /var/log/kern.log’daki TCP reset’leri ve sar raporlarını içerir. Performans düşüşü varsa, ayarları 900 saniyeye geri alın. Kurumsal ortamda, Ansible playbook’larla bu ayarları standartlaştırın: tasks’ta sysctl modülü kullanın. Düzenli audit ile uyumu sağlayın.

Bu rehberle Ubuntu Server’ınızda TCP KeepAlive optimizasyonu tamamlanmış olur. Uygulamalı testler ve iteratif inceleme ile ağ stabiliteyi maksimize edin. Düzenli bakım, kesintisiz hizmet için vazgeçilmezdir; bu ayarlar, ölçeklenebilir altyapılarınızın temelini güçlendirir.

Webtaya ile İşinizi Dijital Dünyada Öne Çıkarın!
Webtaya olarak, uzman ekibimizle web tasarımı, yazılım geliştirme ve mobil uygulama çözümleri sunuyoruz. İşletmenize özel çözümler ve teklif almak için hemen formumuzu doldurun!
Teklif Formu
Web Site Yaptır

Webtaya, İzmir merkezli ve Türkiye genelinde hizmet veren bir yazılım ve web tasarım firmasıdır. İşletmelere özel yazılım çözümleri, yenilikçi web tasarımları ve mobil uygulamalar geliştirerek dijital dünyada güçlü bir varlık oluşturmalarına yardımcı oluyoruz. Markanızı geleceğe taşımak için bizimle iletişime geçin ve dijital dönüşümünüzü başlatın.

Adresimiz İzmir Merkez Ofis

Bizi Arayın 232 478 32 57

Copyright 2025 © Webtaya