Linux sistemlerindeki ulimits hakkında ne biliyorsunuz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Linux'ta ulimits (kullanıcı limitleri), çekirdek seviyesinde kullanıcılar, gruplar veya süreçler için sistem kaynaklarının kullanımını sınırlayan bir mekanizmadır. Bu, tek bir süreç tarafından kaynakların tükenmesini önlemeye yardımcı olur ve bu da sistemin kararlılığını veya çökmesini engelleyebilir.
Ana sınırlama kategorileri:
- İşlem sayısı: Bir kullanıcı veya süreç tarafından oluşturulabilecek maksimum çocuk süreç sayısı.
- Dosya boyutu: Bir kullanıcı veya süreç tarafından oluşturulabilecek maksimum dosya boyutu.
- Açık dosya sayısı: Bir süreç tarafından açılabilecek maksimum dosya tanıtıcı sayısı.
- Yığın boyutu: Süreçler için maksimum yığın boyutu.
- Bellek kullanımı: Sanal bellek üzerinde sınırlamalar (resident set size, veri segmenti boyutu ve diğerleri).
- Planlama önceliği: Bir sürecin çalışabileceği maksimum öncelik.
- Dosya kilitleri: Dosya kilitlerinin sayısı.
ulimits yönetimi şu yollarla yapılır:
-
ulimitkomutu (shell'e gömülü): Mevcut shell ve onun çocuk süreçleri için limitleri görüntülemeye ve ayarlamaya olanak tanır.# Tüm mevcut limitleri (yumuşak ve sert) görüntüle ulimit -a # Açık dosya sayısı limiti (yumuşak) görüntüle ulimit -n # Açık dosya sayısı için yumuşak limiti 4096 olarak ayarla ulimit -n 4096 # Açık dosya sayısı için sert limiti 8192 olarak ayarla (sadece root veya yumuşak limit daha düşükse) ulimit -Hn 8192 -
/etc/security/limits.confdosyası: Belirli kullanıcılar, gruplar veya tüm kullanıcılar için kalıcı limitler belirlemeye olanak tanır. Değişiklikler kullanıcının bir sonraki girişinden sonra geçerlidir.# Sözdizimi: <alan> <tür> <öğe> <değer> # alan: kullanıcı (@grup, *) # tür: soft | hard # öğe: core, nproc, nofile, virtualmem vb. # değer: sınır değeri # 'devops' kullanıcısı için açık dosya limiti (soft=4096, hard=8192) devops soft nofile 4096 devops hard nofile 8192 # 'developers' grubunun işlem sayısı limiti (hard=1000) @developers hard nproc 1000 # Tüm kullanıcılar için dosya boyutu limiti (hard=limitsiz) * hard fsize unlimited -
Sistem çağrıları (örneğin,
setrlimit,getrlimit): Programlar çalışma sırasında kendi limitlerini programatik olarak ayarlayabilir veya alabilir. Yetkisiz süreçler sadece sert limitlerini azaltabilir veya yumuşak limitlerini sert limite kadar değiştirebilir. Root herhangi bir limiti ayarlayabilir.
ulimits'in anlaşılması, kaynak sorunlarını giderme (örneğin, "çok fazla açık dosya"), kaynak seviyesinde DoS saldırılarını önleme ve uygulamaların performansını ayarlama açısından kritiktir. Özellikle servisler, konteynerler veya veritabanları başlatılırken önemlidir.