Comment utiliser la commande Linux ulimit

(Dernière mise à jour le: 29 mai 2022)

introduction

ulimit est une commande shell Linux intégrée qui permet d’afficher ou de limiter les quantités de ressources système consommées par les utilisateurs individuels . Limiter l’utilisation des ressources est utile dans les environnements avec plusieurs utilisateurs et des problèmes de performances système.

Dans ce tutoriel, vous apprendrez à utiliser la ulimit commande sous Linux avec des exemples.

Prérequis

  • Un système  Linux
  • Accès à une borne (terminal)
  • Privilèges Sudo 

Qu’est-ce que limits.conf ?

Le fichier limits.conf est un fichier de configuration qui définit les paramètres d’allocation des ressources système ulimit utilisés. Le chemin complet du fichier de configuration est /etc/security/limits.conf .

La modification des valeurs dans le fichier persiste après le redémarrage du système. Des autorisations de superutilisateur sont requises pour modifier le fichier limits.conf .

La première section du fichier ressemble à ceci :

 Linux Sécurité
La première section du fichier limlits.conf ressemble à ceci

ulimit, Soft Limit et Hard Limit sous Linux expliqués

Les sections suivantes expliquent la ulimitsyntaxe et la différence entre deux types de limitation de ressources : une limite flexible et une limite stricte .

Remarque : utilisez la commande top pour obtenir des informations sur les processus en cours d’exécution et l’utilisation des ressources dans un système.

Syntaxe ulimit

La ulimitcommande prend la syntaxe générale suivante :

ulimit [flags][limit]

Par exemple, pour définir la taille de la mémoire physique en kilo-octets, saisissez :

ulimit -m 15000

Drapeaux

Utilisez les ulimit indicateurs pour afficher ou limiter les valeurs individuelles de diverses ressources système. Lorsque a [limit]est donné, il s’agit de la nouvelle valeur de la ressource spécifiée.

Les drapeaux disponibles sont :

Drapeau La description
-H La limite stricte pour la ressource donnée. Seuls les utilisateurs root peuvent augmenter la limite stricte et n’importe quel processus peut la réduire.
-S  La limite souple pour la ressource donnée. Tout processus peut modifier la limite souple.
-a Répertorie toutes les limites de ressources actuelles.
-b La taille maximale du tampon de socket.
-c La taille du core dump, exprimée en nombre de blocs de 512 octets.
-d La taille de la zone de données, en kilo-octets.
-e La priorité de planification de processus la plus élevée (nice).
-f La limite de taille de fichier en blocs lors de l’utilisation du [limit]paramètre. Ne pas spécifier a [limit]indique à la commande de signaler la limite de taille de fichier.
-i Limite du nombre de signaux en attente.
-k Limite du nombre d’allocations de file d’attente.
-l La taille maximale autorisée pour le verrouillage en mémoire.
-m La taille de la mémoire physique, en kilo-octets.
-n Le nombre maximum de descripteurs de fichier qu’un processus peut avoir.
-p La taille de la mémoire tampon du tube.
-P Le nombre maximum de pseudo-terminaux.
-q Le nombre maximal d’octets dans les files d’attente de messages POSIX.
-r Le nombre maximum de threads qu’un processus peut avoir.
-R Le temps d’exécution maximal du processus, exprimé en microsecondes.
-s La taille de la pile, en kilo-octets.
-t Spécifie la durée d’exécution maximale d’un processus, en secondes.
-T La limite du nombre de threads.
-u Spécifie le nombre de processus qu’un utilisateur peut créer.
-v Mémoire virtuelle maximale disponible pour les processus.
-x Le nombre maximum de verrous de fichiers.

 

Remarque :  Si votre système ne prend pas en charge une fonctionnalité, l’indicateur correspondant ne fonctionne pas.

Paramètre

L’ajout d’un [limit] passe la nouvelle valeur pour les ressources spécifiées. Lorsqu’elle est omise, la commande imprime la valeur de limite souple actuelle pour la ressource spécifiée, sauf si vous spécifiez l’ -H indicateur.

La limite s’applique à la fois à la limite logicielle et à la limite stricte si ni les indicateurs -H ni ne -S sont spécifiés.

Valeurs de sortie

La ulimit commande a deux valeurs de sortie :

  • 0. Marque une réussite.
  • >0. Une demande de limite supérieure a été rejetée ou une erreur s’est produite.

Limite souple

Les limites souples des ressources sont des valeurs appliquées par le noyau pour la ressource correspondante. La limite souple est gérable par n’importe quel utilisateur et sa valeur maximale ne peut pas dépasser la limite stricte. La limite dure agit comme un plafond pour la limite souple.

