Çekirdek Parametreleri: Yüksek Trafikte Varsayılanlar Neden Yetmez?

Açık dosya sınırı, ağ kuyrukları ve bellek davranışı: yüksek trafikte ayarlanması gereken çekirdek parametreleri. Çekirdek Parametreleri: Yüksek Trafikte…

Çekirdek Parametreleri: Yüksek Trafikte Varsayılanlar Neden Yetmez?
İçindekiler
  1. Varsayılanlar Kimin İçin?
  2. Açık Dosya Sınırı
  3. Ağ Kuyruğu Ayarları
  4. Bekleyen Bağlantılar Sorunu
  5. Bellek ve Takas Davranışı
  6. Nasıl Ayarlanır?
  7. Sık Yapılan Hatalar
  8. Sonuç
  9. Sıkça Sorulan Sorular (SSS)
  10. "Çok fazla açık dosya" hatası neden geliyor?
  11. İstekler sunucuya hiç ulaşmıyor gibi, neden?
  12. Port tükenmesi ne demek?
  13. Ayarları denemek riskli mi?

Çekirdek Parametreleri: Yüksek Trafikte Varsayılanlar Neden Yetmez?

Sunucunuzun işlemcisi boş, belleği bol, diski rahat. Ama belirli bir eşzamanlı bağlantı sayısından sonra yeni istekler reddedilmeye başlıyor. Sınır donanımda değil, işletim sisteminin varsayılan ayarlarındadır.

Bu yazı, yüksek trafikte ayarlanması gereken çekirdek parametrelerini ele alıyor.

Varsayılanlar Kimin İçin?

İşletim sistemi varsayılanları geniş bir yelpazeyi hedefler:

  • Küçük ve büyük makinelerde çalışmalı.
  • Masaüstü ve sunucu için ortak olmalı.
  • Güvenli tarafta kalmalı.

Sonuç öngörülebilirdir: varsayılan ayarlar yüksek eşzamanlılık için değil, hiçbir makinede sorun çıkarmamak için seçilmiştir — yani sizin iş yükünüz için muhtemelen düşüktür.

Bu, varsayılanların kötü olduğu anlamına gelmez. Çoğu sunucu ömrü boyunca bu sınırlara hiç yaklaşmaz.

Açık Dosya Sınırı

En sık karşılaşılan duvar budur:

Kavram Açıklama
Dosya tanımlayıcı Her açık dosya ve bağlantı bir tane kullanır
Süreç başına sınır Genellikle düşük varsayılan
Sistem geneli sınır Daha yüksek

Kritik nokta birinci satırdadır ve çok kişiyi şaşırtır: her ağ bağlantısı da bir dosya tanımlayıcı tüketir — yani bin eşzamanlı ziyaretçi, bin açık dosya demektir.

Varsayılan sınır çoğu dağıtımda bu sayının altındadır. Aşıldığında web sunucusu yeni bağlantı kabul edemez ve günlüğe "çok fazla açık dosya" hatası düşer.

Bu hata mesajı yanıltıcıdır çünkü sorun disk dosyalarıyla ilgili değildir.

Ağ Kuyruğu Ayarları

Bağlantı kabul sürecinde birden fazla kuyruk vardır:

  1. Yarı açık bağlantı kuyruğu. El sıkışma sürerken.
  2. Kabul edilmeyi bekleyen kuyruk. Uygulama alana kadar.
  3. Ağ kartı giriş kuyruğu.

İkinci madde en görünür etkiyi yaratır: uygulamanız bağlantıları yeterince hızlı kabul edemiyorsa kuyruk dolar ve yeni bağlantılar sessizce düşürülür — ziyaretçi zaman aşımı yaşar ama sunucuda hiçbir hata görünmez.

Bu, teşhisi en zor durumlardan biridir. Web sunucusu günlüklerinde iz yoktur çünkü istek hiç ulaşmamıştır.

Birinci madde ise özel bir saldırı türüne karşı da rol oynar. Kuyruk boyutunun artırılması ve ilgili korumanın açık olması gerekir.

Bekleyen Bağlantılar Sorunu

Kapatılan bağlantılar hemen kaybolmaz:

  • Kapanan bağlantı bir süre bekler.
  • Bu süre boyunca port meşguldür.
  • Yoğun trafikte portlar tükenebilir.

Üçüncü madde özellikle ters vekil yapılarında ortaya çıkar: web sunucusu arka uca her istek için yeni bağlantı açıyorsa, kullanılabilir port aralığı tükenir ve bağlantılar başarısız olmaya başlar.

Çözüm iki yönlüdür. Birincisi port aralığını genişletmek, ikincisi ve daha doğrusu kalıcı bağlantı kullanarak yeni bağlantı açma ihtiyacını azaltmaktır.

Bekleme süresini agresif biçimde kısaltmak cazip görünür ama dikkatli olunmalıdır; bu süre bir nedenle vardır.

