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.
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ù.
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
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
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
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