Pour afficher les limites flexibles détaillées pour l’utilisateur actuel, exécutez :

ulimit -Sa

Limite stricte

La limite de ressources matérielles définit la limite de ressources physiques pour un utilisateur. Dans le même temps, la limite stricte est la valeur maximale de la limite souple. Seuls les utilisateurs root sont autorisés à modifier la limite stricte .

Pour afficher les limites strictes détaillées pour l’utilisateur actuel, exécutez :

ulimit -Ha

Remarque : Pour éviter les problèmes de performances et les voisins bruyants, choisissez l’une de nos instances Bare Metal Cloud . Avec une puissance de calcul dédiée, vous n’avez pas à vous soucier des conflits de ressources.

Comment utiliser ulimit

Exécutez la ulimitcommande en saisissant le nom de la commande dans le terminal :

ulimit

La sortie affiche la quantité de ressources à laquelle l’utilisateur actuel a accès. Dans cet exemple, l’utilisateur dispose de ressources système illimitées. Pour afficher ou définir des limites de ressources individuelles, utilisez les ulimitindicateurs disponibles.

Les sections suivantes répertorient les utilisations les plus courantes de la ulimitcommande.

Rapport de limite détaillé

Obtenez un rapport détaillé avec toutes les limites de ressources pour l’utilisateur actuel en spécifiant l’ -aindicateur :

ulimit -a

La sortie contient un rapport détaillé sur les limites de ressources pour l’utilisateur actuel.

Limiter le nombre de processus

Limitez le nombre maximum de processus d’un utilisateur en spécifiant l’ -uindicateur et le nombre de processus.

Par exemple, nous limiterons le nombre de processus à 10 :

ulimit -u 10

Restreindre le nombre maximum de processus par utilisateur les empêche d’utiliser toutes les ressources du système. La limitation du nombre de processus empêche également les effets néfastes d’attaques potentielles telles que la bombe à fourche.

Remarque : découvrez pourquoi les bombes fork sont dangereuses et quelles autres commandes Linux vous ne devriez jamais exécuter .

Limiter la taille du fichier

L’ -f indicateur définit la taille de fichier maximale qu’un utilisateur peut créer. Par exemple, la commande suivante limite la taille du fichier à 50 Ko :

ulimit -f 50

Testez si la limite fonctionne en créant un fichier plus volumineux. Par exemple, nous avons utilisé la commande cat pour rediriger la sortie /dev/zero vers un fichier, qui serait beaucoup plus volumineux que 50 Ko .

Limiter la mémoire virtuelle maximale

Utilisez l’indicateur  -v  pour définir la quantité maximale de mémoire virtuelle disponible pour un processus. Limiter la mémoire virtuelle d’un processus l’empêche d’utiliser toute la mémoire et empêche le thrashing.

Par exemple, la commande suivante limite la mémoire virtuelle disponible pour un processus à 1 000 Ko .

ulimit -v 1000

Limiter le nombre de fichiers ouverts

Le drapeau -n limite le nombre de fichiers ouverts simultanément (descripteurs de fichiers). L’exemple suivant définit le nombre de fichiers ouverts sur cinq .

ulimit -n 5

Modifiez le fichier limits.conf pour modifier la limite souple ou stricte

Pour modifier la limite souple ou stricte, modifiez les valeurs dans le fichier limits.conf .

Suivez les étapes ci-dessous :

1. Ouvrez une fenêtre de terminal et changez le répertoire en /etc/security:

cd /etc/security

2. Ouvrez le fichier limits.conf à l’aide d’un éditeur de texte , tel que l’éditeur vim.

vim limits.conf

3. Modifiez les valeurs limites en modifiant les entrées existantes ou en en ajoutant une nouvelle. Chaque entrée de limitation comporte quatre parties :

  • <domain>. Définit un utilisateur, un groupe ou contient un caractère générique ( *ou %).
  • <type>. Accepte deux valeurs – softou hard.
  • <item>. Accepte toutes les valeurs répertoriées dans le fichier de configuration.
  • <value>. Une valeur entière exprimée dans une unité associée à <item>.

Conclusion

Vous savez maintenant comment utiliser la ulimitcommande pour empêcher les utilisateurs, les commandes boguées ou les programmes d’utiliser une quantité excessive de ressources système. L’utilisation illimitée des ressources dans un environnement partagé a un impact sur l’expérience des autres utilisateurs. La meilleure façon de l’éviter est donc de définir des limites appropriées.

source : https://phoenixnap.com/kb/ulimit-linux-command

.

 

FaiblePa malMoyenIntéressantExilent (No Ratings Yet)
Loading...

Laisser un commentaire

Translate »