Thread Starter
#1
Linux'ta File Descriptor Limitini ve ulimit Ayarlarını Yönetme
Linux sistemlerde, özellikle yüksek trafik veya yoğun I/O işlemleriyle çalışan uygulamalar için dosya tanımlayıcıları (file descriptors) kritik bir konudur. Bu limitler, sistemin aynı anda açabileceği maksimum dosya ve socket sayısını belirler. Bu sınırların uygun şekilde ayarlanması, performans ve stabilite açısından önemli rol oynar.
İlk olarak, Linux'ta dosya tanımlayıcılarının sınırlarını anlamak gerekir. Bu limitler iki seviyededir: sistem genelinde (kernel seviyesinde) ve kullanıcı seviyesinde (kullanıcı veya oturum bazında). Sistem genel limitler, genellikle /proc/sys/fs/file-max dosyasında bulunur ve sistemin toplam açık dosya sayısı üst sınırını belirler. Kullanıcı seviyesindeki limitler ise, kullanıcı başına veya oturum başına açılabilecek dosya sayısını kontrol eder.
Kullanıcı limitleri, bash veya başka bir shell oturumunda
Kalıcı ayar yapmak için,
Ayrıca, sistemd kullanıyorsanız, ilgili servisin unit dosyasına
Son olarak, kernel seviyesinde ayarları değiştirmek için
Değişiklikler kalıcı hale gelmek için
Tüm bu ayarların ardından, sistemdeki limitleri yeniden yüklemek ve uygulamak gerekir. Bu, özellikle yüksek performans gerektiren uygulamalarda, dosya tanımlayıcılarının sınırlarını uygun seviyeye getirerek, sistem kararlılığı ve performansını artırmak açısından kritik öneme sahiptir.
Linux sistemlerde, özellikle yüksek trafik veya yoğun I/O işlemleriyle çalışan uygulamalar için dosya tanımlayıcıları (file descriptors) kritik bir konudur. Bu limitler, sistemin aynı anda açabileceği maksimum dosya ve socket sayısını belirler. Bu sınırların uygun şekilde ayarlanması, performans ve stabilite açısından önemli rol oynar.
İlk olarak, Linux'ta dosya tanımlayıcılarının sınırlarını anlamak gerekir. Bu limitler iki seviyededir: sistem genelinde (kernel seviyesinde) ve kullanıcı seviyesinde (kullanıcı veya oturum bazında). Sistem genel limitler, genellikle /proc/sys/fs/file-max dosyasında bulunur ve sistemin toplam açık dosya sayısı üst sınırını belirler. Kullanıcı seviyesindeki limitler ise, kullanıcı başına veya oturum başına açılabilecek dosya sayısını kontrol eder.
Kullanıcı limitleri, bash veya başka bir shell oturumunda
ulimit komutlarıyla kontrol edilir ve ayarlanır. Örneğin, ulimit -n komutu, mevcut kullanıcı için açık dosya sınırını gösterir. Bu sınır, genellikle soft limit ve hard limit olmak üzere iki seviyede tanımlanır. Soft limit, kullanıcının günlük sınırıdır ve hard limit, bu sınırın aşılmaması gereken en yüksek değerdir. Bu limitleri artırmak için ulimit -n 65536 gibi komutlar kullanılabilir, ancak bu değişiklikler kalıcı değildir.Kalıcı ayar yapmak için,
/etc/security/limits.conf dosyasına veya sistemd birimleri kullanıyorsanız ilgili servisin konfigürasyon dosyasına müdahale edilmelidir. Örneğin, /etc/security/limits.conf içine şu satırlar eklenebilir:CODE
12345
[list]
[*]soft nofile 65536
[*]hard nofile 65536
[/list]
Ayrıca, sistemd kullanıyorsanız, ilgili servisin unit dosyasına
[Service] bölümüne aşağıdaki satırları eklemek gerekebilir:CODE
12
LimitNOFILE=65536
Son olarak, kernel seviyesinde ayarları değiştirmek için
/etc/sysctl.conf veya sysctl komutu kullanılır. Örneğin:CODE
12
sysctl -w fs.file-max=2097152
Değişiklikler kalıcı hale gelmek için
/etc/sysctl.conf içine eklenebilir.Tüm bu ayarların ardından, sistemdeki limitleri yeniden yüklemek ve uygulamak gerekir. Bu, özellikle yüksek performans gerektiren uygulamalarda, dosya tanımlayıcılarının sınırlarını uygun seviyeye getirerek, sistem kararlılığı ve performansını artırmak açısından kritik öneme sahiptir.
