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.
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.
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
:
* 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.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ù.
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
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
# ulimit -a
....
open files (-n) 65535
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
systemd
et 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.
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