Skip to main content

Open Files Sınırını Arttırmak

Eğer 'Too many open files (24)' hatası alıyorsanız, application/command/script Linux tarafından izin verilen maksimum açık dosya sınırına ulaşıyor demektir. Aşağıdaki gibi açık dosya sınırını artırmanız gerekecek:

Limiti Arttırmak

Per User Limit

/etc/security/limits.conf dosyasını açın ve aşağıdaki kısmı yapıştırın:

*         hard    nofile      500000
*         soft    nofile      500000
root      hard    nofile      500000
root      soft    nofile      500000

Dosyayı kaydettikten sonra sisteme çıkış yapın ve tekrar giriş yapın.

pam-limits

Sınırın daemon işlemleri için değiştirilmesi için ek bir adım gerekebilir. Buna ihtiyaç duymayabilirsiniz, ancak yukarıdaki değişiklikler sizin için işe yaramazsa, bu yolu denemeyi düşünebilirsiniz.

/etc/pam.d/common-session dosyasını açın ve aşağıdaki satırı ekleyin:

session required pam_limits.so

System-Wide Limit

Değeri yukarıda belirlenen kullanıcı sınırından daha yüksek bir şekilde ayarlayabilirsiniz.

/etc/sysctl.conf dosyasını açın ve aşağıdaki satırı ekleyin:

fs.file-max = 2097152

Sonrasında aşağıdaki komutu çalıştırın:

sysctl -p

Yukarıdaki işlem, sistem genelinde açık kalabilen toplam dosya sayısını artırır.

Yeni Limit Belirlemek

Dosya tanımlarının maksimum sınırını görmek için aşağıdaki komutu kullanın:

cat /proc/sys/fs/file-max

Hard Limit:

ulimit -Hn

Soft Limit:

ulimit -Sn

Eğer root kullanıcı ile giriş yaptıysanız:

Diğer kullanıcılar için limiti görmek

Sadece www-data yerine kontrol etmek istediğiniz Linux kullanıcı adınızı (username) yazarak değiştirin:

su - www-data -c 'ulimit -aHS' -s '/bin/bash'

Çalışan process’in limitini görmek

Process id’yi (PID) öğrenmek için:

ps aux | grep process-name

XXX PID'dir, buna göre limitleri kontrol etmek için aşağıdaki komutu çalıştırın:

cat /proc/XXX/limits