Comment puis-je augmenter la limite de fichiers ouverts pour tous les processus?
32
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 au 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 récapitulative dans ce fichier lui-même et dans man limits.conf. Ceci est implémenté via le pam_limits.somodule qui est appelé pour différents services configurés dans /etc/pam.d/.
Et, je dois l'admettre, je ne sais pas 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ù.
Hmm ... J'ai réglé cela correctement. Quittez SSH et revenez et ma limite logicielle est toujours fixée à 1024. Y a-t-il quelque chose qui me manque pour rendre ce "actif"? Merci.
Joshua Pinter
@mattdm - Il convient de mentionner que sur certaines distributions Linux, le fichier mentionné sera sous: /etc/limits.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:
Je suis sceptique quant à la nécessité de se déconnecter et de se reconnecter pour ce paramètre particulier, qui est à l'échelle du système. (Cela vaut pour à peu près tout dans sysctl ...)
mattdm
13
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 le fichier max check ouvert ulimit
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
Cela doit être revoté, car l'omniprésence systemdet les changements en cours augmentent dans l'écosystème Linux. Cependant, je suggère de modifier la réponse cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/et d'apporter les modifications à ce fichier, plutôt que le fichier de service à l'échelle du système fourni par le package.
ILMostro_7
3
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 pourlimits.conf
Réponses:
La réponse de Justin vous indique comment augmenter le nombre de fichiers ouverts disponibles au 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
:(Où le * signifie tous les utilisateurs.)
Il y a une documentation récapitulative dans ce fichier lui-même et dans
man limits.conf
. Ceci est implémenté via lepam_limits.so
module qui est appelé pour différents services configurés dans/etc/pam.d/
.Et, je dois l'admettre, je ne sais pas 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ù.
la source
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:
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:
Vous pouvez également vérifier vos paramètres avec la commande:
la source
Augmenter le nombre maximal de fichiers ouverts ulimit sous Linux
Étape 1: ouvrez le
sysctl.conf
et ajoutez cette lignefs.file-max = 65536
ajouter une nouvelle ligne et
sauvegarder et quitter.
Étape 2:
et ajouter ci-dessous le mentionné
enregistrer et quitter le fichier max check ouvert
ulimit
la source
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
Sera quelque chose comme ça:
La réponse complète est ici: Augmentation de nproc pour les processus lancés par systemd sur CentOS 7
la source
systemd
et les changements en cours augmentent dans l'écosystème Linux. Cependant, je suggère de modifier la réponsecp -r /lib/systemd/system/mariadb.service /etc/systemd/system/
et d'apporter les modifications à ce fichier, plutôt que le fichier de service à l'échelle du système fourni par le package.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
la source