Introduction
Dans ce laboratoire (lab), vous apprendrez à vérifier si les paramètres ulimit sont correctement appliqués sous Linux. Vous explorerez différentes méthodes pour vérifier les limites de ressources, en commençant par l'affichage des limites du shell actuel à l'aide de la commande ulimit -a.
Ensuite, vous examinerez le fichier de configuration système /etc/security/limits.conf pour comprendre comment les limites sont définies pour les utilisateurs et les groupes. Enfin, vous apprendrez à vérifier les limites réelles appliquées à un processus en cours d'exécution en inspectant son entrée /proc. Cette approche pratique vous permettra de comprendre de manière approfondie le fonctionnement des limites de ressources et de résoudre les problèmes liés à ces limites dans un environnement Linux.
Afficher les limites avec ulimit -a
Dans cette étape, vous allez apprendre à connaître les limites de ressources sous Linux en utilisant la commande ulimit. Les limites de ressources contrôlent la quantité maximale de ressources système qu'un processus peut utiliser. Cela est important pour la stabilité du système et pour empêcher qu'un seul processus consomme toutes les ressources disponibles.
La commande ulimit vous permet de visualiser et de définir ces limites pour la session shell actuelle et tous les processus lancés depuis celle-ci.
Pour afficher toutes les limites de ressources actuelles, ouvrez votre terminal et tapez la commande suivante :
ulimit -a
Appuyez sur Entrée.
Vous verrez une sortie similaire à celle-ci :
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) <placeholder>
max locked memory (kbytes, -l) <placeholder>
max memory size (kbytes, -m) unlimited
open files (-n) <placeholder>
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) <placeholder>
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) <placeholder>
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
La sortie montre diverses limites de ressources, telles que le nombre maximal de fichiers ouverts (-n), le nombre maximal de processus utilisateur (-u) et la taille maximale de la pile (-s). La valeur unlimited signifie qu'il n'y a pas de limite imposée pour cette ressource.
Comprendre ces limites est essentiel pour diagnostiquer les problèmes de performance ou le comportement inattendu d'un programme. Par exemple, si un programme échoue parce qu'il ne peut pas ouvrir assez de fichiers, vérifier la limite open files avec ulimit -a serait une bonne première étape.
Vous pouvez également afficher des limites individuelles en spécifiant l'option. Par exemple, pour voir la limite sur le nombre de fichiers ouverts :
ulimit -n
Cela affichera un seul nombre représentant la limite actuelle pour les fichiers ouverts.
Expérimentez avec la commande ulimit -a dans votre terminal. Familiarisez-vous avec les différents types de limites affichées.
Cliquez sur Continuer pour passer à l'étape suivante.
Vérifier la configuration des limites avec cat /etc/security/limits.conf
Dans l'étape précédente, vous avez utilisé ulimit -a pour voir les limites de ressources actuelles de votre session shell. Ces limites sont souvent configurées au niveau du système dans un fichier appelé /etc/security/limits.conf.
Ce fichier fait partie du cadre des Pluggable Authentication Modules (PAM) et permet aux administrateurs de définir des limites de ressources pour les utilisateurs et les groupes lors de la connexion.
Voyons le contenu de ce fichier de configuration en utilisant la commande cat. cat est une commande simple utilisée pour afficher le contenu des fichiers.
Ouvrez votre terminal et tapez la commande suivante :
cat /etc/security/limits.conf
Appuyez sur Entrée.
Vous verrez le contenu du fichier limits.conf. La sortie ressemblera à ceci (les commentaires et les entrées spécifiques peuvent varier) :
## /etc/security/limits.conf
#
#This file sets the limits for the resources available to the login session of
#users and groups. It is used together with the pam_limits module.
#
## (it is recommended to use #include files from /etc/security/limits.d/)
#
#* soft core 0
#root hard core unlimited
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc unlimited
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
Ce fichier utilise un format simple :
<domain> <type> <item> <value>
<domain>: Spécifie l'utilisateur ou le groupe auquel la limite s'applique. Cela peut être un nom d'utilisateur, un nom de groupe (précédé de@), ou*pour tous les utilisateurs.<type>: Peut êtresoftouhard.- Les limites
softsont les limites actuelles qui peuvent être augmentées par l'utilisateur (jusqu'à la limitehard). - Les limites
hardsont les limites maximales que les utilisateurs non-root ne peuvent pas dépasser.
- Les limites
<item>: L'élément de ressource qui est limité (par exemple,nprocpour le nombre de processus,nofilepour le nombre de fichiers ouverts).<value>: La valeur de la limite.
Les lignes commençant par # sont des commentaires et sont ignorées.
Remarquez la ligne ## (it is recommended to use #include files from /etc/security/limits.d/). Cela indique que les limites spécifiques au système ou à l'application sont souvent placées dans des fichiers séparés dans le répertoire /etc/security/limits.d/. Cela permet de garder le fichier principal limits.conf propre et organisé.
Bien que vous ne modifiiez pas ce fichier dans ce laboratoire (lab), il est important de comprendre sa structure et son objectif pour l'administration système. Les limites que vous avez vues avec ulimit -a sont souvent dérivées des paramètres de ce fichier et des fichiers dans limits.d.
Cliquez sur Continuer pour passer à l'étape suivante.
Vérifier les limites de processus avec cat /proc/self/limits
Dans les étapes précédentes, vous avez appris à utiliser ulimit pour afficher les limites de la session actuelle et /etc/security/limits.conf pour la configuration au niveau du système. Maintenant, examinons comment un processus en cours d'exécution indique ses propres limites.
Linux propose un système de fichiers virtuel appelé /proc qui contient des informations sur les processus en cours d'exécution et le noyau du système. Chaque processus en cours d'exécution a un répertoire sous /proc nommé d'après son identifiant de processus (Process ID - PID).
Le répertoire spécial /proc/self est un lien symbolique qui pointe vers le répertoire /proc du processus qui l'accède. Ainsi, lorsque vous êtes dans votre terminal et que vous accédez à /proc/self, vous consultez les informations relatives au processus shell actuel.
À l'intérieur du répertoire /proc/self, il y a un fichier nommé limits qui contient les limites de ressources pour ce processus spécifique.
Voyons les limites pour votre processus shell actuel en utilisant cat :
cat /proc/self/limits
Appuyez sur Entrée.
Vous verrez une sortie similaire à celle-ci :
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes unlimited unlimited processes
Max open files 1048576 1048576 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals <placeholder> <placeholder> signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Cette sortie montre la Soft Limit (limite souple) et la Hard Limit (limite rigide) pour chaque ressource, de manière similaire à ce que vous avez vu avec ulimit -a. Les valeurs ici reflètent les limites réelles appliquées au processus qui a exécuté la commande cat (votre shell).
Comparez la sortie de cat /proc/self/limits avec celle de ulimit -a de la première étape. Vous devriez constater que les valeurs sont cohérentes, car ulimit -a indique les limites du processus shell actuel.
Le système de fichiers /proc est un outil puissant pour inspecter l'état de votre système Linux et de ses processus. Le fichier limits dans le répertoire de chaque processus offre un moyen direct de vérifier les limites de ressources en vigueur pour ce processus spécifique.
Vous avez maintenant appris trois façons différentes d'interagir avec les limites de ressources sous Linux : afficher les limites de la session actuelle avec ulimit -a, examiner la configuration au niveau du système dans /etc/security/limits.conf et vérifier les limites pour un processus spécifique via /proc/<PID>/limits (ou /proc/self/limits).
Cliquez sur Continuer pour terminer ce laboratoire (lab).
Résumé
Dans ce laboratoire (lab), vous avez appris à vérifier si les paramètres ulimit sont appliqués sous Linux. Vous avez commencé par utiliser la commande ulimit -a pour afficher les limites de ressources actuelles de la session shell, en comprenant les diverses limites telles que le nombre de fichiers ouverts, le nombre de processus utilisateur et la taille de la pile (stack size). Cette commande fournit un aperçu rapide des limites héritées par les processus lancés depuis le shell actuel.
Ensuite, vous avez exploré le fichier de configuration système /etc/security/limits.conf en utilisant cat. Ce fichier définit les limites de ressources par défaut pour les utilisateurs et les groupes, qui sont appliquées lors de la connexion. Enfin, vous avez vérifié les limites de ressources réelles d'un processus en cours d'exécution en examinant /proc/self/limits, qui montre les limites effectives pour le processus actuel, démontrant ainsi comment vérifier les limites appliquées à une instance de processus spécifique.



