Le système de fichiers proc est un
pseudosystème de fichiers qui fournit une interface avec les
structures de données du noyau. Il est généralement
monté sur /proc. La plupart des fichiers sont en lecture
seule, mais quelques uns permettent la modification de variables du
noyau.
La liste suivante décrit de nombreux fichiers et
répertoires de la hiérarchie de /proc.
- /proc/[pid]
- Il existe un sous-répertoire pour chaque processus actif. Le
sous-répertoire prend comme nom le PID du processus. Chaque
sous-répertoire contient les pseudofichiers et
pseudorépertoires suivants.
- /proc/[pid]/auxv (depuis le noyau 2.6.0-test7)
- Il comporte le contenu des informations passées par
l'interpréteur ELF au processus lors de son exécution. Le
format est constitué, pour chacune des entrées, d'un
identifiant unsigned long suivi d'une valeur unsigned
long. La dernière entrée comporte deux
zéros.
- /proc/[pid]/cgroup (depuis Linux 2.6.24)
- Ce fichier décrit les groupes de contrôle auquel le
processus ou la tâche appartiennent. Pour chaque hiérarchie
de cgroup, une entrée contient une liste de champs
séparés par des deux-points sous la forme :
5:cpuacct,cpu,cpuset:/daemons
- Les champs séparés par des deux-points sont, de gauche
à droite :
- 1.
- identifiant numérique de hiérarchie ;
- 2.
- jeu de sous-systèmes liés à la
hiérarchie ;
- 3.
- groupe de contrôle dans la hiérarchie auquel appartient le
processus.
- Ce fichier n'est présent que si l'option de configuration du noyau
CONFIG_CGROUPS a été validée.
- /proc/[pid]/cmdline
- Ce fichier contient la ligne de commande complète du processus,
sauf s'il s'agit d'un zombie. Dans ce dernier cas, il n'y a rien dans ce
fichier : c'est-à-dire qu'une lecture de ce fichier ne
retournera aucun caractère. Les paramètres de la ligne de
commande apparaissent dans ce fichier comme un ensemble de chaînes
séparées par des octets nuls
(« \0 »), avec un octet nul
supplémentaire après la dernière chaîne.
- /proc/[pid]/coredump_filter (depuis le noyau 2.6.23)
- Consultez core(5).
- /proc/[pid]/cpuset (depuis le noyau 2.6.12)
- Consultez cpuset(7).
- /proc/[pid]/cwd
- Lien symbolique vers le répertoire de travail actuel du processus.
Pour obtenir le répertoire de travail du processus 20 par exemple,
vous pouvez faire ceci :
$ cd /proc/20/cwd; /bin/pwd
Notez que la commande directe pwd est souvent une
commande interne de l'interpréteur de commandes, et qu'elle
risque de ne pas fonctionner correctement. Avec bash(1), vous
pouvez utiliser pwd -P.
Dans un traitement multiprocessus (multithreaded), le contenu
de ce lien symbolique n'est pas disponible si le processus principal est
déjà terminé (typiquement par un appel à
pthread_exit(3).
- /proc/[pid]/environ
- Ce fichier contient l'environnement du processus. Les entrées sont
séparées par des caractères nuls
(« \0 »), et il devrait y en avoir un à
la fin du fichier. Ainsi, pour afficher l'environnement du processus
numéro 1, vous pouvez utiliser :
$ strings /proc/1/environ
- /proc/[pid]/exe
- Sous Linux 2.2 et ultérieur, ce fichier est un lien symbolique
représentant le chemin réel de la commande en cours
d'exécution. Ce lien symbolique peut être
déréférencé normalement ; tenter de
l'ouvrir ouvrira le fichier exécutable. Vous pouvez même
entrer /proc/[pid]/exe pour lancer une autre instance du
même processus [pid] indiqué. Pour les multiprocessus, le
contenu de ce lien symbolique n'est pas disponible si le processus
principal s'est déjà terminé (typiquement par l'appel
de pthread_exit(3)).
Sous Linux 2.0 et précédents,
/proc/[pid]/exe était un pointeur sur le fichier binaire
exécuté, qui apparaissait sous forme de lien symbolique.
Un appel système readlink(2) sur ce fichier renvoyait une
chaîne de la forme :
[périphérique]:inœud
Par exemple, [0301]:1502 correspond à
l'inœud 1502 du périphérique ayant le
numéro majeur 03 (disque IDE, MFM, etc.) et mineur 01
(première partition du premier disque).
On peut utiliser find(1) avec l'option -inum
pour retrouver le fichier exécutable à partir du
numéro d'inœud.
- /proc/[pid]/fd/
- Il s'agit d'un sous-répertoire contenant une entrée pour
chaque fichier ouvert par le processus. Chaque entrée a le
descripteur du fichier pour nom, et est représentée par un
lien symbolique vers le vrai fichier. Ainsi, 0 correspond à
l'entrée standard, 1 à la sortie standard, 2 à la
sortie d'erreur, etc.
Pour les descripteurs de fichier de tubes et sockets, les
entrées seront des liens symboliques dont le contenu est le type
de fichier avec l’inœud. Un appel de readlink(2)
sur ce fichier renvoie une chaîne au format :
type:[inœud]
Par exemple, socket:[2248868] sera une socket est son
inœud est 2248868. Pour les sockets, cet inœud permet de
trouver plus de renseignements dans un des fichiers de
/proc/net/.
Pour les descripteurs de fichier sans inœud
correspondant (par exemple les descripteurs de fichier produits par
epoll_create(2), eventfd(2), inotify_init(2),
signalfd(2) et timerfd(2)), l’entrée sera un
lien symbolique avec un contenu de la forme :
inœud_anon:<type-fichier>
Dans certains cas, le type-fichier est entouré
de crochets.
Par exemple, un descripteur de fichier epoll aura un lien
symbolique dont le contenu est la chaîne
anon_inode:[eventpoll].
Dans un traitement multiprocessus (multithreaded), le contenu
de ce répertoire n'est pas disponible si le processus principal
est déjà terminé (typiquement par l'appel de
pthread_exit(3).
Les programmes qui prennent un nom de fichier comme
paramètre de la ligne de commande mais qui ne lisent pas
l'entrée standard si aucun paramètre n'est fourni, ou qui
écrivent dans un fichier indiqué par un paramètre
de la ligne de commande sans écrire sur la sortie standard si
aucun paramètre n'est fourni, peuvent néanmoins utiliser
l'entrée standard et la sortie standard par
l'intermédiaire de /proc/[pid]/fd. Par exemple, en
supposant que l'option -i indique le nom du fichier
d'entrée et l'option -o le nom du fichier de
sortie :
$ tototiti -i /proc/self/fd/0 -o /proc/self/fd/1 ...
et vous avez alors réalisé un filtre.
/proc/self/fd/N est approximativement identique
à /dev/fd/N sur certains systèmes UNIX et
pseudo-UNIX. D'ailleurs la plupart des scripts MAKEDEV de Linux lient
symboliquement en fait /dev/fd à /proc/self/fd.
La plupart des systèmes fournissent les liens
symboliques /dev/stdin, /dev/stdout et /dev/stderr,
qui sont respectivement liés aux fichiers 0, 1 et
2 de /proc/self/fd. Par conséquent, l'exemple
précédent peut être écrit de la façon
suivante :
$ foobar -i /dev/stdin -o /dev/stdout ...
- /proc/[pid]/fdinfo/ (depuis le noyau 2.6.22)
- Il s'agit d'un sous-répertoire contenant une entrée pour
chaque fichier ouvert par le processus, nommé par son descripteur
de fichier. Le contenu de chaque fichier peut être lu afin
d'obtenir des informations sur le descripteur de fichier correspondant,
par exemple :
$ cat /proc/12015/fdinfo/4
pos: 1000
flags: 01002002
Le champ pos est un nombre décimal indiquant la
position de la tête de lecture. Le champ flags est un
nombre octal indiquant les modes d'accès au fichier ainsi que ses
attributs d'état (consultez open(2)).
Les fichiers de ce répertoire ne sont accessibles en
lecture que par le propriétaire du processus.
- /proc/[pid]/io (depuis le noyau 2.6.20)
- Ce fichier contient des statistiques d’entrées et sorties
pour le processus, par exemple :
# cat /proc/3828/io
rchar: 323934931
wchar: 323929600
syscr: 632687
syscw: 632675
read_bytes: 0
write_bytes: 323932160
cancelled_write_bytes: 0
Les champs sont les suivants.
- rchar :
caractères lus
- Le nombre d’octets lus sur le support de stockage que cette
tâche a provoqué. C’est juste la somme
d’octets que ce processus a passé à read(2) et
aux appels système similaires. Cela comprend des choses comme les
entrées et sorties du terminal et ne dépend pas du fait que
de véritables entrées et sorties du disque physique aient
été nécessaires ou non (la lecture pourrait avoir
été réalisée à partir des
pagecache).
- wchar :
caractères écrits
- Le nombre d’octets écrits, ou à écrire, sur le
disque que cette tâche a provoqué. Des limitations
similaires à celles de rchar s’appliquent.
- syscr : appels
système lus
- Tentative de décompte du nombre d’opérations
d’entrées et sorties lues
— c’est-à-dire, des appels système
comme read(2) et pread(2).
- syscw : appels
système écrits
- Tentative de décompte du nombre d’opérations
d’entrées et sorties écrites
— c’est-à-dire, des appels système
comme write(2) et pwrite(2).
- read_bytes :
octets lus
- Tentative de décompte du nombre d’octets que ce processus a
vraiment forcé à récupérer sur la couche de
stockage. C’est précis pour les systèmes de fichiers
à base de blocs.
- write_bytes :
octets écrits
- Tentative de décompte du nombre d’octets que ce processus a
forcé à envoyer vers la couche de stockage.
- cancelled_write_bytes :
- La grosse inexactitude ici est la troncature. Si un processus écrit
1 Mo vers un fichier puis efface ce fichier, il n’aura de
fait réalisé aucune écriture. Pourtant, il sera
compté comme ayant provoqué 1 Mo
d’écriture. Autrement dit, ce champ représente le
nombre d’octets que ce processus n’a pas pu écrire,
en tronquant les pagecache. Une tâche peut aussi provoquer des
entrées et sorties
« négatives ». Si cette tâche
tronque quelques pagecache sales, certaines des entrées et sorties
qui ont été comptabilisées pour une autre
tâche (dans son write_bytes) n’arriveront pas.
- Remarque : dans l’implémentation actuelle, les
choses sont un peu en situation de compétition sur les
systèmes 32 bits : si le processus B lit le
/proc/[pid]/io du processus B pendant que ce dernier est en
train de mettre à jour un de ces compteurs en 64 bits, le
processus A pourrait voir un résultat
intermédiaire.
- /proc/[pid]/limits (depuis le noyau 2.6.24)
- Ce fichier indique les limites souples et strictes ainsi que les
unités de mesure de chaque limite de ressources du processus
(consultez getrlimit(2)). Jusqu'à Linux 2.6.35
inclus, ce fichier est protégé de telle sorte que seul l'UID
réel du processus puisse le lire. Depuis Linux 2.6.36, ce
fichier est lisible par tout les utilisateurs du système.
- /proc/[pid]/map_files/ (depuis le noyau 3.3)
- Ce sous-répertoire contient des entrées correspondant aux
fichiers projetés en mémoire (consultez mmap(2)). Les
entrées sont nommées par paires d'adresses (exprimées
en nombres hexadécimaux) de début et fin de zone
mémoire et sont des liens symboliques au fichiers projetés
eux-mêmes. Voici un exemple, avec la sortie coupée et
formatée pour tenir sur un affichage en 80 colonnes :
$ ls -l /proc/self/map_files/
lr--------. 1 root root 64 Apr 16 21:31
3252e00000-3252e20000 -> /usr/lib64/ld-2.15.so
...
Bien que ces entrées soient présentes pour des
zones de mémoire ayant été projetées avec
l'attribut MAP_FILE, la façon dont la mémoire
partagée anonyme (les zones créées avec les
attributs MAP_ANON | MAP_SHARED) est implémentée
dans Linux signifie que ce genre de zones apparaissent aussi dans ce
répertoire. Voici un exemple où le fichier cible est le
/dev/zero effacé :
lrw-------. 1 root root 64 Apr 16 21:33
7fc075d2f000-7fc075e6f000 -> /dev/zero (effacé)
Ce répertoire n'existe que si l'option de configuration
du noyau CONFIG_CHECKPOINT_RESTORE a été
validée.
- /proc/[pid]/maps
- Fichier contenant les régions de la mémoire actuellement
projetées et leurs autorisations d'accès. Consultez
mmap(2) pour de plus amples renseignements sur les projections en
mémoire.
Le format du fichier est :
adresse droits posit. périph. inœud chemin
00400000-00452000 r-xp 00000000 08:02 173521 /usr/bin/dbus-daemon
00651000-00652000 r--p 00051000 08:02 173521 /usr/bin/dbus-daemon
00652000-00655000 rw-p 00052000 08:02 173521 /usr/bin/dbus-daemon
00e03000-00e24000 rw-p 00000000 00:00 0 [heap]
00e24000-011f7000 rw-p 00000000 00:00 0 [heap]
...
35b1800000-35b1820000 r-xp 00000000 08:02 135522 /usr/lib64/ld-2.15.so
35b1a1f000-35b1a20000 r--p 0001f000 08:02 135522 /usr/lib64/ld-2.15.so
35b1a20000-35b1a21000 rw-p 00020000 08:02 135522 /usr/lib64/ld-2.15.so
35b1a21000-35b1a22000 rw-p 00000000 00:00 0
35b1c00000-35b1dac000 r-xp 00000000 08:02 135870 /usr/lib64/libc-2.15.so
35b1dac000-35b1fac000 ---p 001ac000 08:02 135870 /usr/lib64/libc-2.15.so
35b1fac000-35b1fb0000 r--p 001ac000 08:02 135870 /usr/lib64/libc-2.15.so
35b1fb0000-35b1fb2000 rw-p 001b0000 08:02 135870 /usr/lib64/libc-2.15.so
...
f2c6ff8c000-7f2c7078c000 rw-p 00000000 00:00 0 [stack:986]
...
7fffb2c0d000-7fffb2c2e000 rw-p 00000000 00:00 0 [stack]
7fffb2d48000-7fffb2d49000 r-xp 00000000 00:00 0 [vdso]
Le champ adresse correspond à l'espace
d'adressage du processus que la projection occupe. le champ
droits est un ensemble d'autorisations :
r = lecture
w = écriture
x = exécution
s = partage
p = privé (copie lors de l'écriture)
Le champ posit. est la position dans le fichier ou
autre, périph. correspond à la paire
(majeur:mineur). inœud est l'inœud sur ce
périphérique. 0 signifie qu'aucun inœud n'est
associé à cette zone mémoire, comme c'est le cas
avec BSS (données non initialisées).
Le champ chemin sera normalement le fichier qui
s'appuie sur la projection. Pour les fichiers ELF, faire correspondre le
champ chemin est facile en regardant le champ Offset des
en-têtes du programme ELF (readelf -l).
Des pseudochemins pratiques supplémentaires
existent.
- [stack]
- La pile du processus initial (aussi connu comme le thread principal).
- [stack:<tid>] (depuis Linux 3.4)
- Une pile de thread (où <tid> est un identifiant de
thread). Cela correspond au chemin /proc/[pid]/task/[tid]/.
- [vdso]
- L'objet virtuel partagé lié dynamiquement.
- [heap]
- Le tas du processus.
- Si le champ chemin est vide, c'est une projection anonyme telle
qu'obtenue par la fonction mmap(2). Faire correspondre cela
à une source de processus est compliqué, sauf en
l'exécutant à l'aide de gdb(1), strace(1) ou
similaire.
Sous Linux 2.0, aucun champ n'indique le chemin
d'accès.
- /proc/[pid]/mem
- Ce fichier permet d'accéder à la mémoire d'un
processus au travers de open(2), read(2), et
lseek(2).
- /proc/[pid]/mountinfo (depuis Linux 2.6.26)
- Ce fichier contient des informations relatives aux points de montage. Il
contient des lignes de la forme :
36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
(1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11)
- Les nombres entre paranthèses sont des étiquettes pour les
descriptions suivantes :
- (1)
- mount ID : identifiant unique du montage (peut être
réutilisé après un umount(2)).
- (2)
- parent ID : identifiant du montage parent (ou de lui-même
pour le sommet de la hiérarchie).
- (3)
- major:minor : valeur de st_dev pour les fichiers sur le
système de fichiers (consultez stat(2)).
- (4)
- root : racine du montage dans le système de fichiers.
- (5)
- mount point : point de montage relatif à la racine du
processus.
- (6)
- mount options : options par montage.
- (7)
- optional fields : zéro ou plusieurs champs de la forme
« tag[:value] ».
- (8)
- separator : indique la fin des champs optionnels.
- (9)
- filesystem type : nom du système de fichiers de la forme
« type[.subtype] ».
- (10)
- mount source : informations spécifiques au système de
fichiers ou « none ».
- (11)
- super options : options par superbloc.
- Les outils d'analyse devraient ignorer les champs optionnels non reconnus.
Les champs optionnels actuellement disponibles sont :
- shared:X
- le montage est partagé par le groupe pair X
- master:X
- le montage est esclave pour le groupe pair X
- propagate_from:X
- le montage est esclave et reçoit des propagations provenant du
groupe pair X (*)
- unbindable
- le point de montage ne peut pas être lié
- (*) X est le group pair dominant le plus proche sous la racine du
processus. Si X est le maître immédiat du montage ou s'il
n'y a pas de group pair dominant sous la même racine, alors seul le
champ « master:X » est présent et pas
le champ « propagate_from:X ».
Pour plus d'informations sur les propagations de montage, voir
Documentation/filesystems/sharedsubtree.txt dans l'arborescence
des sources du noyau Linux.
- /proc/[pid]/mounts (depuis Linux 2.6.17)
- C'est une liste de tous les systèmes de fichiers montés dans
l'espace de noms de montage du processus. Le format de ce fichier est
documenté dans fstab(5). Depuis la version 2.6.15 du noyau,
ce fichier peut être pollué : après avoir
ouvert le fichier en lecture, une modification de ce fichier (par exemple,
le montage ou le démontage d'un système de fichiers)
provoque le marquage par select(2) du descripteur de fichier comme
étant lisible, et poll(2) et epoll_wait(2) marquent
le fichier comme étant en erreur.
- /proc/[pid]/mountstats (depuis Linux 2.6.17)
- Ce fichier exporte des informations (statistiques, configuration)
relatives aux points de montage dans l'espace de noms du processus. Les
lignes de ce fichier sont de la forme :
device /dev/sda7 mounted on /home with fstype ext3 [statistics]
( 1 ) ( 2 ) (3 ) (4)
- Les champs de chaque ligne sont :
- (1)
- Le nom du périphérique monté (ou
« nodevice » s'il n'y a pas de
périphérique correspondant).
- (2)
- Le point de montage dans l'arborescence du système de
fichiers.
- (3)
- Le type du système de fichiers.
- (4)
- Statistiques optionnelles et informations de configuration. Actuellement
(Linux 2.6.26), seuls les systèmes de fichiers NFS exportent
des informations à travers ce champ.
- Ce fichier n'est accessible en lecture que par le propriétaire du
processus.
- /proc/[pid]/ns/ (depuis Linux 3.0)
- Il s'agit d'un sous-répertoire contenant une entrée pour
chaque espace de noms qui peut être manipulé avec
setns(2). Pour plus de précisions sur les espaces de noms,
consultez clone(2).
- /proc/[pid]/ns/ipc (depuis Linux 3.0)
- Le montage lié de ce fichier (consultez mount(2)) ailleurs
dans le système de fichiers garde l'espace de noms IPC du processus
indiqué par pid opérationnel même si tous les
processus actuellement dans l'espace de noms se terminent.
L'ouverture de ce fichier renvoie un descripteur de fichier
pour l'espace de noms IPC du processus indiqué par pid.
Tant que ce descripteur de fichier reste ouvert, l'espace de noms IPC
restera opérationnel, même si tous les processus de
l'espace de noms se terminent. Le descripteur de fichier peut
être passé à setns(2).
- /proc/[pid]/ns/net (depuis Linux 3.0)
- Le montage lié de ce fichier (consultez mount(2)) ailleurs
dans le système de fichiers garde l'espace de noms réseau du
processus indiqué par pid opérationnel même si
tous les processus de l'espace de noms se terminent.
L'ouverture de ce fichier renvoie un descripteur de fichier
pour l'espace de noms réseau du processus indiqué par
pid. Tant que ce descripteur de fichier reste ouvert, l'espace de
noms réseau restera opérationnel, même si tous les
processus de l'espace de noms se terminent. Le descripteur de fichier
peut être passé à setns(2).
- /proc/[pid]/ns/uts (depuis Linux 3.0)
- Le montage lié de ce fichier (consultez mount(2)) ailleurs
dans le système de fichiers garde l'espace de noms UTS du processus
indiqué par pid opérationnel même si tous les
processus de l'espace de noms se terminent.
L'ouverture de ce fichier renvoie un descripteur de fichier
pour l'espace de noms UTS du processus indiqué par pid.
Tant que ce descripteur de fichier reste ouvert, l'espace de noms UTS
restera opérationnel, même si tous les processus de
l'espace de noms se terminent. Le descripteur de fichier peut
être passé à setns(2).
- /proc/[pid]/numa_maps (depuis Linux 2.6.14)
- Consultez numa(7).
- /proc/[pid]/oom_adj (depuis Linux 2.6.11)
- Ce fichier permet d'ajuster la notation utilisée pour
sélectionner le processus qui sera tué dans une situation de
mémoire saturée. Le noyau utilise cette valeur pour une
opération de décalage sur la valeur oom_score du
processus : les valeurs valables sont dans l'intervalle de -16
à +15 plus la valeur spéciale -17, qui désactive
complètement la mise à mort sur mémoire
saturée du processus. Une notation négative diminue la
probabilité.
- La valeur par défaut de ce fichier est 0 ; un nouveau
processus hérite de la valeur oom_adj de son père. Un
processus doit être privilégié
(CAP_SYS_RESOURCE) pour mettre à jour ce fichier.
- Depuis Linux 2.6.36, l'utilisation de ce fichier est
déconseillée en faveur de
/proc/[pid]/oom_score_adj.
- /proc/[pid]/oom_score (depuis Linux 2.6.11)
- Ce fichier indique la notation actuelle donnée par le noyau pour
sélectionner un processus pour une mise à mort sur
mémoire saturée. Une notation élevée signifie
que le processus a plus de chance d'être sélectionné
pour une mise à mort sur mémoire saturée. La base de
cette notation est la quantité de mémoire utilisée
par le processus. Cette notation peut augmenter (+) ou diminuer (-) en
fonction des facteurs suivants :
- le processus crée beaucoup d'enfants avec fork(2)
(+) ;
- le processus s'exécute depuis longtemps ou a consommé
beaucoup de temps processeur (-) ;
- le processeur a une faible valeur de courtoisie (c'est-à-dire
positive) (+) ;
- le processus est privilégié (-) ; et
- le processus effectue des accès matériels directs (-).
- oom_score reflète également l'ajustement
indiqué dans les réglages oom_score_adj ou
oom_adj du processus.
- /proc/[pid]/oom_score_adj (depuis Linux 2.6.36)
- Ce fichier permet d'ajuster l'heuristique de mauvaise conduite
(« badness ») utilisée pour
sélectionner le processus qui sera tué dans une situation de
mémoire saturée.
L'heuristique de mauvaise conduite assigne une valeur à
chaque tâche candidate entre 0 (ne jamais tuer) et 1000 (toujours
tuer) pour déterminer le processus ciblé. Les
unités sont à peu près proportionnelles à la
quantité de mémoire allouée dont le processus
pourrait bénéficier, à partir de l'estimation de
son utilisation actuelle de mémoire et d'espace d'échange.
Par exemple si une tâche utilise toute la mémoire
allouée, sa notation de mauvaise conduite sera 1000. S'il utilise
la moitié de sa mémoire alloué, sa notation sera
500.
Un autre facteur est inclus dans la notation de mauvaise
conduite : 3 % de mémoire supplémentaire est
allouée aux processus du superutilisateur par rapport aux autres
tâches.
La quantité de mémoire
« permise » dépend du contexte dans
lequel la mise à mort sur mémoire saturée a
été effectuée. Si elle est causée par la
saturation de mémoire assignée au cpuset de tâche
allouant, la mémoire permise représente l'ensemble de mems
assignées à ce cpuset (consultez cpuset(7)). Si
elle est provoquée par la saturation de nœud(s) de
mempolicy, la mémoire permise représente l'ensemble de
nœuds de mempolicy. Si elle est due à l'atteinte d'une
limite de mémoire (ou limite d'espace d'échange), la
mémoire allouée est cette limite configurée. Enfin,
si la cause est la saturation de mémoire du système
complet, la mémoire permise représente toutes les
ressources allouables.
La valeur de oom_score_adj est ajoutée à
la notation de mauvaise conduite avant qu'elle ne soit utilisée
pour déterminer la tâche à tuer. Les valeurs
acceptables sont comprises entre -1000 (OOM_SCORE_ADJ_MIN) et +1000
(OOM_SCORE_ADJ_MAX). Cela permet à l'espace utilisateur de
contrôler les préférences de mise à mort sur
mémoire saturée, entre toujours préférer une
tâche en particulier ou désactiver complètement la
mise à mort sur mémoire saturée. La plus faible
valeur possible, -1000, est équivalente à
désactiver complètement la mise à mort sur
mémoire saturée pour cette tâche, puisque la
notation de mauvaise conduite sera toujours 0.
Par conséquent, il est trivial pour l'espace
utilisateur de définir la quantité de mémoire
à considérer pour chaque tâche. Configurer une
valeur oom_score_adj de +500, par exemple, est à peu
près équivalent à permettre au reste des
tâches partageant les mêmes ressources du système,
de cpuset, de mempolicy ou du contrôleur de mémoire
d'utiliser au moins 50 % de mémoire en plus. Une valeur de
-500, au contraire, serait à peu près équivalent
à ne prendre en compte que la moitié de l'espace
mémoire alloué à la tâche pour la notation
contre cette tâche.
Pour des raisons de compatibilité ascendante avec les
précédents noyaux, /proc/[pid]/oom_adj peut encore
être utilisé pour ajuster la notation de mauvaise
conduite. Sa valeur est mise à l'échelle
linéairement avec oom_score_adj.
Écrire vers /proc/[pid]/oom_score_adj ou
/proc/[pid]/oom_adj modifiera l'autre avec sa valeur mise
à l'échelle.
- /proc/[pid]/root
- UNIX et Linux gèrent une notion de racine du système de
fichiers par processus, configurée avec l'appel système
chroot(2). Ce fichier est un lien symbolique qui pointe vers le
répertoire racine du processus, et se comporte de la même
façon que exe et fd/*.
Dans un traitement multiprocessus (multithreaded), le contenu
de ce lien symbolique n'est pas disponible si le processus principal est
déjà terminé (typiquement par un appel à
pthread_exit(3).
- /proc/[pid]/smaps (depuis Linux 2.6.14)
- Ce fichier affiche la mémoire utilisée par les cartes de
chacun des processus. Pour chacune des cartes, il y a une série de
lignes comme les suivantes :
08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash
Size: 464 kB
Rss: 424 kB
Shared_Clean: 424 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
La première de ces lignes montre les mêmes informations que
celles qui sont affichées pour la cartographie mémoire dans
/proc/[pid]/maps. Les lignes qui suivent montrent la taille des
cartes, la taille mémoire actuellement résidente en
mémoire vive, le nombre de pages partagées de la carte
« propres » ou
« sales », et le nombre de cartes
privées propres ou sales.
Ce fichier n'est présent que si l'option de
configuration du noyau CONFIG_MMU a été
validée.
- /proc/[pid]/stat
- Informations sur l'état du processus. C'est utilisé par
ps(1). La définition se trouve dans
/usr/src/linux/fs/proc/array.c.
Les champs sont, dans l'ordre, et avec leur propre
spécificateur de format de type scanf(3) :
- pid %d
- (1) Identifiant du processus.
- comm %s
- (2) Nom du fichier exécutable entre parenthèses. Il est
visible que l'exécutable ait été
déchargé sur l'espace d'échange
(« swappé ») ou pas.
- state %c
- (3) Un caractère parmi « RSDZTW » ou R
signifie que le processus est en cours d'exécution, S endormi dans
un état non interruptible, D en attente de disque de manière
non interruptible, Z zombie, T qu'il est suivi pour une trace ou
arrêté par un signal et W qu'il effectue une pagination vers
l'espace d'échange.
- ppid %d
- (4) PID du processus parent.
- pgrp %d
- (5) Identifiant de groupe de processus du processus.
- session
%d
- (6) Identifiant de session du processus.
- tty_nr %d
- (7) Terminal de contrôle du processus (le numéro mineur de
périphérique dans la combinaison des bits 31 à 20 et
7 à 0 ; le numéro majeur est dans les bits 15
à 8).
- tpgid %d
- (8) Identifiant du groupe de processus d'arrière-plan du terminal
de contrôle du processus.
- flags %u
(était %lu avant Linux 2.6.22)
- (9) Mot contenant les indicateurs du noyau pour le processus. Pour en
savoir plus sur la signification des bits, consultez les
définitions de PF_* dans le fichier <linux/sched.h>
des sources du noyau Linux. Les détails dépendent de la
version du noyau.
- minflt %lu
- (10) Nombre de fautes mineures que le processus a
déclenchées et qui n'ont pas nécessité le
chargement d'une page mémoire depuis le disque.
- cminflt
%lu
- (11) Nombre de fautes mineures que les enfants en attente du processus ont
déclenchées.
- majflt %lu
- (12) Nombre de fautes majeures que le processus a
déclenchées et qui ont nécessité un chargement
de page mémoire depuis le disque.
- cmajflt
%lu
- (13) Nombre de fautes majeures que les enfants en attente du processus ont
déclenchées.
- utime %ld
- (14) Temps passé en mode utilisateur par le processus,
mesuré en top d'horloge (divisé par
sysconf(_SC_CLK_TCK)). Cela comprend le temps de client,
guest_time (temps passé à exécuter un
processeur virtuel, voir plus loin), de sorte que les applications qui ne
sont pas au courant du champ « temps de
client » ne perdent pas ce temps dans leurs calculs.
- stime %ld
- (15) Temps passé en mode noyau par le processus, mesuré en
top d'horloge (divisé par sysconf(_SC_CLK_TCK)).
- cutime %ld
- (16) Temps passé en mode utilisateur par le processus et ses
descendants, mesuré en top d'horloge (divisé par
sysconf(_SC_CLK_TCK)). Consultez aussi times(2)). Cela
comprend le temps de client, cguest_time (temps passé
à exécuter un processeur virtuel, voir plus loin).
- cstime %ld
- (17) Temps passé en mode noyau par le processus et ses descendants,
mesuré en top d'horloge (divisé par
sysconf(_SC_CLK_TCK)).
- priority
%ld
- (18) (Explications pour Linux 2.6) Pour les processus
s'exécutant sous une politique d'ordonnancement temps réel
(policy plus loin ; voir sched_setscheduler(2)), il
s'agit de la valeur négative de la politique d'ordonnancement,
moins un ; c'est-à-dire un nombre dans l'intervalle -2
à -100, correspondant aux priorités temps réel 1
à 99. Pour les processus s'exécutant sous une politique
d'ordonnancement qui ne soit pas temps réel, il s'agit de la valeur
brute de courtoisie (setpriority(2)) comme
représentée dans le noyau. Le noyau enregistre les valeurs
de courtoisie sous forme de nombre de l'intervalle 0 (haute) à 39
(faible), correspondant à un intervalle de courtoisie visible par
l'utilisateur de -20 à 19.
Avant Linux 2.6, c'était une valeur
d'échelle basée sur la pondération de
l'ordonnanceur fournie au processus.
- nice %ld
- (19) Valeur de courtoisie (consultez setpriority(2)), une valeur
dans l'intervalle 19 (faible priorité) à -19 (haute
priorité).
- num_threads
%ld
- (20) Nombre de threads dans ce processus (depuis Linux 2.6). Avant
le noyau 2.6, ce champ était codé en dur à 0
pour remplacer un champ supprimé auparavant.
- itrealvalue
%lu
- (21) Nombre de jiffies avant que le signal SIGALRM suivant soit
envoyé au processus par un temporisateur interne. Depuis le
noyau 2.6.17, ce champ n'est plus maintenu et est codé en
dur à 0.
- starttime
%llu (était %lu avant Linux 2.6)
- (22) Instant auquel le processus a démarré après le
démarrage du système. Exprimé en jiffies avant le
noyau 2.6, il est désormais exprimé en top d'horloge
(divisé par sysconf(_SC_CLK_TCK)).
- vsize %lu
- (23) Taille de la mémoire virtuelle en octet.
- (24) Taille de l'ensemble résident (Resident Set Size) :
nombre de pages dont le processus dispose en mémoire réelle.
Il ne s'agit que des pages contenant les espaces de code, donnée et
pile. Cela n'inclut ni les pages en attente de chargement ni celles qui
ont été déchargées.
- (25) Limite souple actuelle en octet du RSS du processus ;
consultez la description de RLIMIT_RSS dans
getrlimit(2).
- startcode
%lu
- (26) Adresse au-dessus de laquelle le code du programme peut
s'exécuter.
- endcode
%lu
- (27) Adresse au-dessous de laquelle le code du programme peut
s'exécuter.
- startstack
%lu
- (28) Adresse de début (c'est-à-dire le bas) de la pile.
- kstkesp
%lu
- (29) Valeur actuelle du pointeur de pile (ESP), telle qu'on la trouve dans
la page de pile du noyau pour ce processus.
- kstkeip
%lu
- (30) EIP actuel (pointeur d'instructions).
- signal %ld
- (31) Masque des signaux en attente, affiché sous forme d'un nombre
décimal. Obsolète car il ne fournit pas d'informations sur
les signaux temps réel ; utilisez plutôt
/proc/[pid]/status.
- blocked
%ld
- (31) Masque des signaux bloqués, affiché sous forme d'un
nombre décimal. Obsolète car il ne fournit pas
d'informations sur les signaux temps réel ; utilisez
plutôt /proc/[pid]/status.
- sigignore
%ld
- (33) Masque des signaux ignorés, affiché sous forme d'un
nombre décimal. Obsolète car il ne fournit pas
d'informations sur les signaux temps réel ; utilisez
plutôt /proc/[pid]/status.
- sigcatch
%ld
- (34) Masque des signaux interceptés, affiché sous forme d'un
nombre décimal. Obsolète car il ne fournit pas
d'informations sur les signaux temps réel ; utilisez
plutôt /proc/[pid]/status.
- wchan %lu
- (35) « canal » sur lequel le processus est en
attente. C'est l'adresse d’un endroit dans le noyau où le
processus est endormi. Le nom symbolique correspondant est dans
/proc/[pid]/wchan.
- nswap %lu
- (36) Nombre de pages déplacées sur l'espace d'échange
(non maintenu).
- cnswap %lu
- (37) Champ nswap cumulé pour les processus enfants (non
maintenu).
- exit_signal
%d (depuis Linux 2.1.22)
- (38) Signal à envoyer au parent lors de la mort du processus.
- processor %d
(depuis Linux 2.2.8)
- (39) Numéro du processeur utilisé lors de la dernière
exécution.
- rt_priority
%u (depuis Linux 2.5.19 ; était %lu avant
Linux 2.6.22)
- (40) Priorité d'ordonnancement temps réel, un nombre dans
l'intervalle 1 à 99 pour les processus ordonnancés sous une
politique temps réel, ou 0 pour les processus non temps réel
(consultez sched_setscheduler(2)).
- policy %u (depuis
Linux 2.5.19 ; était %lu avant Linux 2.6.22)
- (41) Politique d'ordonnancement (consultez sched_setscheduler(2)).
Décoder avec les constantes SCHED_* de linux/sched.h.
- delayacct_blkio_ticks
%llu (depuis Linux 2.6.18)
- (42) Cumul des délais d'entrées et sorties, mesuré en
top horloge (centième de seconde).
- guest_time
%lu (depuis Linux 2.6.24)
- (43) Temps de client du processus (temps passé à
exécuter un processeur virtuel pour un système
d'exploitation client), mesuré en top d'horloge (divisé par
sysconf(_SC_CLK_TCK)).
- cguest_time
%ld (depuis Linux 2.6.24)
- (44) Temps de client des fils du processus, mesuré en top d'horloge
(divisé par sysconf(_SC_CLK_TCK)).
- /proc/[pid]/statm
- Donne des informations sur l'utilisation de la mémoire,
mesurée en pages. Les colonnes représentent :
size (1) taille totale du programme
(comme pour VmSize dans /proc/[pid]/status)
resident (2) taille résidant en mémoire
(comme pour VmRSS dans /proc/[pid]/status)
share (3) pages partagées (c'est-à-dire sauvegardées
dans un fichier)
text (4) texte (code)
lib (5) bibliothèque (non utilisé dans Linux 2.6)
data (6) données et pile
dt (7) pages touchées (dirty, non utilisé dans
Linux 2.6)
- /proc/[pid]/status
- Fournit l'essentiel des informations de /proc/[pid]/stat et
/proc/[pid]/statm dans un format plus facile à lire pour les
humains. Voici un exemple :
$ cat /proc/$$/status
Name: bash
State: S (sleeping)
Tgid: 3515
Pid: 3515
PPid: 3452
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 100 100 100 100
FDSize: 256
Groups: 16 33 100
VmPeak: 9136 kB
VmSize: 7896 kB
VmLck: 0 kB
VmHWM: 7572 kB
VmRSS: 6316 kB
VmData: 5224 kB
VmStk: 88 kB
VmExe: 572 kB
VmLib: 1708 kB
VmPTE: 20 kB
Threads: 1
SigQ: 0/3067
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: 00000001
Cpus_allowed_list: 0
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 150
nonvoluntary_ctxt_switches: 545
- Les champs sont les suivants.
- Name : Commande lancée par ce processus.
- State : État actuel du processus parmi les
valeurs : « R (running) »,
« S (sleeping) », « D (disk
sleep) », « T (stopped) »,
« T (tracing stop) », « Z
(zombie) » ou « X (dead) ».
- Tgid : Identifiant du groupe de threads
(c'est-à-dire, identifiant du processus PID).
- Pid : Identifiant de thread (consultez
gettid(2)).
- PPid : PID du processus parent.
- TracerPid : PID du processus traçant ce processus (0
s'il n'est pas tracé).
- Uid, Gid : UID (et GID) réel, effectif,
sauvé et de système de fichiers.
- FDSize : Nombre d'entrées de descripteurs de fichier
actuellement alloués.
- Groups : Liste des groupes supplémentaires.
- VmPeak : Taille de pointe de mémoire virtuelle.
- VmSize : Taille de mémoire virtuelle.
- VmLck : Taille de mémoire verrouillée
(consultez mlock(3)).
- VmHWM : Taille de pointe de mémoire résidente
(« High Water Mark »).
- VmRSS : Taille de mémoire résidente
- VmData, VmStk, VmExe : Taille des segments de
données, de pile et de texte.
- VmLib : Taille du code de bibliothèque
partagée.
- VmPTE : Taille des entrées de table de pages (depuis
Linux 2.6.10).
- Threads : Nombre de threads dans le processus contenant ce
thread.
- SigQ : Ce champ contient deux nombres séparés
par une barre oblique, qui se réfèrent aux signaux en
attente pour l'identifiant d'utilisateur réel de ce processus. Le
premier est le nombre de signaux en attente pour cet identifiant
d'utilisateur réel ; le second est la limite du nombre de
signaux pouvant être mis en attente pour ce processus (consultez la
description de RLIMIT_SIGPENDING dans getrlimit(2)).
- SigPnd, ShdPnd : Nombre de signaux en attente du
thread et du processus dans son ensemble (consultez pthreads(7) et
signal(7)).
- SigBlk, SigIgn, SigCgt : Masques indiquant les
signaux bloqués, ignorés et interceptés (consultez
signal(7)).
- CapInh, CapPrm, CapEff : Masques des
capacités actives dans les ensembles transmissibles, permis et
effectifs (consultez capabilities(7)).
- CapBnd : Ensemble de limitation de capacités
(Capability Bounding set ; depuis le noyau 2.6.26, consultez
capabilities(7)).
- Cpus_allowed : Masque des processeurs sur lesquels le
processus peut s'exécuter (depuis Linux 2.6.24, consultez
cpuset(7)).
- Cpus_allowed_list : Pareil que précédemment,
mais au format liste (depuis Linux 2.6.26, consultez
cpuset(7)).
- Mems_allowed : Masque des nœuds mémoire
autorisés pour ce processus (depuis Linux 2.6.24, consultez
cpuset(7)).
- Mems_allowed_list : Pareil que précédemment,
mais au format liste (depuis Linux 2.6.26, consultez
cpuset(7)).
- voluntary_context_switches,
nonvoluntary_context_switches : Nombre de basculement de
contexte, volontaire ou non (depuis Linux 2.6.23).
- /proc/[pid]/task (depuis Linux 2.6.0-test6)
- C'est un répertoire qui comporte un sous-répertoire pour
chacun des processus légers (threads) de la tâche. Le nom de
chacun des sous-répertoires est l'identifiant ([tid]) du
thread (consultez gettid(2). Dans chacun de ces
sous-répertoire se trouvent un ensemble de fichiers ayant le
même nom et contenu que dans les répertoires
/proc/[pid]. Pour les attributs qui sont partagés par tous
les processus, le contenu de chacun des fichiers se trouvant dans le
sous-répertoire task/[tid] sera identique à celui qui
se trouve dans le répertoire parent /proc/[pid] (par ex.,
pour une tâche multiprocessus, tous les fichiers
task/[tid]/cwd auront le même contenu que le fichier
/proc/[pid]/cwd dans le répertoire parent, puisque tous les
processus d'une même tâche partage le même
répertoire de travail. Pour les attributs qui sont distincts pour
chacun des processus, les fichiers correspondants sous task/[tid]
peuvent être différents (par ex., certains champs de chacun
de fichiers task/[tid]/status peuvent être différents
pour chaque processus).
Dans un traitement multiprocessus, le contenu du
répertoire /proc/[pid]/task n'est pas disponible si le
processus principal est déjà terminé (typiquement
lors de l'appel pthread_exit(3).
- /proc/[pid]/wchan (depuis Linux 2.6.0)
- Le nom symbolique correspondant à l’endroit dans le noyau
où le processus est endormi.
- /proc/apm
- La version du système de gestion de puissance APM et les
informations sur l'état de la batterie si la constante
CONFIG_APM était définie à la compilation du
noyau.
- /proc/bus
- Contient des sous-répertoires pour les bus installés.
- /proc/bus/pccard
- Répertoire pour les périphériques PCMCIA si la
constante CONFIG_PCMCIA était définie à la
compilation du noyau.
- /proc/[pid]/timers (depuis Linux 3.10)
- Une liste des temporisateurs POSIX pour ce processus. Chaque temporisateur
est indiqué par une ligne commençant par
« ID: ». Par exemple :
ID: 1
signal: 60/00007fff86e452a8
notify: signal/pid.2634
ClockID: 0
ID: 0
signal: 60/00007fff86e452a8
notify: signal/pid.2634
ClockID: 1
Les lignes montrées pour chaque temporisateur ont les
significations suivantes :
- ID
- L’identifiant de ce temporisateur. Ce n’est pas la
même chose que l’identifiant de temporisateur renvoyé
par timer_create(2). C’est plutôt le même
identifiant interne au noyau qui est disponible dans champ
si_timerid de la structure siginfo_t (consultez
sigaction(2)).
- signal
- C’est le numéro du signal que ce temporisateur utilise pour
délivrer les notifications, suivi d’une barre oblique, puis
de la valeur sigev_value.sival_ptr fournie au gestionnaire de
signal. Ce n’est valable que pour les temporisateurs qui notifient
à l’aide d’un signal.
- notify
- La partie qui précède la barre oblique indique le
mécanisme que ce temporisateur utilise pour délivrer des
notifications, c’est « thread »,
« signal » ou
« none » (aucun). Directement après la
barre oblique, c’est soit la chaîne
« tid » pour les temporisateurs avec
notification SIGEV_THREAD_ID, soit
« pid » pour les temporisateurs qui notifient
avec d’autres mécanismes. Après le
« . », c’est le PID du processus auquel
un signal sera délivré si le temporisateur délivre
les notifications à l’aide d’un signal.
- ClockID
- Ce champs identifie l’horloge utilisée par le temporisateur
pour mesurer le temps. Pour la plupart des horloges, c’est un
nombre qui correspond à une ces constantes CLOCK_*
exposées en espace utilisateur à l’aide de
<time.h>. Les temporisateurs CLOCK_PROCESS_CPUTIME_ID
affichent la valeur -6 dans ce champ. Les temporisateurs
CLOCK_THREAD_CPUTIME_ID affichent la valeur -2 dans ce champ.
- /proc/bus/pccard/drivers
- /proc/bus/pci
- Contient divers sous-répertoires de bus, et des pseudofichiers
recélant des informations sur les bus PCI, les
périphériques installés et leurs pilotes. Certains de
ces fichiers ne sont pas en ASCII pur.
- /proc/bus/pci/devices
- Informations sur les périphériques PCI. Peut-être
consulté grâce à lspci(8) et
setpci(8).
- /proc/cmdline
- Arguments passés au noyau Linux lors du boot.
Généralement par l'intermédiaire d'un gestionnaire de
boot comme lilo(8) ou grub(8).
- /proc/config.gz (depuis Linux 2.6)
- Ce fichier indique les options de configuration qui ont été
utilisées pour construire le noyau actuel, dans le même
format que celui utilisé pour le fichier .config
résultant de la configuration du noyau (en utilisant make
xconfig, make config, ou autre). Le contenu du fichier est
compressé ; parcourez le ou effectuez vos recherches avec
zcat(1) et zgrep(1). Tant qu'il n'y a pas de changement dans
les fichiers qui suivent, le contenu de /proc/config.gz est
identique à celui fournit par :
cat /lib/modules/$(uname -r)/build/.config
- /proc/config.gz n'est fourni que si le noyau est configuré
avec l'option CONFIG_IKCONFIG_PROC.
- /proc/cpuinfo
- Il s'agit d'informations dépendantes de l'architecture et du
processeur utilisé. Les deux seules entrées toujours
présentes sont processor qui donne le nombre de processeurs
et bogomips, une constante système calculée pendant
l'initialisation du noyau. Les machines SMP ont une ligne d'informations
pour chaque processeur. La commande lscpu(1) récupère
ses informations depuis ce fichier.
- /proc/devices
- Liste littérale des groupes de périphériques et des
numéros majeurs. Cela peut servir dans les scripts MAKEDEV pour
rester cohérent avec le noyau.
- /proc/diskstats (depuis Linux 2.5.69)
- Ce fichier contient les statistiques d'entrées et sorties du disque
pour chaque périphérique disque. Consultez le fichier fourni
avec les sources du noyau Linux Documentation/iostats.txt pour plus
d'informations.
- /proc/dma
- Il s'agit d'une liste des canaux DMA (Direct Memory Acess) ISA en
cours d'utilisation.
- /proc/driver
- Sous-répertoire vide.
- /proc/execdomains
- Liste des domaines d'exécution (personnalités).
- /proc/fb
- Information sur la mémoire d'écran Frame Buffer, lorsque la
constante CONFIG_FB a été définie lors de la
compilation du noyau.
- /proc/filesystems
- Liste textuelle des systèmes de fichiers qui sont pris en compte
par le noyau, c'est-à-dire les systèmes de fichiers qui ont
été compilés dans le noyau ou dont les modules du
noyau sont actuellement chargés. (Consultez aussi
filesystems(5)). Si un système de fichiers est marqué
par « nodev », cela signifie qu'il n'a pas
besoin d'un périphérique bloc pour être monté
(par exemple un système de fichiers virtuel, un système de
fichiers réseau).
Ce fichier peut éventuellement être
utilisé par mount(8) lorsqu'aucun système de
fichiers n'est indiqué et qu'il n'arrive pas à
déterminer le type du système de fichiers. Alors, les
systèmes de fichiers que comportent ce fichier sont
essayés (à l'exception de ceux qui sont marqués par
« nodev »).
- /proc/fs
- Sous-répertoire vide.
- /proc/ide
- Le répertoire /proc/ide existe sur les systèmes ayant
un bus IDE. Il y a des sous-répertoires pour chaque canal IDE et
les périphériques attachés. Les fichiers
contiennent :
cache taille du tampon en ko
capacity nombre de secteurs
driver version du pilote
geometry géométries physique et logique
identify identification en hexadécimal
media type de support
model référence fournisseur
settings configuration du pilote
smart_thresholds seuils en hexadécimal
smart_values paramètres in hexadécimal
L'utilitaire hdparm(8) fournit un accès
convivial à ces informations.
- /proc/interrupts
- Utilisé pour enregistrer le nombre d'interruptions par CPU et par
périphérique d'entrées et sorties. Depuis Linux
2.6.24, pour les architectures i386 et x86_64 au moins, il comprend
également les interruptions internes au système
(c'est-à-dire pas directement attachées à un
périphérique), comme les NMI (« nonmaskable
interrupt », interruption non masquable), LOC
(« local timer interrupt », interruption de
temporisateur local), et pour les systèmes SMP, TLB
(« TLB flush interrupt »), RES
(« rescheduling interrupt »), CAL
(« remote function call interrupt ») et
peut-être d'autres. Le format est très facile à lire,
en ASCII.
- /proc/iomem
- Projection des entrées et sorties en mémoire, depuis
Linux 2.4.
- /proc/ioports
- Il s'agit d'une liste des régions d'entrées et sorties en
cours d'utilisation.
- /proc/kallsyms (depuis Linux 2.5.71)
- Ce fichier contient les symboles exportés par le noyau et
utilisés par les outils des modules(X) pour assurer
l'édition dynamique des liens des modules chargeables. Dans Linux
2.5.47 et précédents, un fichier similaire avec une syntaxe
légèrement différente s'appelait ksyms.
- /proc/kcore
- Ce fichier représente la mémoire physique du système
sous forme de fichier ELF core. À l'aide de ce pseudofichier et
d'un binaire du noyau non stripé
(/usr/src/linux/vmlinux), gdb peut servir à inspecter
l'état de n'importe quelle structure de données du noyau.
La longueur totale de ce fichier est la taille de la
mémoire RAM physique plus 4 Ko.
- /proc/kmsg
- Ce fichier peut être utilisé à la place de l'appel
système syslog(2) pour journaliser les messages du noyau. Un
processus doit avoir les privilèges superutilisateur pour lire ce
fichier, et un seul processus à la fois peut le lire. Ce fichier ne
devrait pas être lu si un processus syslogd en cours
d’exécution utilise l'appel système syslog(2)
pour journaliser les messages du noyau.
Les informations de ce fichier sont consultées par le
programme dmesg(1).
- /proc/ksyms (Linux 1.1.23-2.5.47)
- Consultez /proc/kallsyms.
- /proc/loadavg
- Les trois premiers champs de ce fichier sont des valeurs de charge moyenne
donnant le nombre de travaux dans la file d'exécution (état
R) ou en attente d'E/S disque (état D) moyennés sur 1, 5 ou
15 minutes. Ils sont identiques aux valeurs de charge moyenne
données par uptime(1) et d'autres programmes. Le
quatrième champ est constitué de deux nombres
séparés par une barre oblique (/). Le premier d'entre eux
est le nombre d'entités d'ordonnancement du noyau (tâches,
processus) actuellement exécutables. La valeur qui suit la barre
oblique est le nombre d'entités d'ordonnancement du noyau qui
existent actuellement sur le système. Le cinquième champ est
le PID du processus le plus récemment créé sur le
système.
- /proc/locks
- Ce fichier montre les verrouillages actuels des fichiers (flock(2)
et fcntl(2)) et les baux (fcntl(2)).
- /proc/malloc (seulement jusqu'à Linux 2.2 inclus)
- Ce fichier n'est présent que si CONFIG_DEBUG_MALLOC a
été défini lors de la compilation du noyau.
- /proc/meminfo
- Ce fichier fournit des statistiques sur l'utilisation mémoire du
système. Il sert au programme free(1) pour indiquer la
quantité de mémoires (physique et d'échange) libre et
utilisée, ainsi que la mémoire partagée et les
tampons utilisés par le noyau. Chaque ligne du ficher contient un
nom de paramètre, suivi d'un deux points, la valeur du
paramètre et une unité éventuelle de mesure (par
exemple « kB » pour
« ko »). La liste suivante décrit les
noms de paramètre et le spécificateur de format
nécessaire pour lire la valeur du champ. À part si
précisé autrement, tous les champs sont présents
depuis au moins Linux 2.6.0. Certains champs ne sont
affichés que si le noyau a été configuré avec
plusieurs options ; ces dépendances sont notées dans
la liste.
- MemTotal
%lu
- Total de RAM utilisable (c'est-à-dire la RAM physique moins
quelques bits réservés et le code binaire du noyau).
- MemFree
%lu
- La somme de LowFree et HighFree.
- Buffers
%lu
- Stockage relativement temporaire pour les blocs de disque bruts qui ne
devraient pas devenir trop gros (environ 20 Mo).
- Cached %lu
- Cache en mémoire pour les fichiers sur le disque (le cache de
pages). N'inclut pas SwapCached.
- SwapCached
%lu
- La mémoire qui avait été placée en espace
d'échange (« swap »), qui en a
été retirée, mais qui et toujours dans le fichier
d'échange (si la pression en mémoire est importante, ces
pages n'ont pas besoin d'être de nouveau placées dans
l'espace d'échange, car elles sont déjà dans le
fichier d'échange. Cela évite des E/S).
- Active %lu
- La mémoire qui a été utilisée plus
récemment mais n'est pas réclamée tant que ce n'est
pas absolument nécessaire.
- Inactive
%lu
- La mémoire qui a été utilisée moins
récemment. Elle est plus éligible à être
réclamée pour autre chose.
- Active(anon)
%lu (depuis Linux 2.6.28)
- [À documenter.]
- Inactive(anon)
%lu (depuis Linux 2.6.28)
- [À documenter.]
- Active(file)
%lu (depuis Linux 2.6.28)
- [À documenter.]
- Inactive(file)
%lu (depuis Linux 2.6.28)
- [À documenter.]
- Unevictable
%lu (depuis Linux 2.6.28)
- (De Linux 2.6.28 à 2.6.30, CONFIG_UNEVICTABLE_LRU
était nécessaire.) [À documenter.]
- Mlocked %lu
(depuis Linux 2.6.28)
- (De Linux 2.6.28 à 2.6.30, CONFIG_UNEVICTABLE_LRU
était nécessaire.) [À documenter.]
- HighTotal
%lu
- (Depuis Linux 2.6.19, CONFIG_HIGHMEM est nécessaire.)
Quantité totale de mémoire haute. La mémoire haute
est toute la mémoire au-delà d'environ 860 Mo de
mémoire physique. Les espaces de mémoire haute sont pour les
programmes en espace utilisateur, ou pour le cache de page. Le noyau doit
utiliser des astuces pour utiliser cette mémoire, la rendant plus
lente d'accès que la mémoire basse.
- HighFree
%lu
- (Depuis Linux 2.6.19, CONFIG_HIGHMEM est nécessaire.)
Quantité de mémoire haute libre.
- LowTotal
%lu
- (Depuis Linux 2.6.19, CONFIG_HIGHMEM est nécessaire.)
Quantité totale de mémoire basse. La mémoire basse
est la mémoire qui peut être utilisée pour les
mêmes choses que la mémoire haute, mais est aussi disponible
au noyau pour ses propres structures de données. Entre autres
choses, c'est là qu'est alloué tout Slab. Des
problèmes peuvent survenir en cas d'épuisement de
mémoire basse.
- LowFree
%lu
- (Depuis Linux 2.6.19, CONFIG_HIGHMEM est nécessaire.)
Quantité de mémoire basse libre.
- MmapCopy %lu
(depuis Linux 2.6.29)
- (CONFIG_MMU est nécessaire.) [À documenter.]
- SwapTotal
%lu
- Quantité totale d'espace d'échange disponible.
- SwapFree
%lu
- Quantité d'espace d'échange non utilisée.
- Dirty %lu
- Mémoire en attente d'être réécrite sur
disque.
- Writeback
%lu
- Mémoire en cours de réécriture sur disque.
- AnonPages %lu
(depuis Linux 2.6.18)
- Pages sauvées sous une autre forme qu'un fichier, projetées
dans des tables de pages en espace utilisateur.
- Mapped %lu
- Fichier qui ont été projetés en mémoire, comme
les bibliothèques.
- Shmem %lu (depuis
Linux 2.6.32)
- [À documenter.]
- Slab %lu
- Cache de structures de données dans le noyau.
- SReclaimable
%lu (depuis Linux 2.6.19)
- Partie de Slab qui pourrait être réclamée,
comme les caches.
- SUnreclaim
%lu (depuis Linux 2.6.19)
- Partie de Slab qui ne peut pas être réclamée
en cas de pression en mémoire.
- KernelStack
%lu (depuis Linux 2.6.32)
- Quantité de mémoire allouée aux piles du noyau.
- PageTables
%lu (depuis Linux 2.6.18)
- Quantité de mémoire dédiée au plus bas niveau
des tables de pages.
- Quicklists
%lu (depuis Linux 2.6.27)
- (CONFIG_QUICKLIST est nécessaire.) [À
documenter.]
- NFS_Unstable
%lu (depuis Linux 2.6.18)
- Pages NFS envoyées au serveur, mais pas encore enregistrées
sur le support stable.
- Bounce %lu (depuis
Linux 2.6.18)
- Mémoire utilisée pour les « tampons de
rebond » des périphériques blocs.
- WritebackTmp
%lu (depuis Linux 2.6.24)
- Mémoire utilisée par FUSE pour les tampons de
réécriture temporaire.
- CommitLimit
%lu (depuis Linux 2.6.10)
- Basée sur le rapport du dépassement d'allocation
mémoire (« vm.overcommit_ratio »),
c'est la quantité totale de mémoire actuellement disponible
pour allouer dans le système. Cette limite n'est respectée
que si la gestion stricte du dépassement est activée
(mode 2 dans /proc/sys/vm/overcommit_ratio).
CommitLimit est calculée en utilisant la formule
suivante :
CommitLimit =
([total de pages de RAM] - [total de pages immenses TLB]) *
overcommit_ratio / 100 + [total de pages d’espace
d’échange]
Par exemple, sur un système ayant 1 Go de RAM
physique et 7 Go d'espace d'échange avec un
overcommit_ratio de 30, cette formule renvoie un
CommitLimit de 7.3 Go. Pour plus de précisions,
consultez la documentation du dépassement d'allocation
mémoire dans le fichier
Documentation/vm/overcommit-accounting des sources du noyau.
- Committed_AS
%lu
- La quantité de mémoire actuellement allouée dans le
système. Cette mémoire est la somme de toute la
mémoire qui a été allouée par les processus,
même s'ils ne l'ont pas encore
« utilisée ». Un processus qui alloue
1 Go de mémoire (en utilisant malloc(3) ou
équivalent), mais ne touche qu'à 300 Mo de cette
mémoire, sera vu comme n'utilisant que 300 Mo de
mémoire, même s'il a l'espace d'adresses alloué pour
1 Go. Ce 1 Go est la mémoire qui a été
« réservée » par la
mémoire virtuelle et peut être utilisée n'importe
quand par l'application d'allocation. Avec la gestion stricte du
dépassement activée (mode 2 dans
/proc/sys/vm/overcommit_memory), les allocations qui pourraient
dépasser CommitLimit (précisée ci-dessus) ne
sont pas permises. C'est utile s'il est nécessaire de garantir que
les processus ne vont pas échouer à cause du manque de
mémoire une fois la mémoire allouée
correctement.
- VmallocTotal
%lu
- Taille totale d'allocation de mémoire virtuelle.
- VmallocUsed
%lu
- Taille d'allocation de mémoire virtuelle utilisée.
- VmallocChunk
%lu
- Plus grand bloc contigu d'allocation de mémoire virtuelle
libérée.
- HardwareCorrupted
%lu (depuis Linux 2.6.32)
- (CONFIG_MEMORY_FAILURE est nécessaire.) [À
documenter.]
- AnonHugePages
%lu (depuis Linux 2.6.38)
- (CONFIG_TRANSPARENT_HUGEPAGE est nécessaire.) Pages immenses
sauvées sous une autre forme qu'un fichier, projetées dans
des tables de pages en espace utilisateur.
- HugePages_Total
%lu
- (CONFIG_HUGETLB_PAGE est nécessaire.) La taille d'espace
pour les pages immenses.
- HugePages_Free
%lu
- (CONFIG_HUGETLB_PAGE est nécessaire.) Le nombre de pages
immenses dans l'espace qui ne sont pas encore allouées.
- HugePages_Rsvd
%lu (depuis Linux 2.6.17)
- (CONFIG_HUGETLB_PAGE est nécessaire.) C'est le nombre de
pages immenses pour lesquelles un engagement a été fait pour
les allouer dans l'espace, mais qui n'ont pas encore été
allouées. Ces pages immenses réservées garantissent
qu'une application pourra allouer une page immense dans l'espace des pages
immenses au moment nécessaire.
- HugePages_Surp
%lu (depuis Linux 2.6.24)
- (CONFIG_HUGETLB_PAGE est nécessaire.) C'est le nombre de
pages immenses dans l'espace au-delà de la valeur de
/proc/sys/vm/nr_hugepages. Le nombre maximal de pages immenses en
excès est contrôlé par
/proc/sys/vm/nr_overcommit_hugepages.
- Hugepagesize
%lu
- (CONFIG_HUGETLB_PAGE est nécessaire.) La taille des pages
immenses.
- /proc/modules
- Liste littérale des modules qui ont été
chargés par le système. Consultez lsmod(8).
- /proc/mounts
- Avant le noyau 2.4.19, ce fichier était une liste de tous
les systèmes de fichiers actuellement monté sur le
système. Avec l'introduction des espaces de noms de montage par
processus dans Linux 2.4.19, ce fichier est devenu un lien vers
/proc/self/mounts, qui liste les points de montage de l'espace de
noms de montage du processus. Le format de ce fichier est documenté
dans fstab(5).
- /proc/mtrr
- Memory Type Range Registers. Consultez Documentation/mtrr.txt dans
les sources du noyau Linux pour plus d'informations.
- /proc/net
- Ce répertoire regroupe divers pseudofichiers relatifs aux
fonctionnalités réseau. Chaque fichier fournit des
informations concernant une couche particulière. Ces fichiers sont
en ASCII et sont donc lisible grâce à cat(1), mais le
programme standard netstat(8) fournit un accès plus propre
à ces données.
- /proc/net/arp
- Ce fichier contient un affichage ASCII lisible des tables ARP du noyau
servant à la résolution d'adresse. Il indique à la
fois les entrées apprises dynamiquement et celles
préprogrammées. Le format est le suivant :
Adresse IP Matériel Attribut Adresse matérielle Masque Périph.
192.168.0.50 0x1 0x2 00:50:BF:25:68:F3 * eth0
192.168.0.250 0x1 0xc 00:00:00:00:00:00 * eth0
Où « adresse IP » est
l'adresse IPv4 de la machine, le type de matériel est issu de la
RFC 826. L'attribut correspond aux attributs de la structure ARP
(définie dans /usr/include/linux/if_arp.h) et l'adresse
matérielle est celle de la couche physique de l'adaptateur
correspondant à l'adresse IP (si elle est connue).
- /proc/net/dev
- Ce pseudofichier contient des informations d'état sur les
périphériques réseau. Il contient les nombres de
paquets émis et reçus, le nombre d'erreurs et de collisions,
ainsi que d'autres données statistiques. Ce fichier est
utilisé par le programme ifconfig(8). Le format est le
suivant :
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 2776770 11307 0 0 0 0 0 0 2776770 11307 0 0 0 0 0 0
eth0: 1215645 2751 0 0 0 0 0 0 1782404 4324 0 0 0 427 0 0
ppp0: 1622270 5552 1 0 0 0 0 0 354130 5669 0 0 0 0 0 0
tap0: 7714 81 0 0 0 0 0 0 7714 81 0 0 0 0 0 0
- /proc/net/dev_mcast
- Définie dans /usr/src/linux/net/core/dev_mcast.c :
indx interface_name dmi_u dmi_g dmi_address
2 eth0 1 0 01005e000001
3 eth1 1 0 01005e000001
4 eth2 1 0 01005e000001
- /proc/net/igmp
- Protocole Internet Group Management Protocol. Défini dans
/usr/src/linux/net/core/igmp.c.
- /proc/net/rarp
- Ce fichier emploie le même format que le fichier arp, et
contient la projection inverse de la base de données
utilisée pour fournir les services de recherche inversée de
rarp(8). Si RARP n'est pas configuré dans le noyau, ce
fichier est absent.
- /proc/net/raw
- Fournit le contenu de la table des sockets RAW (brutes). La plupart des
informations ne sert que pour le débogage. La valeur
« sl » est l'emplacement de la socket dans la
table de hachage du noyau. Le champ
« local_address » contient l'adresse locale
ainsi que la paire de numéros associée au protocole.
« St » est l'état interne de la socket.
« tx_queue » et
« rx_queue » représentent les files
d'attente en émission et en réception en ce qui concerne
l'utilisation de la mémoire par le noyau. Les champs
« tr »,
« tm->when » et
« rexmits » ne sont pas utilisés par
« RAW ». Le champ uid contient l'identifiant
d'utilisateur (UID) effectif du créateur de la socket.
- /proc/net/snmp
- Ce fichier contient les données ASCII nécessaires pour les
bases d'informations d'IP, ICMP, TCP et UDP pour un agent SNMP.
- /proc/net/tcp
- Fournit le contenu de la table des sockets TCP. La plupart des
informations ne sert que pour le débogage. La valeur
« sl » est l'emplacement de la socket dans la
table de hachage du noyau. Le champ
« local_address » contient l'adresse locale
ainsi que la pair de numéros de port. Le champ
« rem_address » contient l'adresse distante et
la paire de numéros de port (si la socket est connectée).
« St » est l'état interne de la socket.
« tx_queue » et
« rx_queue » représentent les files
d'attente en émission et en réception en ce qui concerne
l'utilisation de la mémoire par le noyau. Les champs
« tr »,
« tm->when » et
« rexmits » contiennent des données
internes au noyau ne servant qu'au débogage. Le champ uid contient
l'identifiant d'utilisateur (UID) effectif du créateur de la
socket.
- /proc/net/udp
- Fournit le contenu de la table des sockets UDP. La plupart des
informations ne sert que pour le débogage. La valeur
« sl » est l'emplacement de la socket dans la
table de hachage du noyau. Le champ
« local_address » contient l'adresse locale
ainsi que la paire de numéros de port. Le champ
« rem_address » contient l'adresse distante et
la paire de numéros de port (si la socket est connectée).
« St » est l'état interne de la socket.
« tx_queue » et
« rx_queue » représentent les files
d'attente en émission et en réception en ce qui concerne
l'utilisation de la mémoire par le noyau. Les champs
« tr »,
« tm->when » et
« rexmits » ne sont pas utilisés par
UDP. Le champ uid contient l'identifiant d'utilisateur (UID) effectif du
créateur de la socket. Le format est :
sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid
1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
- /proc/net/unix
- Liste des sockets dans le domaine UNIX présentes sur le
système, et leurs états. Le format est :
Num RefCount Protocol Flags Type St Path
0: 00000002 00000000 00000000 0001 03
1: 00000001 00000000 00010000 0001 01 /dev/printer
Où « Num » est
l'emplacement dans la table du noyau.
« Refcount » est le nombre d'utilisateurs de
la socket. « Protocol » est toujours 0 pour
le moment. « Flags » représente un
attribut interne du noyau correspondant à l'état de la
socket. Le type est toujours 1 pour le moment (Les sockets de
datagrammes dans le domaine UNIX ne sont pas encore supportés par
le noyau). « St » est un état interne
de la socket, et Path correspond à l'éventuel chemin
d'accès de la socket.
- /proc/partitions
- Contient les numéros majeur et mineur de chaque partition, ainsi
que le nombre de blocs de 1024 octets et le nom de la
partition.
- /proc/pci
- Il s'agit d'une liste de tous les périphériques PCI
détectés pendant l'initialisation ainsi que leur
configuration.
Ce fichiers a été déprécié
au profit d'une nouvelle interface /proc pour le PCI
(/proc/bus/pci). Il est devenu optionnel dans Linux 2.2
(disponible par l'intermédiaire de CONFIG_PCI_OLD_PROC,
défini à la compilation du noyau). Il est devenu non
optionnel une fois de plus dans Linux 2.4. Ensuite, il a
été déprécié dans Linux 2.6 (il reste
disponible par l'intermédiaire du positionnement de
CONFIG_PCI_LEGACY_PROC), et il a finalement été
entièrement supprimé depuis Linux 2.6.17.
- /proc/profile (depuis Linux 2.4)
- Ce fichier n'est présent que si le noyau a été
démarré avec l'option profile=1. Il met à
disposition des informations de profilage sous une forme binaire lisible
par readprofile(1). Une écriture (par exemple d'une
chaîne vide) dans le fichier réinitialise les compteurs de
profilage. Dans le cas de certaines architectures, l'écriture d'un
entier « multiple de profilage » de taille
sizeof(int) configure la fréquence d'interruption du
profilage.
- /proc/scsi
- Répertoire regroupant les pseudofichiers du niveau scsi
intermédiaire et divers sous-répertoires pour les pilotes
SCSI de bas niveau. Ils contiennent un fichier pour chaque hôte
SCSI du système, chacun d'entre eux donnant l'état d'une
partie du sous-système d'E/S SCSI. Les fichiers contiennent des
structures sous forme ASCII, et sont donc lisibles avec cat(1).
On peut également écrire dans certains fichiers
pour reconfigurer le sous-système SCSI, ou
activer/désactiver certaines fonctionnalités.
- /proc/scsi/scsi
- Il s'agit d'une liste de tous les périphériques SCSI
reconnus par le noyau. Cette liste est la même que celle
affichée durant le démarrage. Le sous-système SCSI
n'accepte pour le moment que la commande add-single-device qui
permet au superutilisateur d'ajouter un périphérique
branché à chaud à la liste des
périphériques connus.
La commande
echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi
fera examiner le canal SCSI 0 par l'hôte scsi1, à la recherche
d'un périphérique identifié ID 5 LUN 0. S'il y a
déjà un périphérique à cette adresse ou
si l'adresse est inconnue, une erreur sera renvoyée.
- /proc/scsi/[nom_de_pilote]
- Le [nom_de_pilote] peut être actuellement :
NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma,
eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128,
u15-24f, ultrastore ou wd7000. Ces répertoires correspondent
à chaque pilote qui pilote au moins un HBA SCSI. Chaque
répertoire contient un fichier par hôte enregistré.
Chaque fichier hôte est baptisé avec le numéro
assigné à l'hôte durant l'initialisation.
La lecture de ces fichiers montrera en général
la configuration de l'hôte et du pilote, des
statistiques, etc.
L'écriture dans ces fichiers permettra
différentes choses suivant les hôtes. Par exemple, avec
les commandes latency et nolatency, le superutilisateur
peut activer ou inhiber le code de mesure de latence des commandes dans
le pilote eata_dma. Avec les commandes lockup et unlock,
il peut contrôler les verrouillages de bus simulés par le
pilote scsi_debug.
- /proc/self
- Ce répertoire se rapporte au processus accédant au
système de fichiers /proc, et est identique au
sous-répertoire de /proc ayant pour nom le PID du processus
appelant.
- /proc/slabinfo
- Information concernant les caches du noyau. Depuis Linux 2.6.16, ce
fichier n'est présent que si l'option de configuration du noyau
CONFIG_SLAB est validée. Les colonnes de
/proc/slabinfo sont :
nom-du-cache
nombre-d'objets-actifs
nombre-total-d'objets
taille-d-'objet
nombre-de-tampons-actifs
nombre-total-de-tampons
nombre-de-pages-par-tampon
Consultez slabinfo(5) pour plus de
précisions.
- /proc/stat
- Statistiques du noyau, et du système. Varie avec l'architecture,
les entrées communes sont les suivantes.
- cpu 3357 0 4313
1362393
- Temps, mesuré en unités de USER_HZ (centième de
seconde sur la plupart des architectures, utilisez
sysconf(_SC_CLK_TCK) pour connaître la valeur correcte), que
le système a passé dans les différents états
suivants.
- page 5741 1808
- Le nombre de pages que le système a paginé en entrée
et en sortie.
- swap 1 0
- Le nombre de pages de swap que le système a échangé
en entrée et en sortie.
- intr 1462898
- Cette ligne contient le nombre d'interruptions qui ont été
prises en compte depuis le démarrage du système, pour
chacune des interruptions possibles. La première colonne est le
total de toutes les interruptions ayant été prises en
compte ; chacune des colonnes suivantes représente le total
pour une interruption particulière.
- disk_io:
(2,0):(31,30,5764,1,2) (3,0):...
- (major,disk_idx):(noinfo, read_io_ops, blks_read, write_io_ops,
blks_written)
(Linux 2.4 seulement)
- ctxt 115315
- Le nombre de changements de contexte effectués par le
système.
- btime
769041601
- La date de démarrage du système en secondes
écoulées depuis l'époque, 1er janvier 1970
à 00:00:00 (UTC).
- processes
86031
- Le nombre de processus exécutés sur le système depuis
le démarrage.
- procs_running
6
- Nombre de processus dans un état exécutable. (à
partir de Linux 2.5.45).
- procs_blocked
2
- Nombre de processus bloqués en attente de fin d'E/S. (À
partir de Linux 2.5.45).
- /proc/swaps
- Les zones de swap utilisées. Consultez aussi swapon(8).
- /proc/sys
- Ce répertoire (présent depuis le noyau 1.3.57) contient un
ensemble de fichiers et de sous-répertoires correspondant à
des variables internes du noyau. Celles-ci peuvent être lues et
parfois modifiées en utilisant le pseudosystème de fichiers
/proc, et en utilisant l'appel système (obsolète)
sysctl(2).
- /proc/sys/abi (depuis Linux 2.4.10)
- Ce répertoire peut contenir des fichiers d'informations sur
l'exécutable de l'application. Consultez le fichier fourni avec les
sources du noyau Linux Documentation/sysctl/abi.txt pour plus
d'informations.
- /proc/sys/debug
- Ce répertoire peut être vide.
- /proc/sys/dev
- Ce répertoire contient des informations spécifiques sur les
périphériques (par exemple dev/cdrom/info). Sur
certains systèmes, il peut être vide.
- /proc/sys/fs
- Ce répertoire contient les fichiers et répertoires pour les
variables du noyau relatives aux systèmes de fichiers.
- /proc/sys/fs/binfmt_misc
- La documentation concernant les fichiers de ce répertoire se trouve
dans les sources du noyau Linux, dans
Documentation/binfmt_misc.txt.
- /proc/sys/fs/dentry-state (depuis Linux 2.2)
- Ce fichier contient des informations sur l'état du cache de
répertoire (dcache). Ce fichier contient six nombres
nr_dentry, nr_unused, age_limit (age en secondes),
want_pages (pages réclamées par le système) et
deux valeurs inutiles.
- nr_dentry est le nombre d'entrées dcache allouées. Ce
champ n'est pas utilisé dans Linux 2.2.
- nr_unused est le nombre d'entrées de répertoire
libres.
- age_limit est l'âge en seconde après lequel les
entrées de cache peuvent être réclamées quand
la mémoire libre diminue.
- want_pages n'est pas nul quand le noyau a appelé
shrink_dcache_pages() et que le cache de répertoire n'a pas encore
été élagué.
- /proc/sys/fs/dir-notify-enable
- Ce fichier permet d'activer ou inhiber l'interface dnotify
décrite dans fcntl(2) au niveau système Une valeur
nulle inhibe cette interface, et la valeur 1 l'active.
- /proc/sys/fs/dquot-max
- Ce fichier montre le nombre maximal d'entrées de quota de disque en
cache. Sur certains systèmes (2.4), il est absent. Si le nombre de
quotas de disque libres est très bas, et si vous avez un nombre
important d'utilisateurs simultanés, vous pouvez augmenter cette
valeur.
- /proc/sys/fs/dquot-nr
- Ce fichier montre le nombre d'entrées de quota de disque
allouées et le nombre d'entrées libres.
- /proc/sys/fs/epoll (depuis Linux 2.6.28)
- Ce répertoire contient le fichier max_user_watches, qui peut
être utilisé pour limiter la quantité de
mémoire du noyau utilisée par l'interface epoll.
Consultez epoll(7) pour davantage d'informations.
- /proc/sys/fs/file-max
- Ce fichier est la limite système du nombre de fichiers ouverts par
un processus. (Consultez aussi setrlimit(2) qui peut servir
à définir la limite par processus, RLIMIT_NOFILE). Si
vous avez beaucoup de messages d'erreurs dans le journal du noyau
indiquant un manque de descripteurs de fichiers (cherchez
« VFS: file-max limit <number>
reached »), essayez d'augmenter cette valeur.
echo 100000 > /proc/sys/fs/file-max
La constante NR_OPEN du noyau impose une limite
supérieure à la valeur que l'on peut placer dans
file-max.
Les processus privilégiés (CAP_SYS_ADMIN)
peuvent écraser la limite file-max.
- /proc/sys/fs/file-nr
- Ce fichier en lecture seule contient trois nombres : le nombre de
descripteurs de fichiers alloués (c'est-à-dire le nombre de
fichiers actuellement ouverts), le nombre de descripteurs de fichiers
libres et le nombre maximum de descripteurs de fichiers
(c'est-à-dire la même valeur que
/proc/sys/fs/file-max). Si le nombre de descripteurs alloués
est proche du maximum, vous devriez envisager d'augmenter le maximum.
Avant Linux 2.6, le noyau allouait les descripteurs dynamiquement,
mais ne les libèrait pas. Au lieu de cela, les descripteurs de
fichiers libres étaient stockés dans une liste pour
être réalloués, le nombre
« descripteurs de fichiers libres »
référant à la taille de cette liste. Un nombre
élevé de descripteurs de fichiers libres était
l'indication qu'un pic d'utilisation s'est produit. Depuis
Linux 2.6, le noyau désalloue les descripteurs de fichiers
libres, et ce compteur est toujours nul.
- /proc/sys/fs/inode-max (avant Linux 2.2)
- Ce fichier contient le nombre maximal d'inœuds en mémoire.
Cette valeur devrait être 3 à 4 fois plus grande que
le nombre file-max, car les descripteurs stdin,
stdout, et les sockets réseau nécessitent aussi un
inœud. Lorsque vous manquez régulièrement
d'inœuds, augmentez cette valeur.
Depuis Linux 2.4, il n'y a plus de limite statique du
nombre d'inœuds et ce fichier n'existe plus.
- /proc/sys/fs/inode-nr
- Ce fichier contient les deux premières valeurs
d'inode-state.
- /proc/sys/fs/inode-state
- Ce fichier contient sept nombres : nr_inodes,
nr_free_inodes, preshrink et quatre valeurs non
significatives.
nr_inodes est le nombre d'inœuds alloués
par le système. nr_free_inodes représente le nombre
d'inœuds libres.
preshrink est non nul lorsque nr_inodes >
inode-max et que le système doit purger la liste
d'inœuds plutôt qu'en allouer davantage. Ce champ n'est
plus significatif depuis Linux 2.4.
- /proc/sys/fs/inotify (depuis Linux 2.6.13)
- Ce répertoire contient les fichiers max_queued_events,
max_user_instances, et max_user_watches, qui peuvent
être utilisés pour limiter la quantité de
mémoire du noyau utilisée par l'interface inotify.
Consultez inotify(7) pour davantage d'informations.
- /proc/sys/fs/lease-break-time
- Ce fichier indique le délai de grâce que le noyau accorde
à un processus détenant un blocage de fichier (file lease,
consultez fcntl(2)) après qu'il lui a envoyé un
signal indiquant qu'un autre processus attend pour ouvrir le fichier. Si,
durant le délai de grâce, le détenteur du blocage ne
le supprime pas, en n'en diminue pas la portée, le noyau
éliminera de force le blocage.
- /proc/sys/fs/leases-enable
- Ce fichier permet d'activer ou d'inhiber les blocages de fichiers (file
lease, consultez fcntl(2)) pour tout le système. Si ce
fichier contient la valeur 0, les blocages sont désactivés,
une valeur non nulle les active.
- /proc/sys/fs/mqueue (depuis Linux 2.6.6)
- Ce répertoire contient les fichiers msg_max,
msgsize_max, et queues_max, qui contrôlent les
ressources utilisées par les files de messages POSIX. Consultez
mq_overview(7) pour davantage d'informations.
- /proc/sys/fs/overflowgid et /proc/sys/fs/overflowuid
- Ces fichiers contiennent des valeurs de GID et UID de débordement,
par défaut 65534. Certains systèmes de fichiers ne
supportent que des UID et GID sur 16 bits, bien que le noyau Linux les
gère sur 32 bits. Lorsque l'un de ces systèmes de
fichiers est monté en lecture/écriture, tout UID ou GID
dépassant 65535 est remplacé par la valeur de
débordement avant l'écriture sur le disque.
- /proc/sys/fs/pipe-max-size (depuis Linux 2.6.35)
- La valeur de ce fichier définit une limite supérieure pour
augmenter la capacité d'un tube en utilisant l'opération
fcntl(2) F_SETPIPE_SZ. Cette limite ne s'applique qu'aux
processus ordinaires (sans privilèges). La valeur par défaut
de ce fichier est 1048576. La valeur employée par ce fichier peut
être arrondie supérieurement, pour refléter la valeur
réellement employée pour une implémentation
adaptée. Pour connaître la valeur arrondie, il suffit
d'afficher le contenu de ce fichier après en avoir changé la
valeur. La valeur minimale qui peut être assignée à
ce fichier est la taille de la page.
- /proc/sys/fs/protected_hardlinks (depuis Linux 3.6)
- Quand la valeur dans ce fichier est 0, aucune restriction n'empêche
la création de liens physiques (c'est-à-dire le comportement
historique avant Linux 3.6). Quand la valeur de ce fichier est 1,
un lien physique ne peut être créé vers un fichier
cible que si une des conditions suivantes est vraie.
- L'appelant a la capacité CAP_FOWNER.
- L'UID de système de fichier du processus créant le lien
correspond au propriétaire (UID) du fichier cible
(conformément à la description de credentials(7),
l'UID de système de fichier d'un processus est normalement le
même que son UID effectif).
- Toutes les conditions suivantes sont vraies :
- la cible est un fichier régulier ;
- le fichier cible n'a pas son bit de droits Set-UID
activé ;
- le fichier cible n'a aucun de ses bits de droits Set-GID et
exécutable par le groupe activé ;
- l'appelant a le droit de lire et écrire le fichier cible (soit par
le masque des droits du fichier, soit car il dispose de la capacité
nécessaire).
- La valeur par défaut dans ce fichier est 0. Définir cette
valeur à 1 empêche une classe de problèmes de
sécurité de longue date provoqués par des situations
de compétition de date de vérifications ou de date
d'utilisation basées sur les liens physiques, la plupart du temps
constatés dans des répertoires accessibles en
écriture à tous comme /tmp. La méthode
habituelle pour exploiter ce défaut est de croiser les limites de
droits lors du suivi d'un lien physique donné (c'est-à-dire
qu'un processus du superutilisateur suit un lien créé par un
autre utilisateur). De plus, sur les systèmes sans partitions
séparées, cela empêche les utilisateurs non
autorisés d'« épingler » les
fichier Set-UID et Set-GID vulnérables, pour les empêcher
d'être mis à jour par l'administrateur ou d'être
liés vers des fichiers spéciaux.
- /proc/sys/fs/protected_symlinks (depuis Linux 3.6)
- Quand la valeur dans ce fichier est 0, aucune restriction n'empêche
le suivi de liens symboliques (c'est-à-dire le comportement
historique avant Linux 3.6). Quand la valeur de ce fichier est 1,
les liens symboliques ne sont suivis que dans l'une des circonstances
suivantes :
- l'UID de système de fichier du processus suivant le lien correspond
au propriétaire (UID) du lien symbolique (conformément
à la description de credentials(7), l'UID de système
de fichier d'un processus est normalement le même que son UID
effectif) ;
- le lien n'est pas dans un répertoire accessibles en écriture
à tous de façon
« sticky » ;
- le lien symbolique et son répertoire parent ont le même
propriétaire (UID).
- Un appel système qui n'arrive pas à suivre un lien
symbolique à cause des restrictions ci-dessus renvoie l'erreur
EACCES dans errno.
- La valeur par défaut dans ce fichier est 0. Définir cette
valeur à 1 empêche une classe de problèmes de
sécurité de longue date basés sur des situations de
compétition de date de vérifications ou de date
d'utilisation lors de l'accès aux liens symboliques.
- /proc/sys/fs/suid_dumpable (depuis Linux 2.6.13)
- La valeur de ce fichier détermine si des fichiers d'images
mémoire ont été produits pour
« set-user-ID » ou d'autre binaires
protégés ou corrompus. Trois différentes valeurs
entières peuvent être indiquées :
- 0 (par défaut)
- Cela donne le comportement traditionnel (antérieur à
Linux 2.6.13). Une image mémoire ne sera pas produite pour
un processus qui a modifié ses droits (en appelant
seteuid(2), setgid(2), ou autre, ou en exécutant un
programme set-user-ID ou set-group-ID) ou dont le binaire n'a pas le droit
de lecture actif.
- 1 (« débogage »)
- Des images mémoire de tous les processus seront faites si possible.
L'image mémoire appartient à l'identifiant d'utilisateur du
système de fichiers du processus dont l'image a été
créée et aucune mesure de sécurité n'est
prise. Cela n'est prévu que dans des situations où l'on
souhaite déboguer le système. Ptrace n'est pas
vérifié.
- 2 (« suidsafe »)
- L'image mémoire d'un binaire qui n'aurait normalement pas
été effectuée (voir « 0 »
ci-dessus) est prise lisible par le superutilisateur (root) seulement.
Cela permet à l'utilisateur de pourvoir supprimer l'image
mémoire mais pas de la lire. Pour des raisons de
sécurité, les images mémoires prises dans ce mode
n'en écraseront pas une autre ou d'autres fichiers. Ce mode est
adéquat lorsque l'administrateur essaie de déboguer des
problèmes dans un environnement normal.
- De plus, depuis Linux 3.6, /proc/sys/kernel/core_pattern
doit être soit un chemin absolu, soit une commande de tube
(« pipe »), comme précisé dans
core(5). Des avertissements seront écrits dans le journal du
noyau si core_pattern ne suit pas ces règles et aucune image
mémoire ne sera produite.
- /proc/sys/fs/super-max
- Ce fichier indique le nombre maximal de superblocs, et donc le nombre
maximal de systèmes de fichiers que le noyau peut monter. Vous
n'avez besoin d'augmenter super-max que si vous désirez
monter plus de systèmes de fichiers que ce que la valeur actuelle
de super-max vous permet.
- /proc/sys/fs/super-nr
- contient le nombre de systèmes de fichiers montés
actuellement.
- /proc/sys/kernel
- Ce répertoire contient des fichiers contrôlant tout une
série de paramètres, décrits ci-dessous.
- /proc/sys/kernel/acct
- Ce fichier contient trois nombres : un seuil haut, un
seuil bas et une période. Si la comptabilité
des processus à la manière BSD est activée, ses
valeurs déterminent son comportement. Si l'espace disque sur le
système de fichiers accueillant les statistiques descend sous le
seuil bas, (en pourcentage), la comptabilité est
suspendue. Si l'espace remonte au-dessus du seuil haut, elle
reprend. La période (en seconde) est celle avec laquelle le
noyau vérifie l'espace disque disponible. Les valeurs par
défaut sont 4, 2 et 30. Cela signifie que la comptabilité
est suspendue en dessous de 2 % d'espace libre, elle reprend
à partir de 4 % et la vérification a lieu toutes les
30 secondes.
- /proc/sys/kernel/cap_last_cap (depuis Linux 3.2)
- Consultez capabilities(7).
- /proc/sys/kernel/cap-bound (de Linux 2.2 à 2.6.24)
- Ce fichier conserve la valeur de limitation de capacités du
noyau (exprimée comme un nombre décimal signé). Cet
ensemble est filtré par un ET binaire avec les capacités du
processus lors d'un execve(2). À partir de
Linux 2.6.25, la limitation de capacités à
l'échelle du système a disparu pour être
remplacé par une limitation au niveau des threads ; voir
capabilities(7).
- /proc/sys/kernel/core_pattern
- Consultez core(5).
- /proc/sys/kernel/core_uses_pid
- Consultez core(5).
- /proc/sys/kernel/ctrl-alt-del
- Ce fichier contrôle la gestion de la séquence Ctrl-Alt-Suppr
du clavier. S'il contient la valeur zéro, Ctrl-Alt-Suppr est
capturé et envoyé au programme init(8) pour relancer
le système correctement. Si la valeur est supérieure
à zéro, la réaction de Linux à ce Coup-de-pied
Au C.. est un redémarrage immédiat, sans même
écrire le contenu des tampons en attente. Note : lorsqu'un
programme (comme dosemu) utilise le clavier en mode
« raw » (brut), la séquence
ctl-alt-suppr est interceptée par le programme avant même
d'atteindre le gestionnaire de console du noyau, et c'est à ce
programme de décider qu'en faire.
- /proc/sys/kernel/dmesg_restrict (depuis Linux 2.6.37)
- La valeur de ce fichier détermine qui peut voir le contenu du
journal système du noyau. Une valeur nulle dans ce fichier n'impose
aucune restriction. Si la valeur est 1, seuls les utilisateurs
autorisés peuvent lire le journal système du noyau
(consultez syslog(2) pour plus de précisions). Depuis
Linux 3.4, seuls les utilisateurs avec la capacité
CAP_SYS_ADMIN peuvent modifier la valeur de ce fichier.
- /proc/sys/kernel/domainname et
/proc/sys/kernel/hostname
- Ces fichiers servent à indiquer les noms NIS/YP de domaine et
d'hôte, exactement de la même manière que les
commandes domainname(1) et hostname(1).
C'est-à-dire :
# echo 'darkstar' > /proc/sys/kernel/hostname
# echo 'mydomain' > /proc/sys/kernel/domainname
a exactement le même effet que
# hostname 'darkstar'
# domainname 'mydomain'
Notez toutefois, que le classique darkstar.frop.org a le nom
d'hôte darkstar et le nom de domaine DNS (Internet Domain Name
Server) "frop.org", à ne pas confondre avec le nom de
domaine NIS (Network Information Service) ou YP (Yellow Pages). Ces noms
de domaines sont généralement différents. Pour plus
de détail, consultez la page hostname(1).
- /proc/sys/kernel/hotplug
- Ce fichier contient le chemin de l'agent du mécanisme de
branchement à chaud. La valeur par défaut est
/sbin/hotplug.
- /proc/sys/kernel/htab-reclaim
- (PowerPC seulement) Si ce fichier contient une valeur non nulle, la htab
du PowerPC (voir le fichier Documentation/powerpc/ppc_htab.txt du
noyau) est parcourue chaque fois que le système atteint la boucle
d'inactivité.
- /proc/sys/kernel/kptr_restrict (depuis Linux 2.6.38)
- La valeur de ce fichier détermine si des adresses du noyau sont
exposées par l'intermédiaire de fichiers /proc et
d'autres interfaces. Une valeur nulle dans ce fichier n'impose aucune
restriction. Si la valeur est 1, les pointeurs du noyau affichés en
utilisant le spécificateur de format %pK seront
remplacés par des zéros sauf si l'utilisateur a la
capacité CAP_SYSLOG. Si la valeur est 2, les pointeurs du
noyau affichés en utilisant le spécificateur de format
%pK seront remplacés par des zéros quelles que soient
les capacités de l'utilisateur. La valeur par défaut pour ce
fichier était 1 initialement, mais la valeur par défaut a
été changée à zéro avec
Linux 2.6.39. Depuis Linux 3.4, seuls les utilisateurs avec
la capacité CAP_SYS_ADMIN peuvent modifier la valeur de ce
fichier.
- /proc/sys/kernel/l2cr
- (Sur PowerPC seulement). Ce fichier contient un indicateur commandant le
cache L2 des cartes à processeur G3. Le cache est
désactivé si la valeur est nulle, activé sinon.
- /proc/sys/kernel/modprobe
- Ce fichier comporte le chemin du chargeur de modules du noyau. Sa valeur
par défaut est /sbin/modprobe. Ce fichier n'est
présent que si le noyau est construit avec l'option
CONFIG_MODULES activée (CONFIG_KMOD dans les
versions 2.6.26 et antérieures). C'est décrit dans le
fichier du noyau Linux Documentation/kmod.txt (il n'est
présent que dans les versions de noyau 2.4 et
antérieures).
- /proc/sys/kernel/modules_disabled (depuis Linux 2.6.31)
- Une valeur booléenne indiquant si les modules ont le droit
d'être chargés dans un noyau sinon modulaire. La valeur par
défaut est fausse (0), mais peut être définie
à vraie (1). Une fois vraie, les modules ne peuvent ni être
chargés, ni déchargés, et la valeur ne peut plus
être redéfinie à fausse. Le fichier n'est
présent que si le noyau est construit avec l'option
CONFIG_MODULES activée.
- /proc/sys/kernel/msgmax
- Ce fichier est une limite pour l'ensemble du système
précisant le nombre maximal d'octets par message écrit dans
une file de message System V.
- /proc/sys/kernel/msgmni (disponible depuis Linux 2.4)
- Ce fichier définit la limite pour le système du nombre
d'identifiants de files de messages.
- /proc/sys/kernel/msgmnb
- Ce fichier définit un paramètre valable pour l'ensemble du
système utilisé pour initialiser la valeur msg_qbytes
pour la création ultérieure de files de messages. La valeur
msg_qbytes indique le nombre maximal d'octets qui pourront
être écrits dans une file de messages.
- /proc/sys/kernel/ngroups_max (depuis Linux 2.6.4)
- Ce fichier est en lecture seule et affiche la limite supérieure du
nombre d’appartenances à un groupe pour un processus.
- /proc/sys/kernel/ostype et /proc/sys/kernel/osrelease
- Ces fichiers donnent des sous-chaînes de /proc/version.
- /proc/sys/kernel/overflowgid et
/proc/sys/kernel/overflowuid
- Ces fichiers remplissent le même rôle que
/proc/sys/fs/overflowgid et /proc/sys/fs/overflowuid.
- /proc/sys/kernel/panic
- Ce fichier donne un accès en lecture et écriture à la
variable panic_timeout du noyau. Si elle vaut zéro, le noyau
se mettra en boucle en cas de panique ; sinon elle indique que le
noyau devra redémarrer de lui-même après le nombre de
secondes qu'elle contient. Si vous utilisez le pilote logiciel de
surveillance watchdog, la valeur recommandée est de 60.
- /proc/sys/kernel/panic_on_oops (depuis Linux 2.5.68)
- Ce fichier contrôle le comportement du noyau lorsqu'un Oops
(défaut) ou un bogue est rencontré. Si ce fichier contient
0, alors le système tente de continuer à travailler. S'il
contient 1, alors le système attend quelques secondes (pour laisser
à klogd le temps d'enregistrer la sortie du Oops) puis
déclenche une panique. Si le fichier /proc/sys/kernel/panic
est également non nul alors la machine redémarrera.
- /proc/sys/kernel/pid_max (depuis Linux 2.5.34)
- Ce fichier indique la valeur à partir de laquelle la
numérotation des PID reprendra à sa valeur initiale (ce qui
signifie que la valeur dans ce fichier est celle du PID maximum plus un).
La valeur par défaut est 32768, ce qui correspond à la
même plage de PID que sur les noyaux antérieurs. Pour les
plates-formes 32 bits, la valeur maximum de pid_max est de
32768. Pour les systèmes 64 bits, pid_max peut avoir
n'importe quelle valeur jusqu'à 2^22 (PID_MAX_LIMIT,
approximativement 4 millions).
- /proc/sys/kernel/powersave-nap (PowerPC seulement)
- Ce fichier contient un indicateur. S'il est non nul, Linux-PPC utilisera
le mode « nap » d'économie
d'énergie, sinon il utilisera le mode
« doze ».
- /proc/sys/kernel/printk
- Les quatre valeurs dans ce fichier sont nommées
console_loglevel, default_message_loglevel,
minimum_console_level et default_console_loglevel. Ces
valeurs influencent le comportement de printk() lors de l'affichage
ou de la journalisation de message d'erreurs. Consultez syslog(2)
pour plus d'information sur les différents niveaux. Les messages
avec une priorité plus élevée que
console_loglevel seront affichés sur la console. Les
messages sans priorité explicite utiliseront la priorité
default_message_level. minimum_console_loglevel est la
valeur maximale à laquelle console_loglevel puisse
être élevé. default_console_loglevel est la
valeur par défaut pour console_loglevel.
- /proc/sys/kernel/pty (depuis Linux 2.6.4)
- Ce répertoire contient deux fichiers relatifs au nombre de
pseudoterminaux UNIX 98 (consultez pts(4)) sur le
système.
- /proc/sys/kernel/pty/max
- Ce fichier définit le nombre maximal de pseudoterminaux.
- /proc/sys/kernel/pty/nr
- Ce fichier, en lecture seule, indique le nombre de pseudoterminaux en
cours d'utilisation.
- /proc/sys/kernel/random
- Ce répertoire contient divers paramètres contrôlant
le fonctionnement du fichier /dev/random. Consultez
random(4) pour davantage d'informations.
- /proc/sys/kernel/real-root-dev
- Ce fichier est documenté dans le fichier
Documentation/initrd.txt des sources du noyau Linux.
- /proc/sys/kernel/reboot-cmd (Sparc seulement)
- permet apparemment de fournir un argument au chargeur de boot ROM/Flash
Sparc. Peut-être indique-t-il que faire après
redémarrage ?
- /proc/sys/kernel/rtsig-max
- (Uniquement pour les noyaux jusqu'à 2.6.7 inclus ; consultez
setrlimit(2)).Ce fichier peut être utilisé pour
ajuster le nombre maximal de signaux POSIX temps-réel (en file
d'attente) pouvant se trouver en attente sur le système.
- /proc/sys/kernel/rtsig-nr
- (Uniquement pour les noyaux de Linux jusqu'à 2.6.7 inclus). Ce
fichier indique le nombre de signaux POSIX temps-réel actuellement
en file attente.
- /proc/sys/kernel/sched_rr_timeslice_ms (disponible depuis Linux
3.9)
- Consultez sched_rr_get_interval(2).
- /proc/sys/kernel/sem (disponible depuis Linux 2.4)
- contient 4 limites pour les sémaphores System V. Ces valeurs
sont respectivement :
- SEMMSL
- Le nombre maximal de sémaphores par ensemble.
- SEMMNS
- Une limite générale au système pour le nombre de
sémaphores dans tous les ensembles.
- SEMOPM
- Le nombre maximal d'opérations que l'on peut indiquer dans un appel
semop(2).
- SEMNI
- Une limite générale sur le nombre maximal d'identifiants de
sémaphores.
- /proc/sys/kernel/sg-big-buff
- Ce fichier montre la taille du tampon pour le pilote SCSI
générique (sg). Vous ne pourrez pas y écrire pour le
moment, mais vous pouvez changer sa valeur à la compilation en
éditant include/scsi/sg.h et en modifiant
SG_BIG_BUFF. Toutefois, il ne devrait y avoir aucune raison de le
modifier.
- /proc/sys/kernel/shm_rmid_forced (disponible depuis Linux 3.1)
- Si ce fichier est configuré à la valeur 1, tous les segments
de mémoire partagée System V seront marqués
pour destruction dès que le nombre de processus attachés
tombe à zéro. Autrement dit, il n'est plus possible de
créer des segments de mémoire partagée qui existent
indépendamment des autres processus attachés.
- Par conséquent un shmctl(2) IPC_RMID est
réalisé sur tous les segments existants ainsi que sur tous
les segments attachés par la suite. Remarquez que les segments
existants qui ne sont attachés à aucun processus seront
immédiatement détruits quand ce fichier est configuré
à la valeur 1. Définir cette option détruira aussi
les segments qui ont été créés, mais jamais
attachés, à la fin d'exécution du processus qui a
créé le segment avec shmget(2).
- Définir ce fichier à la valeur 1 fournit un moyen de
s'assurer que tous les segments de mémoire partagée
System V sont comptés par rapport à l'utilisation et
limites de ressources (consultez la description de RLIMIT_AS dans
getrlimit(2)) d'au moins un processus.
- Puisque définir ce fichier à la valeur 1 produit un
comportement non normalisé et pourrait aussi casser des
applications existantes, la valeur par défaut est 0. Ne configurez
la valeur de ce fichier à 1 que si vous avez une bonne
compréhension des sémantiques des applications utilisant la
mémoire partagée System V du système.
- /proc/sys/kernel/shmall
- Ce fichier contient le nombre maximal de pages de mémoire
partagée (IPC System V) au niveau du système.
- /proc/sys/kernel/shmmax
- Ce fichier permet de lire ou modifier la taille maximale des segments de
mémoire partagée (IPC System V) que l'on peut
créer. Les segments de mémoire jusqu'à 1Go sont
à présent autorisés par le noyau. La valeur par
défaut est SHMMAX.
- /proc/sys/kernel/shmmni (disponible depuis Linux 2.4)
- Ce fichier indique le nombre maximal de segments de mémoire
partagée System V que l'on peut créer.
- /proc/sys/kernel/sysrq
- Ce fichier contrôle les fonctions qui peuvent être
appelées par les combinaisons SysRq. Par défaut, le fichier
contient un « 1 », ce qui signifie que toute
demande SysRq est autorisée (dans les anciennes versions du noyau,
SysRq était désactivé par défaut, et il
fallait l'activer explicitement lors de l'exécution, mais ce n'est
plus le cas). Les valeurs possibles dans ce fichier sont :
0 - désactiver sysrq complètement
1 - activer toutes les fonctions de sysrq
>1 - masque de bits des sysrq autorisées, défini comme
ceci :
2 - active le contrôle du niveau de journalisation de la console
4 - active le contrôle du clavier (SAK, unraw
8 - active la production d'images de débogue des processus, etc.
16 - active la commande sync
32 - active le remontage en lecture seule
64 - active l'envoi de signaux aux processus (term, kill, oom-kill)
128 - autorise reboot/poweroff
256 - autorise la définition de la politesse de toutes les
tâches temps réel
Ce fichier n'est présent que si l'option de
configuration du noyau CONFIG_MAGIC_SYSRQ a été
validée. Pour plus d'informations, consultez
Documentation/sysrq.txt dans les sources du noyau Linux.
- /proc/sys/kernel/version
- Ce fichier contient une chaîne du type :
#5 Wed Feb 25 21:49:24 MET 1998
Le champ « #5 » indique que c'est
la cinquième compilation du noyau depuis ces sources, et la date
correspond à celle de la compilation.
- /proc/sys/kernel/threads-max (disponible depuis Linux 2.3.11)
- Ce fichier contient le nombre maximal de threads (tâches) qui
peuvent être créés sur le système.
- /proc/sys/kernel/zero-paged (PowerPC seulement)
- Ce fichier contient un drapeau. S'il est activé (non nul),
Linux-PPC effacera les pages dans sa boucle d'inactivité,
accélérant éventuellement get_free_pages.
- /proc/sys/net
- Ce répertoire contient des éléments relatif au
réseau. Des explications pour certains des fichiers de ce
répertoire peuvent être trouvées dans tcp(7)
et ip(7).
- /proc/sys/net/core/somaxconn
- Ce fichier défini une valeur plafond pour le paramètre
backlog de listen(2) ; consultez la page de manuel
listen(2) pour plus de précisions.
- /proc/sys/proc
- Ce répertoire peut être vide.
- /proc/sys/sunrpc
- Ce répertoire correspond aux appels de procédures à
distance (RPC) sur un système de fichiers NFS. Sur certains
systèmes, il est absent.
- /proc/sys/vm
- Ce répertoire contient des fichiers de paramétrage de la
gestion de mémoire, des tampons, et du cache.
- /proc/sys/vm/drop_caches (depuis Linux 2.6.16)
- Écrire dans ce fichier force le noyau à libérer les
caches, dentries et inœuds propres de la mémoire, en
libérant ainsi cette mémoire. Ce peut être utile pour
les tests de gestion de mémoire et la réalisation de
comparaisons reproductibles de systèmes de fichiers.
Puisqu’une écriture dans ce fichier fait perdre tous les
avantages du cache, cela peut dégrader
l’intégralité des performances du système.
Pour libérer les pagecache, utilisez :
echo 1 > /proc/sys/vm/drop_caches
Pour libérer les dentries et les inœuds,
utilisez :
echo 2 > /proc/sys/vm/drop_caches
Pour libérer les pagecache, dentries et inœuds,
utilisez :
echo 3 > /proc/sys/vm/drop_caches
Parce que l’écriture dans ce fichier est non
destructive, et que les objets sales ne sont pas libérables,
l'utilisateur devrait utiliser la commande sync(8) au
préalable.
- /proc/sys/vm/legacy_va_layout (depuis Linux 2.6.9)
- S'il est non nul, cela désactive la nouvelle disposition de carte
mémoire 32 bit ; le noyau utilisera alors la
disposition habituelle (legacy) (2.4) pour tous les processus.
- /proc/sys/vm/memory_failure_early_kill (depuis Linux 2.6.32)
- Contrôle comment tuer les processus lorsqu'une erreur
mémoire non corrigée (typiquement une erreur sur 2 bits sur
un module de mémoire) qui ne peut pas être
gérée par le noyau est détectée en
tâche de fond par le matériel. Dans certains cas (par
exemple s'il existe une copie valide de la page sur disque), le noyau est
capable de récupérer cette erreur de manière
transparente sans qu'aucune application ne soit touchée. Mais si le
noyau n'a pas de copie à jour des données, il va tuer des
processus afin d'empêcher la propagation de la corruption des
données.
Ce fichier peut contenir l'une des valeurs
suivantes :
- 1:
- Tuer dès que la corruption est détectée tous les
processus qui ont une projection de la page corrompue et non rechargeable.
Notez que cela n'est pas possible avec quelques types de pages, comme les
données allouées en interne par le noyau ou le cache
d'échange (swap cache), mais cela fonctionne avec la
majorité des pages utilisateur.
- 0:
- Ne supprimer que la projection de la page corrompue dans tous les
processus, et ne tuer que les processus qui essaient d'y
accéder.
- L'action de tuer le processus est effectuée en envoyant un signal
SIGBUS avec si_code mis à BUS_MCEERR_AO. Les
processus peuvent gérer cette situation s'ils le
souhaitent ; consultez sigaction(2) pour plus de
précisions.
Cette fonctionnalité n'est disponible que sur les
architectures/plateformes avec une gestion avancée de
vérification de la machine et dépend des
possibilités du matériel.
Les applications peuvent modifier individuellement le
paramètre memory_failure_early_kill avec
l'opération prctl(2) PR_MCE_KILL.
- N'est disponible que si le noyau est configuré avec l'option
CONFIG_MEMORY_FAILURE.
- /proc/sys/vm/memory_failure_recovery (depuis Linux 2.6.32)
- Activer la récupération sur une erreur mémoire (si la
plateforme le permet)
- 1:
- Tenter une récupération.
- 0:
- Toujours sortir en mode panique sur une erreur mémoire.
- N'est disponible que si le noyau est configuré avec l'option
CONFIG_MEMORY_FAILURE.
- /proc/sys/vm/oom_dump_tasks (depuis Linux 2.6.25)
- Active la production d'une image des tâches du système
(à l'exception des threads du noyau) lors des mises à mort
sur mémoire saturée. L'image contient les informations
suivantes pour chaque tâche (thread ou processus) :
identifiant de thread, identifiant d'utilisateur réel, identifiant
du groupe de thread (identifiant du processus) taille de la mémoire
virtuelle, taille de la mémoire résidente, CPU sur lequel la
tâche était ordonnancée, valeur de oom_adj (voir la
description de /proc/[pid]/oom_adj) et le nom de la commande. C'est
utile pour trouver la raison de la mise à mort sur mémoire
saturée et pour identifier la tâche défectueuse qui
en est la cause.
Avec la valeur zéro, l'information est
supprimée. Sur les très gros système avec des
milliers de tâches, il peut ne pas être faisable de
créer l'image avec les informations sur chacune. Ces
systèmes ne devraient pas être obligés de
pénaliser leurs performances dans ces cas de pénurie de
mémoire si ces informations ne sont pas
désirées.
Pour toute valeur non nulle, les informations sont
présentées à chaque mise à mort sur
mémoire saturée.
La valeur par défaut est 0.
- /proc/sys/vm/oom_kill_allocating_task (depuis Linux 2.6.24)
- Cela active ou désactive la mise à mort de la tâche
qui produit l'erreur dans les situations de mémoire saturée.
Avec une valeur de zéro, la liste des tâches
sera parcourue et la tâche à tuer sera
sélectionnée en fonction d'heuristiques. Cela
sélectionne normalement une tâche consommant une grosse
quantité de mémoire qui libérera beaucoup de
mémoire lorsqu'elle sera tuée.
Avec une valeur non nulle, la tâche tuée sera
celle qui échouera lors d'une allocation de mémoire. Cela
évite un parcours de la liste des tâches qui peut
être coûteux.
Si /proc/sys/vm/panic_on_oom est non nul, il est
prioritaire sur toute valeur utilisée dans
/proc/sys/vm/oom_kill_allocating_task.
La valeur par défaut est 0.
- /proc/sys/vm/overcommit_memory
- Ce fichier contient le mode pour les statistiques de la mémoire
virtuelle du noyau. Les valeurs sont :
- 0 : gestion heuristique du dépassement d'allocation
mémoire (c'est la valeur par défaut)
1 : pas de gestion du dépassement, ne jamais vérifier
2 : toujours vérifier, gestion stricte du
dépassement
- En mode 0, les appels à mmap(2) utilisant
MAP_NORESERVE ne sont pas vérifiés et le niveau de
vérification par défaut est très faible, laissant le
risque d'avoir un processus tué à cause du manque de
mémoire (« OOM-killed »). Sous
Linux 2.4, toute valeur non nulle implique le mode 1. En
mode 2 (disponible depuis Linux 2.6), l'espace d'adressage
virtuel total sur le système est limité à (SS +
RAM*(r/100)), où SS est la taille de l'espace d'échange
(« swap »), RAM la taille de la mémoire
physique, et r le contenu du fichier
/proc/sys/vm/overcommit_ratio.
- /proc/sys/vm/overcommit_ratio
- Consultez la description de /proc/sys/vm/overcommit_memory.
- /proc/sys/vm/panic_on_oom (depuis Linux 2.6.18)
- Cela active ou désactive le déclenchement d'une panique dans
les situations de mémoire saturée.
Si ce fichier est configuré à la valeur 0, le
noyau (le « OOM-killer ») tuera un processus
perturbateur. D'habitude, il peut tuer un processus perturbateur et le
système survivra.
Si ce fichier est configuré à la valeur 1, le
noyau paniquera dans une situation de mémoire saturée.
Cependant, si un processus limite les allocations que sur certains
nœuds en utilisant des politiques mémoire
(MPOL_BIND dans mbind(2)) ou des ensembles de processeurs
(cpuset(7)), et si ces nœuds voient leur mémoire
saturée, un processus peut être tué par le
OOM-killer. Aucune panique ne survient dans ce cas. Comme de la
mémoire est disponible sur d'autres nœuds, le
système n'a pas entièrement atteint une situation de
mémoire saturée.
Si ce fichier est configuré à la valeur 2, le
noyau panique toujours dans une situation de mémoire
saturée.
La valeur par défaut est 0. Les valeurs 1 et 2 sont
utilisées pour la récupération en cas d'erreur de
groupements. Sélectionnez l'un ou l'autre en fonction de votre
politique de récupération en cas d'erreur.
- /proc/sys/vm/swappiness
- La valeur dans ce fichier contrôle le niveau d'agressivité
utilisé par le noyau pour déplacer des pages mémoire
dans l'espace d'échange. Les valeurs élevées indique
une agressivité plus importante. La valeur par défaut est de
60.
- /proc/sysrq-trigger (depuis Linux 2.4.21)
- L'écriture d'un caractère dans ce fichier déclenche
la même fonction SysRq que la combinaison
ALT-SysRq-<caractère> (voir la description de
/proc/sys/kernel/sysrq). Ce fichier est normalement accessible en
écriture que pour root. Pour plus d'informations, consultez
le fichier Documentation/sysrq.txt dans les sources du noyau
Linux.
- /proc/sysvipc
- Sous-répertoire contenant les pseudofichiers msg, sem
et shm. Ces fichiers listent les objets d'IPC System V
(soient les files de messages, les sémaphores, et la mémoire
partagée) existant actuellement sur le système, en donnant
les mêmes informations que celles disponibles par la commande
ipcs(1). Ces fichiers ont des en-têtes et sont
formatés (à raison d'un objet IPC par ligne) de façon
à être lus facilement. La page svipc(7) donne
davantage d'informations concernant les données fournies par ces
fichiers.
- /proc/tty
- Sous-répertoire contenant les pseudofichiers et les
sous-répertoires pour les pilotes de tty et la gestion de la
ligne.
- /proc/uptime
- Ce fichier contient deux valeurs : la durée de
fonctionnement (uptime) en secondes, et le temps écoulé
à ne rien faire (idle), en secondes également.
- /proc/version
- Cette chaîne identifie la version du noyau en cours
d'exécution. Elle inclue le contenu de
/proc/sys/kernel/ostype, /proc/sys/kernel/osrelease et
/proc/sys/kernel/version. Par exemple :
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
- /proc/vmstat (depuis Linux 2.6)
- Ce fichier contient diverses statistiques sur la mémoire
virtuelle.
- /proc/zoneinfo (depuis Linux 2.6.13)
- Ce fichier affiche des informations concernant les zones mémoire.
C'est utile pour analyser le comportement de la mémoire
virtuelle.
De nombreuses chaînes (par exemple, l'environnement et de
la ligne de commande) sont affichées dans un format interne, ses
champs terminés par un caractère nul. Il est parfois plus
lisible d'utiliser od -c ou tr "\000"
"\n" pour les lire. En remplacement, la commande echo
`cat <file>` fonctionne bien.
Cette page de manuel est incomplète, incertaine, et devrait
être mise à jour très souvent.
cat(1), dmesg(1), find(1), free(1),
ps(1), tr(1), uptime(1), chroot(2),
mmap(2), readlink(2), syslog(2), slabinfo(5),
hier(7), time(7), arp(8), hdparm(8),
ifconfig(8), init(8), lsmod(8), lspci(8),
mount(8), netstat(8), procinfo(8), route(8),
sysctl(8)
Les fichiers source du noyau Linux :
Documentation/filesystems/proc.txt,
Documentation/sysctl/vm.txt
Cette page fait partie de la publication 3.57 du projet
man-pages Linux. Une description du projet et des instructions pour
signaler des anomalies peuvent être trouvées à
l'adresse http://www.kernel.org/doc/man-pages/.
Depuis 2010, cette traduction est maintenue à l'aide de
l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de
traduction francophone au sein du projet perkamon
<http://perkamon.alioth.debian.org/>.
Christophe Blaess <http://www.blaess.fr/christophe/>
(1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006).
Jean-Luc Coulon et l'équipe francophone de traduction de
Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant
à <debian-l10n-french@lists.debian.org> ou par un rapport de
bogue sur le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version
anglaise de ce document en utilisant la commande
« man -L C
<section> <page_de_man> ».