Commandes Linux

Comment définir la valeur ulimit de manière permanente

Comment définir la valeur ulimit de manière permanente

Sous Linux, ulimit est un outil intégré pour gérer l'allocation des ressources aux niveaux global, groupe et utilisateur. Pour un système multi-utilisateurs comme Linux, une telle fonctionnalité est presque primordiale pour avoir. Il peut empêcher la consommation de ressources système indésirables comme la RAM et la puissance du processeur.

Découvrez comment définir la valeur ulimit de manière permanente sur Linux.

Valeur limite

Ulimit applique la limite prédéfinie de la quantité de ressources qu'un utilisateur peut utiliser. L'outil utilise un certain fichier de configuration comme noyau pour attribuer les valeurs ulimit. Pour un contrôle plus fin, il vaut mieux éditer le fichier.

$ cat /etc/security/limits.conf


Il existe deux types de limites qui peuvent être imposées : limites souples et strictes. Il vaut mieux expliquer ces types avec un exemple simple.

Disons qu'un administrateur système souhaite qu'un certain utilisateur survole une certaine valeur. Ici, l'utilisateur peut dépasser la valeur si nécessaire mais pas en dur par elle. Dans ce cas, il s'agira d'une limite souple. D'un autre côté, si l'administrateur veut imposer strictement la limite, alors ce sera une limite stricte.

Utiliser ulimit

Ulimit est un outil en ligne de commande. Voici la structure de base de la commande ulimit.

$ ulimit

Afficher toutes les limites

Le drapeau "-a" listera toutes les options et configurations pour un utilisateur particulier. Si aucun utilisateur n'est défini, il imprimera les limites pour l'utilisateur actuel à la place.

$ ulimit -a

$ ulimit -a


Pour afficher les limites souples d'un utilisateur, utilisez le drapeau "-S".

$ ulimit -Sa


Pour afficher les limites strictes d'un utilisateur, utilisez le drapeau "-H".

$ ulimit -Ha


Il est possible de voir les limites d'un certain processus. Les détails se trouvent dans le fichier suivant. Notez qu'il s'agit d'un fichier unique pour chacun des processus en cours d'exécution. Échangez le champ PID avec le PID du processus cible.

$ cat /proc//limites

Paramètres limites

Pour changer l'ulimit, vous devez déclarer quel type de limite vous souhaitez définir. Voici une liste restreinte avec tous les paramètres disponibles que vous pouvez modifier. Presque tous définissent la valeur maximale de chacun des paramètres.

  • b : taille du tampon de socket
  • c : taille des fichiers core créés
  • d : taille du segment de données du processus
  • e : Priorité de programmation (valeur « sympa »)
  • f : Nombre de fichiers créés par le shell
  • i : nombre de signaux en attente
  • l : Taille à verrouiller en mémoire
  • m : taille de l'ensemble résident
  • n : nombre de descripteurs de fichiers ouverts
  • p : taille du tampon de tuyau
  • q : nombre d'octets dans les files d'attente de messages POSIX
  • r : priorité de planification en temps réel
  • s : taille de la pile
  • t : temps CPU (en secondes)
  • T : nombre de fils
  • u : Nombre de processus disponibles pour un utilisateur
  • v : quantité de mémoire virtuelle disponible pour le traitement
  • x : nombre de verrous de fichiers

Modifier temporairement la valeur ulimit

Il est possible de modifier temporairement la valeur de ulimit pour un utilisateur particulier. La modification restera effective jusqu'à ce que l'utilisateur soit déconnecté, la session expire ou le système redémarre. Ici, je vais montrer un exemple de la façon de définir le nombre de processus maximum pour un utilisateur.

Pour modifier le nombre de processus disponibles à 12345, exécutez la commande suivante. Cela imposera une limite dure temporaire à l'utilisateur.

$ ulimit -u

$ ulimit -u 12345


Consultez la limite stricte pour vérifier.

$ ulimit -Hu

Changer la valeur ulimit de façon permanente

Comme mentionné précédemment, ulimit utilise un fichier de configuration système qui détermine la valeur ulimit par défaut. En apportant des modifications à ce fichier, vous pouvez modifier définitivement la valeur ulimit pour n'importe quel utilisateur.

Ouvrez le fichier dans votre éditeur de texte préféré. Notez que le fichier doit être ouvert avec l'autorisation root pour que les modifications soient enregistrées.

$ sudo vim /etc/security/limits.conf


Ici, les entrées du fichier suivent la structure suivante.

$

Faisons une ventilation rapide de chacun des champs.

  • domaine : noms d'utilisateur, groupes, plages de GUID, etc.
  • type : Type de limite (soft/hard)
  • item : la ressource qui va être limitée, par exemple, la taille du cœur, le nproc, la taille du fichier, etc.
  • valeur : la valeur limite

Voici une liste restreinte de tous les articles disponibles.

  • core : limite la taille du fichier core (en Ko)
  • cpu : temps CPU (en min)
  • data : taille des données (en Ko)
  • fsize : taille du fichier (en Ko)
  • verrous : verrous de fichiers que l'utilisateur peut maintenir
  • memlock : espace d'adressage verrouillé en mémoire (en Ko)
  • nproc : nombre de processeurs
  • rtpio : priorité en temps réel
  • sigpending : nombre de signaux en attente

Pour obtenir la liste complète des éléments disponibles, consultez la page de manuel des limites.conf.

$ man limites.conf


Par exemple, l'entrée suivante limiterait le nombre de cœurs de processeur que l'utilisateur « Viktor » peut utiliser à 2.

$ viktor dur nproc 2

Une fois édité, enregistrez le fichier. Pour que les modifications prennent effet, les utilisateurs concernés doivent se déconnecter et se reconnecter. Selon la façon dont il est implémenté, il peut également nécessiter le redémarrage du système.

Dernières pensées

L'outil ulimit offre un moyen puissant de gérer les ressources. C'est simple mais puissant dans ce qu'il fait. Quoi que vous fassiez, assurez-vous que la limite que vous êtes sur le point de mettre en œuvre est entrée correctement. Si vous essayez ces choses pour la première fois, essayez d'abord de les tester sur une machine virtuelle.

Il y a plus à la commande ulimit que ce dont j'ai discuté ici. Si vous souhaitez en savoir plus, consultez la commande Linux ulimit.

Bon calcul!

Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...
Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...
Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...