Tüm işlemler için açık dosya limitini nasıl artırabilirim?


32

Ulimit kullanabilirim, ancak bunun sadece benim kabuk oturumumu etkilediğini düşünüyorum. Tüm süreçler için limitin arttırılmasını istiyorum. Bu Kırmızı Şapka'da.


Bu arada, Red Hat'in hangi sürümü? RHEL5?
mattdm

Yanıtlar:


26

Justin'in cevabı, toplam sistemdeki toplam açık dosya sayısını nasıl artıracağınızı gösterir. Ama bence, kullanıcı başına limitin küresel olarak nasıl yükseltileceğini soruyorsun. Bunun cevabı, aşağıdaki satırları aşağıdakilere eklemektir /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

(Burada * tüm kullanıcılar anlamına gelir.)

Bu dosyanın içinde ve içinde bazı özet belgeler var man limits.conf. Bu, pam_limits.soyapılandırılmış çeşitli servisler için çağrılan modül aracılığıyla gerçekleştirilir /etc/pam.d/.

Ve itiraf etmeliyim ki, varsayılan 1024'ün nereden geldiği hakkında hiçbir fikrim yok . Ve inan bana baktım. Pam_limits modülü konfigüre edilmeden bile denedim ve hala orada. Bir yerde kodlanmış olmalı, ama tam olarak nerede olduğundan emin değilim.


2
Hmm ... Bunu doğru şekilde ayarladım. SSH'den çıkın ve geri dönün ve yumuşak limitim hala 1024'e ayarlandı. Bu "aktif" yapmak için eksik olduğum bir şey var mı? Teşekkürler.
Joshua Pinter

@ mattdm - Bazı Linux dağıtımlarında söz konusu dosyanın altında olacağına değinmeye değer: /etc/limits.conf
Guy Avraham

13

Linux Maksimum Dosya Sayısı / Dosya Tanımlayıcılarının (FD) Artışı makalesine göre, giriş ekleyerek açık dosya limitini artırabilirsiniz /etc/sysctl.conf.

Aşağıdaki şekilde bir config yönergesi ekleyin:

fs.file-max = 100000

Sonra dosyayı kaydedin ve kapatın. Kullanıcıların değişikliklerin etkili olması için çıkış yapıp tekrar giriş yapması gerekir veya aşağıdaki komutu yazabilirler:

# sysctl -p

Ayarlarınızı ayrıca şu komutla da doğrulayabilirsiniz:

# cat /proc/sys/fs/file-max

Sistem genelinde olan bu özel ayar için çıkış yapıp tekrar oturum açmam gerektiğinden şüpheliyim. (Bu sysctl içinde hemen hemen her şey için geçerli ...)
mattdm

13

Linux'ta maksimum ulimit açık dosya sayısını arttırın

1.Adım: açın sysctl.conf ve bu satırı ekleyin fs.file-max = 65536

$ vi /etc/sysctl.conf

yeni satır ekle ve

fs.file-max = 65536

kaydet ve çık.

2.Step:

$ vi /etc/security/limits.conf

ve belirtilen

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

kaydet ve çık kontrol max açık dosya ulimit

# ulimit -a

....
open files                      (-n) 65535

6

Ancak, MariaDB veya başka bir şey ( systemd kullanarak ) gibi bir hizmetin maksimum açık dosya sayısını arttırmaya çalışıyorsanız, doğrudan dosyada .service yapmanız gerekir.

/lib/systemd/system/<servicename>.service

Böyle bir şey olacak:

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target

Tamamen cevap burada: CentOS 7'de systemd tarafından başlatılan işlemler için nproc artırılması


systemdLinux ekosisteminde devam etmekte olan değişikliklerle birlikte her yerde bulunmaların artması nedeniyle bunun iyileştirilmesi gerekiyor . Bununla birlikte, cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/paket tarafından sağlanan sistem genelinde servis dosyası yerine , cevabını düzenlemenizi ve bu dosyada değişiklik yapmanızı öneririm .
ILMostro_7 18:18

3

suplement:

Config'u farklı bir yerde bulabilirsiniz: /etc/security/limits.d/*.conf

Bunu değiştirmek zorunda kaldım. Onsuz işe yaramadı. Biçim ile aynıdırlimits.conf


Ayrıca, CentOS sunucularımızı tam olarak ayarlayabilmesi için bu dosyayı da güncellemem gerekiyordu.
John Eisbrener
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.