GNU/Linux >> Tutoriels Linux >  >> Linux

Contrôler l'utilisation des ressources système avec la commande Ulimit

Dans ce tutoriel pour débutant, vous découvrirez la commande ulimit sous Linux. Vous apprendrez à l'utiliser pour contrôler les allocations de ressources système.

Qu'est-ce que ulimit sous Linux ?

Ulimit est une commande shell intégrée conçue pour afficher, allouer et limiter les ressources. Il est essentiel que tout système réglemente ces types de contrôles.

Ce type de contrôle peut être appliqué aux niveaux global, groupe et utilisateur. En plus d'assurer un traitement fluide des tâches, il empêche les processus indésirables de dévorer les ressources système telles que la RAM et la puissance du processeur.

Ulimit est lié à un fichier de configuration de sécurité. Votre emplacement exact peut varier, mais il s'agit généralement de quelque chose comme /etc/security/limits.conf . Ulimit nous permet de modifier rapidement cette configuration.

Limites souples ou strictes

En tant qu'utilisateur, vous pouvez réellement ajuster vos paramètres ulimit.

Vous vous demandez peut-être pourquoi même fixer une limite si un utilisateur peut l'ajuster. C'est là que les limites souples et dures entrent en jeu.

Ainsi, du point de vue de l'administrateur, vous préférerez peut-être que votre utilisateur survole une certaine valeur. Ce serait votre limite souple (disons 25).

Ensuite, vous pouvez établir une limite stricte qui ne peut pas être dépassée par cet utilisateur (50). L'utilisateur serait autorisé à augmenter sa limite de 25 à 50.

Utiliser ulimit sous Linux

Voici la syntaxe de la commande ulimit :

ulimit <options>

Afficher toutes les limites pour n'importe quel utilisateur

Vous pouvez afficher tous les types de limites pour un utilisateur spécifié de cette manière :

ulimit -a user_name

Le -a affichera toutes les options et leur configuration pour votre nom d'utilisateur spécifique.

Si vous omettez le nom d'utilisateur, il affiche des limites pour vous. Laissez-moi vous montrer les limites définies pour moi par défaut :

[email protected]:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31503
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31503
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Vos valeurs par défaut peuvent être différentes des miennes, bien sûr. Cette vue affiche une description, l'indicateur attribué (qui peut être utilisé pour modifier les limites) et la configuration.

Afficher les limites matérielles et logicielles

Il est également possible de voir l'une ou l'autre de ces limites respectives avec un drapeau.

Pour afficher les limites souples, utilisez l'option -S :

ulimit -S

Pour afficher les limites strictes, utilisez l'option -H :

ulimit -H

Il est plus utile de les combiner avec des drapeaux spécifiques d'en haut. Ainsi, si vous souhaitez vérifier la limite stricte du nombre maximum de processus utilisateur, vous devez taper :

[email protected]:~$ ulimit -Hu
31503

Modifier les limites (temporairement)

Maintenant, changeons cette valeur en 31500 à des fins de démonstration et vérifions à nouveau la limite stricte.

[email protected]:~$ ulimit -u 31500
[email protected]:~$ ulimit -Hu
31500

Il convient de noter que tout changement autorisé par vos privilèges ne sera que temporairement écrit et affectera votre shell actuel.

Pour confirmer cela, j'ai quitté mon shell et créé un nouveau terminal et j'ai obtenu la valeur par défaut d'origine.

[email protected]:~$ ulimit -Hu
31503

La section suivante montre comment rendre les modifications permanentes.

Apporter des modifications permanentes à ulimit

Comme je l'ai mentionné au début de l'article, ulimit est régi par /etc/security/limits.conf. Si vous souhaitez apporter des modifications permanentes aux ulimits d'un utilisateur, vous devrez apporter des modifications au fichier de sécurité en tant que root.

Lors de l'édition, vous devez inclure ces quatre éléments :

<domain> <type> <item> <value>

Voici le texte que j'ai ajouté au fichier pour définir la limite stricte du nombre de processus pour l'utilisateur christoper (c'est-à-dire mon propre compte) :

christopher    hard    nproc   2000

Gardez à l'esprit qu'il est recommandé de ne pas activer le compte root à moins que vous ne soyez pleinement conscient des conséquences potentielles. Je l'ai fait sur une machine virtuelle pour que vous n'ayez pas à le faire vous-même.

[email protected]:~$ su
Password: 
[email protected]:/home/christopher# nano /etc/security/limits.conf 
[email protected]:/home/christopher# exit
exit
[email protected]:~$ ulimit -u
20000

Comme vous pouvez le voir, la limite pour 'christopher' a été changée à 20000.

Comment savez-vous quel mot-clé utiliser pour éditer le fichier /etc/security/limits.conf ? Eh bien, voici un tableau qui comprend les mots-clés possibles des articles et leurs descriptions :

Mot clé de l'article Description
noyau limite la taille du fichier principal (Ko)
données taille maximale des données (Ko)
fsize taille de fichier maximale (Ko)
memlock espace d'adressage maximal en mémoire verrouillée (Ko)
aucun fichier nombre maximum de descripteurs de fichiers ouverts
rss taille maximale de l'ensemble résident (Ko)
pile taille maximale de la pile (Ko)
processeur temps CPU maximum (MIN)
nproc nombre maximum de processus
comme limite d'espace d'adressage (Ko)
maxlogins nombre maximum de connexions pour cet utilisateur
maxsyslogins nombre maximum de connexions sur le système
priorité la priorité d'exécution du processus utilisateur
verrouille nombre maximum de verrous de fichiers que l'utilisateur peut détenir
signe en attente nombre maximum de signaux en attente
msgqueue – mémoire maximale utilisée par les files d'attente de messages POSIX (octets)
sympa priorité max nice autorisée à monter à des valeurs :[-20, 19]
rtprio priorité maximale en temps réel
chrooter changer la racine en répertoire (spécifique à Debian)
Type de limite Description
difficile limite stricte
doux limite souple
limite stricte et souple

Modifier ulimit pour les groupes

La modification d'une stratégie de groupe est très similaire à ce que vous avez vu dans la section précédente, mais vous incluez un @ symbole devant le nom du groupe.

Voici un exemple où j'ai défini le nombre maximum de connexions pour le groupe étudiant à 4 en modifiant le fichier /etc/security/limits.conf :

@student    -   maxlogins   4

Conclusion

J'espère que vous avez aimé cette introduction rapide à la commande ulimit Linux.

Si vous avez des commentaires ou des questions, laissez-les ci-dessous. Si vous avez des suggestions de sujets que vous aimeriez voir abordés, n'hésitez pas à les laisser également.


Linux
  1. Commandes couplées avec des opérateurs de contrôle dans Bash

  2. Comment surveiller le système Linux avec la commande Glances

  3. Commande d'arrêt Linux (avec exemples)

  4. Convertir un lien symbolique absolu en lien symbolique relatif avec une simple commande Linux ?

  5. Comment contrôler l'utilisation des ressources système avec ulimit sous Linux

Commande Usermod avec exemples

Comment visualiser l'utilisation de l'espace disque avec Vizex

Modifier les comptes d'utilisateurs avec la commande Usermod

Supprimer des utilisateurs sous Linux avec la commande Userdel

Utilisation de la commande Linux mv avec des exemples

Utilisation de la commande Linux sed avec des exemples