Linux'ta File Descriptor Limitini ve ulimit Ayarlarını Yönetme

0 Replies 2 Views
Raters
Participants
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 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.

You must be logged in to reply.

Users who are viewing this thread (Total: 2, Members: 2, Guests: 0)
Total: 2 (members: 2, guests: 0)
0 quotes selected