dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Hata Teşhis Kütüphanesi/mongodb-too-many-open-files-wiredtiger-limit
MongoDB
MongoDB 6.0 - 8.0İşletim Sistemi & Kaynak
10 dk okuma
Too many open files / WiredTiger error: too many open files

MongoDB Açık Dosya Tanımlayıcı (FD) Yetersizliği: ulimit -n Sınırları, Koleksiyon/İndeks Sayısı ve systemd Ayarları

Varsayılan 1024 açık dosya sınırının her koleksiyon ve indeks için dosya açan WiredTiger motorunu kilitlemesi; ulimit, limits.conf ve systemd LimitNOFILE yapılandırması.

İnceleyen:Kıdemli Veritabanı Mimarı & SRE (dataiotech Labs)
Test Edilen Sürümler: MongoDB 6.0 / 7.0 / 8.0

Operasyonel Doğrulama & Güvenilirlik Standardı

Son Teknik İnceleme: 2 Kasım 2026
Test Edilen SürümlerMongoDB 7.0.8, 8.0.1 (Ubuntu 24.04 / RHEL 9)
Gerekli Yetkiİşletim sistemi root/sudo
Risk Seviyesi
CriticalDosya tanıtıcısı yetersizliği WiredTiger'ın veri yazmasını engelleyip mongod process'ini çökertebilir
Beklenen Çıktıcat /proc/$(pidof mongod)/limits çıktısında Max open files değerinin 64000 olması
Geri Dönüş (Rollback) Planı:/etc/security/limits.conf ve systemd unit dosyasını eski haline alma
MongoDB Docs: UNIX ulimit Settings
İlk 60 Saniye Teşhis Protokolü:

Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.

▸Belirti

MongoDB sunucusu yeni istemci kabul edemez veya koleksiyon okurken loglara şu hata basılır:

plaintext
Failed to accept socket: Too many open files WiredTiger error (24) [1234:0x7f]: /data/db/collection-123.wt: handle-open: open: Too many open files

▸Sahada Ne Görürsün?

Sunucu yeni bağlantı açamaz. Binlerce koleksiyonu veya yüzlerce istemci bağlantısı olan sunucularda aniden tüm istekler reddedilir.


▸Kök Neden Matrisi

OlasılıkKök NedenAçıklama
%60İşletim Sistemi `ulimit -n` Sınırı (1024)Linux varsayılan dosya tanıtıcı limiti 1024'tür. WiredTiger her koleksiyon ve indeks için ayrı dosya açar; sınır hızla dolup patlar.
%30Bağlantı Patlaması (Her Bağlantı 1 Socket FD)800 istemci bağlandığında geriye dosya açmak için yeterli FD kalmaz.
%10systemd Servis Tanımında LimitNOFILE Eksikliğilimits.conf ayarlanmış olsa dahi systemd unit dosyası ezebilir.

▸ACİL RUNBOOK (0-5dk)

bash
# 1. mongod sürecinin mevcut açık dosya limitlerini gör cat /proc/$(pidof mongod)/limits | grep "Max open files" # 2. Çalışan sürecin kaç dosya açtığını say lsof -p $(pidof mongod) | wc -l # 3. Canlı çalışan mongod sürecinin limitini geçici olarak yükselt (prlimit) sudo prlimit --pid=$(pidof mongod) --nofile=64000:64000

▸KALICI BLUEPRINT

  1. 1/etc/security/limits.conf Ayarı:
ini
mongod soft nofile 64000 mongod hard nofile 64000 mongod soft nproc 64000 mongod hard nproc 64000
  1. 1systemd Unit Override: /etc/systemd/system/mongod.service.d/override.conf içine:
ini
[Service] LimitNOFILE=64000 LimitNPROC=64000

sudo systemctl daemon-reload && sudo systemctl restart mongod


▸Doğrulama

bash
cat /proc/$(pidof mongod)/limits | grep "open files" # Çıktı: Max open files 64000 64000

Diğer Veritabanı Hata Teşhisleri

Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.

Tüm Hatalar (82)