Comment augmenter la limite du nombre de fichiers ouverts sous Linux
Sous Linux, vous pouvez modifier le nombre maximum de fichiers ouverts. Vous pouvez modifier ce nombre à l’aide de la commande ulimit. Il vous donne la possibilité de contrôler les ressources disponibles pour le shell ou le processus démarré par celui-ci.
Lire aussi : Définir les limites des processus en cours d’exécution de Linux au niveau par utilisateur
Dans ce court tutoriel, nous allons vous montrer comment vérifier votre limite actuelle de fichiers ouverts et de descriptions de fichiers, mais pour ce faire, vous devrez avoir un accès root à votre système.
Tout d’abord, voyons comment nous pouvons déterminer le nombre maximum de descripteurs de fichiers ouverts sur votre système Linux.
Trouver la limite de fichiers ouverts Linux
La valeur est stockée dans :
# cat /proc/sys/fs/file-max
818354
Le nombre que vous verrez indique le nombre de fichiers qu’un utilisateur peut avoir ouverts par session de connexion. Le résultat peut être différent en fonction de votre système.
Par exemple, sur un de mes serveurs CentOS, la limite était fixée à 818354, tandis que sur le serveur Ubuntu que j’exécute à la maison, la limite par défaut était fixée à 176772.
Si vous souhaitez voir les limites strictes et souples, vous pouvez utiliser les commandes suivantes :
Vérifier la limite stricte sous Linux
# ulimit -Hn
4096
Vérifier les limites souples sous Linux
# ulimit -Sn
1024
Pour voir les valeurs dures et douces pour différents utilisateurs, vous pouvez simplement changer l’utilisateur avec « su » pour l’utilisateur dont vous souhaitez vérifier les limites.
Par exemple:
# su marin
ulimit -Sn
1024
$ ulimit -Hn
4096
Comment vérifier les limites des descripteurs de fichiers à l’échelle du système sous Linux
Si vous exécutez un serveur, certaines de vos applications peuvent nécessiter des limites plus élevées pour les descripteurs de fichiers ouverts. Les services MySQL/MariaDB ou le serveur Web Apache en sont un bon exemple.
Vous pouvez augmenter la limite de fichiers ouverts sous Linux en modifiant la directive du noyau fs.file-max. Pour cela, vous pouvez utiliser l’utilitaire sysctl.
Sysctl est utilisé pour configurer les paramètres du noyau au moment de l’exécution.
Par exemple, pour augmenter la limite de fichiers ouverts à 500000, vous pouvez utiliser la commande suivante en tant qu’utilisateur root :
# sysctl -w fs.file-max=500000
Vous pouvez vérifier la valeur actuelle des fichiers ouverts à l’aide de la commande suivante :
$ cat /proc/sys/fs/file-max
Avec la commande ci-dessus, les modifications que vous avez apportées ne resteront actives que jusqu’au prochain redémarrage. Si vous souhaitez les appliquer de manière permanente, vous devrez modifier le fichier suivant :
# vi /etc/sysctl.conf
Ajouter la ligne suivante :
fs.file-max=500000Bien sûr, vous pouvez modifier le numéro selon vos besoins. Pour vérifier à nouveau les modifications, utilisez :
# cat /proc/sys/fs/file-max
Les utilisateurs devront se déconnecter et se reconnecter pour que les modifications prennent effet. Si vous souhaitez appliquer la limite immédiatement, vous pouvez utiliser la commande suivante :
# sysctl -p
Définir les limites de fichier ouvert au niveau de l’utilisateur sous Linux
Les exemples ci-dessus ont montré comment définir des limites globales, mais vous pouvez appliquer des limites par utilisateur. Pour cela, en tant qu’utilisateur root, vous devrez modifier le fichier suivant :
# vi /etc/security/limits.conf
Si vous êtes un administrateur Linux, je vous suggère de vous familiariser avec ce fichier et ce que vous pouvez en faire. Lisez tous les commentaires qu’il contient car il offre une grande flexibilité en termes de gestion des ressources système en limitant les utilisateurs/groupes à différents niveaux.
Les lignes que vous devez ajouter prennent les paramètres suivants :
<domain> <type> <item> <value>
Voici un exemple de définition de limites souples et strictes pour l’utilisateur marin :
## Example hard limit for max opened files
marin hard nofile 4096
## Example soft limit for max opened files
marin soft nofile 1024
Réflexions finales
Ce bref article vous a montré un exemple de base de la façon dont vous pouvez vérifier et configurer les limites globales et de niveau utilisateur pour le nombre maximal de fichiers ouverts.
Bien que nous n’ayons fait qu’effleurer la surface, je vous encourage vivement à jeter un coup d’œil plus détaillé et à lire concernant /etc/sysctl.conf et /etc/security/limits.conf et à apprendre à les utiliser. Ils vous seront d’une grande aide un jour.