it-swarm-tr.com

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

Ulimit kullanabilirim ama bunun sadece Shell oturumumu etkilediğini düşünüyorum. Tüm süreçler için limitin arttırılmasını istiyorum. Bu Red Hat'ta.

34
user5554

Justin'in cevabı, mevcut tüm açık dosya sayısını toplam nasıl tüm sisteme artıracağınızı anlatıyor. Ama bence küresel olarak kullanıcı başına sınırı nasıl yükselteceğinizi soruyorsunuz. Bunun cevabı /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

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

Bu dosyanın kendisinde ve man limits.conf. Bu pam_limits.so modülünde yapılandırılan çeşitli hizmetler için çağrılan /etc/pam.d/.

Ve itiraf etmeliyim ki, 1024 varsayılanın nereden geldiğini fikrim yok. Ve inan bana, baktım. Hatta pam_limits modülü yapılandırılmadan denedim ve hala orada. Bir yerde kodlanmış olmalı, ama tam olarak nerede olduğundan emin değilim.

27
mattdm

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

1.Adım: 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 aşağıda belirtilenleri ekleyin

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

kaydet ve çık max açık dosyayı kontrol et ulimit

# ulimit -a

....
open files                      (-n) 65535
14
minhas23

Linux Açık Dosya/Dosya Tanımlayıcılarının (FD) Maksimum Sayısını Artır makalesine göre, /etc/sysctl.conf.

Aşağıdaki gibi bir yapılandırma yönergesi ekleyin:

fs.file-max = 100000

Ardından dosyayı kaydedip kapatın. Değişikliklerin geçerli olması için kullanıcıların oturumu kapatıp tekrar oturum açmaları gerekir veya yalnızca aşağıdaki komutu yazabilirler:

# sysctl -p

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

# cat /proc/sys/fs/file-max
14
Justin Ethier

Ancak MariaDB gibi bir hizmetin maksimum açık dosya sayısını artırmaya çalışıyorsanız ( systemd) doğrudan .service dosyasında 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: Centd 7'de systemd tarafından başlatılan işlemler için artan nproc

8

Suplement:

Yapılandırmayı farklı bir yerde bulabilirsiniz: /etc/security/limits.d/*.conf

Bunu değiştirmek zorunda kaldım. Onsuz çalışmadı. Biçim limits.conf İle aynı

3