Bellek ve Takas Davranışı

Parametre alanı Sunucuda tercih
Takas eğilimi Düşük tutulur
Önbellek baskısı İş yüküne göre
Bellek aşırı tahsisi Dikkatli değiştirilir
Kirli sayfa eşikleri Yazma yoğun işlerde

Dördüncü satır veritabanı sunucularında fark yaratır: yazma tamponu çok büyük tutulduğunda, biriken veri diske boşaltılırken sistem periyodik olarak donmuş gibi davranır.

Eşikleri düşürmek yazmayı daha sık ve daha küçük parçalar hâlinde yapar, böylece ani duraklamalar ortadan kalkar.

Birinci satır çoğu sunucuda ilk yapılan ayardır ve ölçülebilir iyileşme sağlar.

Nasıl Ayarlanır?

  1. Önce ölçün. Sınıra yaklaşıyor musunuz?
  2. Tek seferde bir parametre değiştirin.
  3. Geçici olarak uygulayıp test edin.
  4. Kalıcı hâle getirin.
  5. Değişikliği belgeleyin.

Üçüncü madde güvenli bir çalışma yöntemi sağlar: çekirdek parametreleri çalışırken geçici olarak değiştirilebilir ve yeniden başlatmada varsayılana döner — hatalı bir ayar sunucuyu kalıcı olarak bozmaz.

Kalıcı hâle getirme, ayar doğrulandıktan sonra yapılır.

Beşinci madde ise ileride kafa karışıklığını önler. Neden değiştirildiği yazılmayan bir parametre, bir yıl sonra kimse tarafından anlaşılmaz.

Sık Yapılan Hatalar

  • İnternetten bulunan ayar listesini toptan uygulamak.
  • Ölçmeden değiştirmek.
  • Servis düzeyindeki sınırları unutmak.
  • Uygulama ayarlarını atlamak.

Üçüncü madde çok yaygın bir kafa karışıklığıdır: sistem geneli dosya sınırını yükseltmek yetmez, servisin kendi tanımında da sınır belirtilmişse o geçerli olur.

Bu nedenle ayar yapıldıktan sonra ilgili sürecin gerçekten yeni sınırı gördüğü doğrulanmalıdır.

Birinci madde ise en tehlikelisidir. Başka bir iş yükü için hazırlanmış bir ayar listesi, sizin sunucunuzda performansı düşürebilir.

Sunucunuzun kaynak sınırlarını ve mevcut kullanımını izlemek için panelinizden yararlanabilirsiniz; sanal sunucu kiralama hizmetlerinde kaynak grafikleri ve limit bilgileri yönetim arayüzünde sunulur.

Sonuç

Yüksek trafikte en sık çarpılan duvar açık dosya sınırıdır ve nedeni sezgisel değildir: her ağ bağlantısı da bir dosya tanımlayıcı tüketir, yani bin eşzamanlı ziyaretçi bin açık dosya demektir. İkinci sıklıkta karşılaşılan sorun bağlantı kuyruğudur — dolduğunda yeni bağlantılar sessizce düşürülür ve ziyaretçi zaman aşımı yaşar ama sunucu günlüklerinde hiçbir iz kalmaz. Ayarları önce geçici uygulayıp test edin; hatalı bir değer yeniden başlatmada kendiliğinden temizlenir.

Sıkça Sorulan Sorular (SSS)

"Çok fazla açık dosya" hatası neden geliyor?

Çünkü her ağ bağlantısı da bir dosya tanımlayıcı tüketir — sorun disk dosyalarıyla ilgili değildir. Bin eşzamanlı ziyaretçi bin açık dosya demektir ve varsayılan sınır çoğu dağıtımda bunun altındadır. Süreç başına sınırı yükseltmek gerekir.

İstekler sunucuya hiç ulaşmıyor gibi, neden?

Muhtemelen kabul kuyruğu doludur. Uygulamanız bağlantıları yeterince hızlı kabul edemiyorsa kuyruk dolar ve yeni bağlantılar sessizce düşürülür. Ziyaretçi zaman aşımı yaşar ama web sunucusu günlüğünde iz yoktur çünkü istek hiç ulaşmamıştır.

Port tükenmesi ne demek?

Kapatılan bağlantılar bir süre bekler ve o süre boyunca port meşgul kalır. Ters vekil yapılarında arka uca her istek için yeni bağlantı açılıyorsa kullanılabilir port aralığı tükenir. Doğru çözüm port aralığını genişletmekten çok, kalıcı bağlantı kullanarak yeni bağlantı ihtiyacını azaltmaktır.

Ayarları denemek riskli mi?

Değil, doğru yöntemle. Çekirdek parametreleri çalışırken geçici olarak değiştirilebilir ve yeniden başlatmada varsayılana döner — hatalı bir ayar sunucuyu kalıcı bozmaz. Kalıcı hâle getirmeyi ancak ayar doğrulandıktan sonra yapın.