web-dev-qa-db-fra.com

Comment puis-je augmenter la limite de fichiers ouverts pour tous les processus?

Je peux utiliser ulimit mais je pense que cela n'affecte que ma session Shell. Je veux que la limite soit augmentée pour tous les processus. C'est sur Red Hat.

34
user5554

La réponse de Justin vous indique comment augmenter le nombre de fichiers ouverts disponibles total pour l'ensemble du système. Mais je pense que vous demandez comment augmenter la limite par utilisateur, à l'échelle mondiale. La réponse à cela est d'ajouter les lignes suivantes à /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

(Où le * signifie tous les utilisateurs.)

Il y a une documentation sommaire dans ce fichier lui-même et dans man limits.conf. Ceci est implémenté via le pam_limits.so module qui est appelé pour divers services configurés dans /etc/pam.d/.

Et, je dois admettre, j'ai aucune idée d'où vient ce 1024 par défaut. Et croyez-moi, j'ai regardé. J'ai même essayé sans le module pam_limits configuré, et il est toujours là. Il doit être codé en dur quelque part, mais je ne sais pas exactement où.

27
mattdm

Augmenter le nombre maximal de fichiers ouverts ulimit sous Linux

Étape 1: ouvrez le sysctl.conf et ajoutez cette ligne fs.file-max = 65536

$ vi /etc/sysctl.conf

ajouter une nouvelle ligne et

fs.file-max = 65536

sauvegarder et quitter.

Étape 2:

$ vi /etc/security/limits.conf

et ajouter ci-dessous le mentionné

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

enregistrer et quitter vérifier max ouvrir le fichier ulimit

# ulimit -a

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

Selon l'article Linux augmenter le nombre maximal de fichiers ouverts/descripteurs de fichiers (FD) , vous pouvez augmenter la limite des fichiers ouverts en ajoutant une entrée à /etc/sysctl.conf.

Ajoutez une directive de configuration comme suit:

fs.file-max = 100000

Enregistrez puis fermez le fichier. Les utilisateurs doivent se déconnecter et se reconnecter pour que les modifications prennent effet ou ils peuvent simplement taper la commande suivante:

# sysctl -p

Vous pouvez également vérifier vos paramètres avec la commande:

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

Mais si vous essayez d'augmenter le nombre maximum de fichiers ouverts d'un service comme MariaDB ou autre chose (en utilisant systemd) vous devez le faire directement dans le fichier .service

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

Sera quelque chose comme ça:

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

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

[Install]
WantedBy=multi-user.target

La réponse complète est ici: Augmentation de nproc pour les processus lancés par systemd sur CentOS 7

8
Matheus Baldasso

SUPPLÉMENT:

Vous pouvez trouver config à différents endroits: /etc/security/limits.d/*.conf

J'ai dû le modifier. Cela n'a pas fonctionné sans cela. Le format est le même que pour limits.conf

3
Waldemar Wosiński