« ulimit » est une commande shell Linux intéressante qui peut définir ou signaler la limite de ressources de l’utilisateur actuel.

Bien sûr, en raison de sa nature, travailler avec « ulimit » nécessite un accès administrateur (lors de la modification de la valeur). De plus, il ne fonctionnera que sur les systèmes qui permettent le contrôle par le shell. Sans plus attendre, commençons à utiliser « ulimit » !

Allumez le terminal et exécutez la commande suivante.

which ulimit

Ceci affiche une erreur, n’est-ce pas ? Pourquoi ? C’est parce que « ulimit » n’est pas un binaire séparé. Il est intégré dans le shell lui-même.

Utilisation de base

Il suffit d’exécuter la commande par elle-même.

ulimit

Comme le suggère la sortie, l’utilisateur actuel a une quantité « illimitée » de ressources auxquelles il peut accéder. Essentiellement, cela signifie que l’utilisateur actuel peut consommer toutes les ressources que le système actuel supporte.

Pour obtenir le rapport en détail, ajoutez le drapeau « -a » à la fin. Cela imprimera toutes les limites de ressources pour l’utilisateur actuel.

ulimit -a

Note : Il existe 2 types de limitation de ressources : « hard » et « soft ». La limite de ressources « hard » définit la limite physique que l’utilisateur peut atteindre. La limite de ressources « soft » est gérable par l’utilisateur. Sa valeur peut aller jusqu’à la limite « hard ».

Les ressources du système sont définies dans un fichier de configuration situé à « /etc/security/limits.conf ». « ulimit », lorsqu’il est appelé, rapporte ces valeurs.

cat /etc/security/limits.conf

Vérification des différentes limites d’un utilisateur

Pourrait-on afficher les paramètres individuels ? Appelez alors « ulimit » avec les paramètres respectifs.

Note : toutes ces commandes ne fonctionneront pas car tous les systèmes n’intègrent pas les fonctionnalités.

Pour vérifier la valeur de max « core file size », utilisez le flag « -c ». Le résultat sera affiché en blocs.

ulimit -c

Pour la max « taille du seg de données » (en kilo-octets), utilisez le drapeau « -d ».

ulimit -d

Dans l’ordonnancement, la priorité compte. Vérifiez la priorité d’ordonnancement maximale de l’utilisateur actuel avec l’aide du drapeau « -e ».

ulimit -e

Pour vérifier la taille maximale de la pile de l’utilisateur actuel, utilisez le drapeau « -s ».

ulimit -s

Pour connaître le nombre maximum de processus utilisateur, utilisez le drapeau « -u ».

ulimit -u

Pour le nombre maximum de threads, utilisez le flag « -T ».

ulimit -T

Pour obtenir la taille de la mémoire virtuelle, utilisez la suivante.

ulimit -v

Vérifions la taille du tampon de la socket !

ulimit -b

Celle-ci est intéressante. La commande suivante indiquera le temps pendant lequel chaque processus est autorisé à fonctionner.

=ulimit -t

Les descripteurs de fichiers sont une autre partie intéressante de l’écosystème Linux. Pour vérifier combien de descripteurs de fichiers un processus peut avoir, exécutez le suivant.

ulimit -n

Pour la liste complète des drapeaux « ulimit », consultez la page d’aide de « ulimit ».

ulimit –help

Définir les valeurs

Jusqu’à présent, nous avons vu comment vérifier les valeurs des limites de ressources du système actuel. Maintenant, il est temps de voir comment modifier manuellement ces valeurs.

Note : Pour modifier la limite « dure », il faudra un accès administrateur, c’est-à-dire la permission « root ». Assurez-vous de ne pas tout gâcher !

Nous avons mentionné le fichier « limits.conf », n’est-ce pas ? C’est le noyau qui DÉFINIT toutes les limites qui seront applicables aux utilisateurs.

sudo vim /etc/security/limits.conf

Comme indiqué dans le fichier, chaque entrée doit suivre la structure suivante .

<domaine> <type> <item> <valeur>

La partie « domaine » peut être l’une de ces valeurs.

  • Un utilisateur spécifique
  • Un groupe
  • Les caractères génériques (* et %)

La partie « type » autorise les valeurs suivantes .

  • « soft » (pour implémenter des limites souples)
  • « hard » (pour implémenter des limites dures)

Après, la partie « item ». La liste des options disponibles est assez longue ! Voici quelques-unes des plus intéressantes.

  • core : Taille du fichier de base (en Ko).
  • data : Taille maximale des données (en Ko)
  • fsize : Taille maximale du fichier (en Ko).
  • memlock : Espace d’adresse maximal en mémoire verrouillée (en Ko).
  • nofile : Nombre maximal de descripteurs de fichiers
  • stack : Taille maximale de la pile (en Ko).
  • cpu : Temps maximal du processeur (en MIN).
  • maxlogins : Nombre maximum de connexions pour l’utilisateur/groupe actuel
  • priorité : Définir la priorité des processus de l’utilisateur
  • rtprio : Priorité maximale en temps réel.

Comme pour le champ « valeur », mettez une valeur entière. Notez que l’unité de chaque champ est associée à la valeur de la partie « item ».

Les changements prendront effet après avoir quitté et s’être reconnecté au compte utilisateur associé.

Pour des infos approfondies sur le fichier de configuration « limits.conf », consultez sa page de manuel.

man limits.conf

Pensées finales

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.