
Çekirdek Parametreleri: Sunucu Ağ Yığınını Ayarlamak
Sunucunun işlemcisi boşta, belleği yarı dolu, disk rahat. Ama yoğun saatlerde bağlantılar reddediliyor ve yanıt süreleri fırlıyor. Donanım yetiyor, sınır başka yerde: işletim sisteminin varsayılan ayarlarında.
Bu yazı, sunucu çekirdek ayarlarını ele alıyor.
Varsayılanlar Neden Düşük
| Varsayılanın hedefi | Sunucunun ihtiyacı |
|---|---|
| Her donanımda çalışmak | Mevcut donanımı kullanmak |
| Az bellek tüketmek | Belleği değerlendirmek |
| Güvenli tarafta kalmak | Yükü karşılamak |
Birinci satır tüm meselenin özüdür: dağıtımların varsayılan ayarları küçük sistemlerde de sorun çıkarmayacak biçimde seçilir — güçlü bir fiziksel sunucuda bu ayarlar donanımın büyük kısmını kullanılmadan bırakır.
Bu, donanım yatırımının boşa gitmesi demektir.
İkinci satır özellikle ağ tamponlarında hissedilir.
Üçüncü satır ise yoğun trafikte sınıra takılmaya yol açar.
Bağlantı Kabul Kuyruğu
- Gelen bağlantı kuyruğa alınır.
- Uygulama kuyruktan alır.
- Kuyruk dolarsa bağlantı düşer.
Üçüncü adım en sık yaşanan ve en yanlış teşhis edilen durumdur: kabul kuyruğu dolduğunda yeni bağlantılar sessizce reddedilir ve istemci tarafında bu, sunucu kapalıymış gibi görünür — oysa sunucu çalışmaktadır, yalnızca kuyruk küçüktür.
Kuyruk boyutu hem çekirdekte hem uygulamada tanımlıdır.
İkisinden küçük olan geçerlidir.
Yalnızca birini artırmak sorunu çözmez; bu ayrıntı çok sık atlanır.
Ağ Tamponları
- Alma ve gönderme tamponları vardır.
- Yüksek gecikmede büyük tampon gerekir.
- Otomatik ayar sınırlar içinde çalışır.
İkinci madde uzak lokasyonlara aktarımda belirleyicidir: yüksek bant genişliği ile yüksek gecikme bir aradaysa küçük tamponlar hattı doldurmaya yetmez — bağlantı hızınız yüksek olsa bile aktarım yavaş kalır.
Bu durum yurt dışına yedek gönderirken görülür.
Üçüncü madde ise ayarın üst sınırının önemini açıklar.
Otomatik ayar, tanımlanan en yüksek değerin ötesine geçemez.
Geçici Port Aralığı
| Belirti | Olası neden |
|---|---|
| Giden bağlantı kurulamıyor | Port aralığı tükendi |
| Çok sayıda bekleyen bağlantı | Kapanma süresi uzun |
| Ara ara başarısızlık | Sınıra yaklaşma |
İkinci satır sürecin nedenini açıklar: kapatılan her bağlantı bir süre bekleme durumunda kalır ve portu serbest bırakmaz — saniyede binlerce dış bağlantı kuran bir sunucuda bu birikim, kullanılabilir portların tükenmesine yol açar.
Port aralığını genişletmek ilk çözümdür.
Bağlantıları yeniden kullanmak ise daha kalıcı çözümdür.
Kalıcı bağlantı kullanan istemciler bu sorunu hiç yaşamaz.
Açık Dosya Sınırı
- Her bağlantı bir tanıtıcı tüketir.
- Her açık dosya da tüketir.
- Sınır aşılınca hata verilir.
Birinci madde birçok yöneticinin farkında olmadığı bir gerçektir: ağ bağlantıları da dosya tanıtıcısı sayılır — on bin eşzamanlı bağlantı, on binden fazla açık dosya demektir ve varsayılan sınır bunun çok altındadır.
Sınır hem sistem hem süreç düzeyinde tanımlıdır.
Yalnızca sistem sınırını artırmak yetmez.
Servis tanımında da ayrıca belirtilmelidir.
Takas Eğilimi
- Sistem belleği diske taşıyabilir.
- Eğilim ayarlanabilir.
- Sunucularda düşük tutulur.
Üçüncü madde veritabanı sunucularında kritiktir: bellek boşken bile sistemin sayfaları diske taşıması, veritabanı önbelleğinin yavaşlamasına yol açar — sunucularda bu eğilim düşürülür ama tamamen kapatılmaz.
Tamamen kapatmak, bellek dolduğunda süreçlerin sonlandırılmasına yol açar.
Düşük bir değer, dengeli davranış sağlar.
Ayarın etkisi ancak gerçek yük altında görülür.
Ayarları Kalıcı Yapmak
| Yöntem | Kalıcılık |
|---|---|
| Çalışırken değer yazmak | Yeniden başlatmada kaybolur |
| Yapılandırma dosyasına yazmak | Kalıcı |
| Yapılandırma yönetimi | Tüm sunucularda tutarlı |
Birinci satır sık yaşanan bir hayal kırıklığı üretir: çalışırken yapılan ayar değişikliği anında etkili olur ama yeniden başlatmada kaybolur — sorunu çözdüğünüzü sanıp aylar sonra aynı arızayı yaşarsınız.
Her ayar mutlaka dosyaya da yazılmalıdır.
Üçüncü satır ise çok sunuculu ortamlarda tutarlılığı sağlar.
Elle yapılan ayarlar zamanla sunucular arasında farklılaşır.
Ölçmeden Değiştirmeyin
- Önce sorunu tespit edin.
- Tek ayarı değiştirin.
- Etkisini ölçün.
İkinci madde disiplin gerektirir: internette bulunan hazır ayar listelerini toplu olarak uygulamak, hangi değişikliğin fayda hangi değişikliğin zarar verdiğini anlamayı imkânsız kılar — ve bazı ayarlar sizin iş yükünüzde ters etki yapar.
Her değişiklik gerekçesiyle birlikte kaydedilmelidir.
Birinci madde ise gereksiz değişiklikleri önler.
Sorun yoksa ayar değiştirmek yalnızca risk üretir.
Çekirdek ayarlarını değiştirebilmek yönetici erişimi gerektirir; dedicated server paketleri ile sistem ayarlarınızı tam yetkiyle yapılandırabilirsiniz.
Sonuç
Donanım yeterliyken yaşanan sınırlar genellikle varsayılan ayarlardan gelir: dağıtımların varsayılanları küçük sistemlerde de sorun çıkarmayacak biçimde seçilir. Kabul kuyruğunu, tamponları, port aralığını ve dosya tanıtıcı sınırını iş yükünüze göre ayarlayın. Ama disiplinli olun — hazır ayar listelerini toplu uygulamak hangi değişikliğin fayda verdiğini anlamayı imkânsız kılar — ve her ayarı kalıcı dosyaya yazın.
Sıkça Sorulan Sorular (SSS)
Sunucu boşta ama bağlantılar reddediliyor?
Büyük olasılıkla kabul kuyruğu doluyor. Kuyruk dolduğunda yeni bağlantılar sessizce reddedilir ve istemci tarafında sunucu kapalıymış gibi görünür. Kuyruk boyutu hem çekirdekte hem uygulamada tanımlıdır; ikisinden küçük olan geçerlidir, yalnızca birini artırmak yetmez.
Giden bağlantılar neden kurulamıyor?
Geçici port aralığı tükenmiş olabilir. Kapatılan her bağlantı bir süre bekleme durumunda kalır ve portu serbest bırakmaz; saniyede binlerce dış bağlantıda bu birikim portları tüketir. Aralığı genişletin, kalıcı olarak bağlantıları yeniden kullanın.
Bağlantılar neden dosya sınırına takılıyor?
Ağ bağlantıları da dosya tanıtıcısı sayılır. On bin eşzamanlı bağlantı, on binden fazla açık dosya demektir ve varsayılan sınır bunun çok altındadır. Sınırı hem sistem hem servis tanımı düzeyinde artırmak gerekir.
Ayarlarım yeniden başlatınca kayboluyor?
Çalışırken yapılan değişiklik anında etkili olur ama kalıcı değildir. Her ayar mutlaka yapılandırma dosyasına da yazılmalıdır; aksi hâlde sorunu çözdüğünüzü sanıp aylar sonra aynı arızayı yaşarsınız.