Sous Linux, il existe des limites définies par le système pour tout ce qui consomme des ressources. Par exemple, il existe des limites sur le nombre d'arguments pouvant être passés à une certaine commande, le nombre de threads pouvant s'exécuter en même temps, etc.
De même, le nombre de fichiers ouverts est limité. Comme vous le savez peut-être, un fichier ouvert est activement utilisé dans certains des autres programmes et consomme donc de la mémoire.
Vous pouvez afficher et modifier la limite de fichiers ouverts avec la commande "ulimit ‘.
Désormais, deux types de limites sont définis :limite stricte et limite souple .
- La limite stricte pour les fichiers ouverts est une valeur définie de manière statique et ne peut être modifiée que par la « racine » ' utilisateur de Linux.
- La limite souple est celui qui peut être modifié dynamiquement par les processus, c'est-à-dire pendant l'exécution, si le processus a besoin de plus de fichiers ouverts que le nombre autorisé par la limite souple.
Inutile de dire qu'une limite souple est quelque chose qui pourrait entraîner des problèmes de sécurité.
Vérifiez les limites d'ouverture de fichiers sous Linux
Pour afficher ou répertorier la limite stricte de fichiers, exécutez :
$ ulimit -Hn
De même, pour afficher la limite souple , exécutez :
$ ulimit -Sn
Ici le 'S'
et 'H'
représentent respectivement les limites souples et dures, alors que le 'n'
indique le nombre de fichiers ouverts.
Modifier les limites d'ouverture de fichiers sous Linux
Essayons maintenant de modifier ces limites en ajoutant simplement un troisième argument pour la nouvelle valeur de la limite après 'Sn'
ou 'Hn'
.
$ ulimit -Sn 5000 $ ulimit -Hn 5000
Cependant, les limites ainsi modifiées restent modifiées temporairement jusqu'à ce que la session (c'est-à-dire le terminal) soit ouverte. Suivez les étapes ci-dessous pour modifier définitivement les limites.
Définir en permanence les limites d'ouverture des fichiers sous Linux
Ouvrez le fichier ‘/etc/security/limits.conf ' dans 'vim ' ou n'importe quel éditeur de votre choix. Notez qu'il s'agit d'un fichier protégé en écriture et qu'il doit être ouvert avec 'sudo ‘ ou en tant qu'administrateur.
$ sudo vim /etc/security/limits.conf
Notez que les limites peuvent être définies pour tous les utilisateurs ou pour des utilisateurs individuels. La syntaxe pour définir une limite stricte est :
* hard nofile 5000
Le '*'
signifie que la limite est pour tous les utilisateurs. La deuxième chaîne sur la ligne est un type de limite, qui est 'hard' dans ce cas.
La troisième chaîne est la limite que nous voulons modifier. Dans notre cas, il s'agit de 'nofile' , c'est-à-dire le nombre de fichiers. Comme cela, d'autres limites peuvent également être définies ici, par exemple. 'noproc' pour un certain nombre de processus. Enfin, la quatrième chaîne est la nouvelle limite à définir pour le nombre de fichiers.
Si vous souhaitez définir la limite uniquement pour un utilisateur particulier, vous pouvez le faire comme suit :
abhi soft nofile 5000
Ici ‘abhi’ est le nom de l'utilisateur.
Maintenant, nous allons ajouter ces lignes au fichier et voir ensuite si la limite a été modifiée.
Enregistrez et quittez le fichier.
Ces limites obligeront l'utilisateur à se déconnecter et à se reconnecter, car les anciennes limites sont toujours prises en compte par les programmes en cours d'exécution. Exécutez ulimit à nouveau pour vérifier si les limites sont effectivement modifiées.
$ ulimit
Conclusion
Dans cet article, nous avons vu comment modifier la limite du nombre de fichiers ouverts sous Linux. Exécutez 'ulimit --help'
si vous voulez connaître la commande plus en détail.
Merci d'avoir lu et faites-nous part de vos réflexions ou questions dans les commentaires ci-dessous !