CentOS'ta artan ulimit


18

Bir kullanıcının açabileceği maksimum dosya sayısını artırmaya çalıştığım bir CentOS kutumuz var. Ben çalıştırdığınızda Şu ulimit -Snalıyorum 1024ve ulimit -Hnverir 4096. 6000 kadar bu numaraya ihtiyacım var.

In /etc/sysctl.confben kurdum fs.file-max = 100000. In /etc/security/limits.confI aşağıdaki kümesi vardır:

username soft nofile 6000
username hard nofile 65535

Çıkış yaptım ve olarak tekrar giriş yaptım usernameancak hala değişikliklerimi görmüyorum. Bu değeri değiştirmek için neye ihtiyacım var?

Ben tek şey /etc/security/limits.dolduğunu 90-nproc.conf. Ayrıca ulimit'in .bash_profile veya .bashrc dosyasında çağrılmadığından emin oldum.

Çalıştırdığımda sysctl -pistediğim ayarları tükürüyor ve istediğim değeri gösteriyor fs.file-max. Ben çalıştırdığınızda Ama ulimit -Snben çalıştırmayı denerseniz, ben 1048'e olsun sysctl --systemalıyorum error: Unknown parameter "--system".


Yeniden başlatmayı denedin mi? Bildiğim kadarıyla bu ayarlar sistem önyüklemesi sırasında okunur.
Kamil

Bunun için yeniden başlatmanıza gerek yok.
Xavier Lucas

Yanıtlar:


14

/etc/sysctl.confTekrar okunmaya zorlamak için çalıştırın sysctl -p.

Dosya /etc/security/limits.confgiriş kabukları tarafından okunur ve GUI'deyse aktif oturum pencerelerini kapatmalısınız. Uzak oturum açma işlemleri için, yeniden kaydetme üzerinde etkili olur.


1
Koştu, yine de bir relog sonra değişiklikler görmüyor.
tubaguy50035

@ tubaguy50035 sistemdeki fs.file-maxmaksimum açık dosya sayısıdır. Bu zor bir sınırdır ve davanızdaki ulimitçağrılara yansıtılmaz .
Xavier Lucas

Tamam. O zaman artık çok fazla açık dosyada çalıştırılmamalı mıyım?
tubaguy50035

@ tubaguy50035 İlgili değil. Limit.conf dosyasındaki yukarıdaki sayıları geçersiz kılacak olan sistem sabit sınırıdır. Ama limit.conf hala uygulanan şey. Ulimit ile sert ve yumuşak limitleri doğrudan yeni bir oturumda belirlemeye ve aynı maksimum değerleri alıp almadığınızı görmeye çalışabilir misiniz? Bir şey yapılandırmanızı geçersiz kılıyor gibi görünüyor.
Xavier Lucas

Operasyona izin verilmediğini söylüyor. Kullanıcıya bir şeye erişim izni vermem gerekir mi? Web kullanıcısının kök ayrıcalıklarına sahip olmamasını tercih ederim.
tubaguy50035

6

Başka bir afişin söylediği gibi, sysctl değerini çalışan çekirdekteki değeri ayarlamanız gerekir. Yeniden başlatmadan değeri ayarlamanın birkaç yolu vardır:

sysctl -p /etc/sysctl.conf
sysctl -w fs.file-max=100000
sysctl --system

IMHO, son yöntem en iyisidir, çünkü önyükleme sırasında ayarların uygulanacağı sırayı çoğaltır (ve böylece bir çakışma varsa görünür hale gelir).

Not: Hangi CentOS sürümünü kullandığınızdan emin değilim, ancak en azından 7'de dracut initramfs'ı herhangi bir nedenle yeniden oluşturuyorsa (örneğin yeni bir çekirdek modülü kurarken) /etc/sysctl.* 'nin içeriğini initramf'lara dönüştürür.

Ortamımda /etc/sysctl.* 'yi bu ortamdan hariç tutmak için systemd dracut modülünü düzenledim (rootfs takıldıktan ve systemd-sysctl yeniden çalıştırıldığında bu ayarlar ayarlanacağı için). Sadece karşılaşabileceğiniz bir şey.


CentOS 6.5 kullanıyorum. Ayrıca bazı sonuçları ile sorum güncelledi.
tubaguy50035
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.