Sous Linux, vous pouvez modifier la quantité maximale de fichiers ouverts. Vous pouvez modifier ce nombre en utilisant la commande ulimit. Elle vous accorde la possibilité de contrôler les ressources disponibles pour le shell ou le processus lancé par celui-ci.
Lisez aussi : Définir les limites des processus en cours d’exécution de Linux au niveau per-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.
D’abord, Voyons comment nous pouvons trouver le nombre maximum de descripteurs de fichiers ouverts sur votre système Linux.
Find Linux Open File Limit
La valeur est stockée dans:
# cat /proc/sys/fs/file-max818354
Le nombre que vous verrez, montre le nombre de fichiers qu’un utilisateur peut avoir ouvert par session de connexion. Le résultat pourrait être différent selon votre système.
Par exemple, sur un de mes serveurs CentOS, la limite a été fixée à 818354, tandis que sur le serveur Ubuntu que j’exécute à la maison, la limite par défaut a été fixée à 176772.
Si vous voulez voir les limites dures et souples, vous pouvez utiliser les commandes suivantes :
Check Hard Limit in Linux
# ulimit -Hn4096
Check Soft Limits in Linux
# ulimit -Sn1024
Pour voir les valeurs dures et souples pour différents utilisateurs, vous pouvez simplement changer d’utilisateur avec « su » pour l’utilisateur dont vous voulez vérifier les limites.
Par exemple :
# su marin$ ulimit -Sn1024
$ ulimit -Hn4096
Comment vérifier les limites des descripteurs de fichiers au niveau du système sous Linux
Si vous exécutez un serveur, certaines de vos applications peuvent exiger des limites plus élevées pour les descripteurs de fichiers ouverts. Un bon exemple pour cela sont les services MySQL/MariaDB ou le serveur web Apache.
Vous pouvez augmenter la limite des fichiers ouverts dans Linux en modifiant la directive fs.file-max
du noyau. 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 que root:
# sysctl -w fs.file-max=500000
Vous pouvez vérifier la valeur actuelle des fichiers ouverts avec la commande suivante:
$ cat /proc/sys/fs/file-max
Avec la commande ci-dessus, les changements que vous avez effectués ne resteront actifs que jusqu’au prochain redémarrage. Si vous souhaitez les appliquer de façon permanente, vous devrez éditer le fichier suivant:
# vi /etc/sysctl.conf
Ajouter la ligne suivante:
fs.file-max=500000
Bien sûr, vous pouvez changer le nombre selon vos besoins. Pour vérifier à nouveau les changements, utilisez:
# cat /proc/sys/fs/file-max
Les utilisateurs devront se déconnecter et se connecter à nouveau pour que les changements prennent effet. Si vous voulez appliquer la limite immédiatement, vous pouvez utiliser la commande suivante:
# sysctl -p
Set User Level Open File limits in Linux
Les exemples ci-dessus, ont montré comment définir des limites globales, mais vous pouvez vouloir appliquer des limites par base utilisateur. Pour cela, en tant qu’utilisateur root, vous devrez éditer le fichier suivant:
# vi /etc/security/limits.conf
Si vous êtes un administrateur Linux, je vous suggère de vous familiariser parfaitement avec ce fichier et ce que vous pouvez y faire. Lisez tous les commentaires qu’il contient car il offre une grande flexibilité en termes de gestion des ressources du 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 mise en place d’une limite douce et dure pour l’utilisateur marin :
## Example hard limit for max opened filesmarin hard nofile 4096## Example soft limit for max opened filesmarin soft nofile 1024
Pensées 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 au niveau de l’utilisateur pour le nombre maximum de fichiers ouverts.
Alors que nous n’avons fait qu’effleurer la surface, je vous encourage vivement à avoir un regard et une lecture plus détaillée concernant /etc/sysctl.conf et /etc/security/limits.conf et à apprendre à les utiliser. Ils vous seront d’une grande aide un jour.