Outils pour utilisateurs

Outils du site


tuto:linux:repertoire_proc

/proc

5.2. Fichiers de niveau supérieur dans le système de fichiers proc

Ci-dessous figure une liste de certains des fichiers virtuels les plus utiles qui se trouvent au niveau supérieur du répertoire /proc/.

Note Remarque

Dans la plupart des cas, le contenu des fichiers répertoriés dans cette section sera différent de celui des fichiers présents sur votre ordinateur. En effet, une bonne partie des informations est spécifique au matériel sur lequel Red Hat Enterprise Linux est exécuté pour ces besoins de documentation.

5.2.1. /proc/apm

Ce fichier qui fournit des informations sur l'état du système de gestion de la consommation d'énergie (APM) (de l'anglais Advanced Power Management) est utilisé par la commande apm. Si le système sans batterie est connecté à une source d'alimentation de courant alternatif, ce fichier virtuel sera similaire à l'extrait ci-dessous :

1.16 1.2 0x07 0x01 0xff 0x80 -1% -1 ?

L'exécution de la commande apm -v sur un tel système renvoie une sortie semblable à celle reproduite ci-dessous :

APM BIOS 1.2 (kernel driver 1.16ac)
AC on-line, no system battery

Pour les systèmes n'utilisant pas de batterie comme source d'alimentation, apm ne peut guère faire plus que de mettre l'ordinateur en mode veille. La commande apm est beaucoup plus utile sur les portables. Ci-dessous se trouve l'exemple d'une sortie renvoyée par la commande cat /proc/apm exécutée sur un ordinateur portable lorsqu'il est branché à une prise de courant :

1.16 1.2 0x03 0x01 0x03 0x09 100% -1 ?

Lorsque ce portable est débranché de sa source d'alimentation pendant quelques minutes, le contenu du fichier apm change de la manière suivante :

1.16 1.2 0x03 0x00 0x00 0x01 99% 1792 min

La commande apm -v va à présent générer des données plus utiles, comme par exemple :

APM BIOS 1.2 (kernel driver 1.16)
AC off-line, battery status high: 99% (1 day, 5:52)

5.2.2. /proc/buddyinfo

Ce fichier est utilisé essentiellement pour diagnostiquer des problèmes de fragmentation de mémoire. En utilisant l'algorithme d'allocation de mémoire buddy (aussi appelé algorithme des 'frères siamois') chaque colonne représente le nombre de pages d'un certain ordre (d'une certaine taille) qui sont disponibles à tout moment donné. Par exemple, pour la zone DMA (direct memory access ou accès direct à la mémoire), il y a 90 morceaux de mémoire de 2^ (0*PAGE_SIZE). De même, il y a 6 morceaux de 2^(1*PAGE_SIZE) et 2 morceaux de 2^(2*PAGE_SIZE) disponibles.

La rangée DMA référence les 16 premiers méga-octets sur un système, la rangée Normal référence toute la mémoire entre les deux et finalement la rangée HighMem elle référence toute la mémoire supérieure à 4 Go sur un système.

Ci-dessous figure un exemple de sortie typique d'un fichier /proc/buddyinfo :

Node 0, zone      DMA     90      6      2      1      1      ...
Node 0, zone   Normal   1650    310      5      0      0      ...
Node 0, zone  HighMem      2      0      0      1      1      ...

5.2.3. /proc/cmdline

Ce fichier montre les paramètres transmis au noyau au moment du démarrage. Un exemple de fichier /proc/cmdline ressemble à l'exemple ci-dessous :

ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3

Cet extrait indique que le noyau est monté en lecture-seule (comme l'indique la mention (ro)), qu'il se trouve sur le premier volume logique (LogVol00) du premier groupe de volumes (/dev/VolGroup00). Le volume logique LogVol00 est l'équivalent d'une partition de disque dans un système n'utilisant pas la gestion de volumes logiques LVM (ou Logical Volume Management), de même que /dev/VolGroup00 est semblable au concept de partition /dev/hda1, mais de manière beaucoup plus extensible.

Consultez l'adresse suivante : http://www.tldp.org/HOWTO/LVM-HOWTO/index.html pour obtenir de plus amples informations sur LVM utilisé avec Red Hat Enterprise Linux.

Ensuite, rhgb signale que le paquetage rhgb a été installé et que le démarrage en mode graphique et pris en charge à condition que /etc/inittab indique un niveau d'exécution (runlevel) par défaut équivalent à id:5:initdefault:.

Finalement, quiet indique que tous les messages prolixes du noyau sont supprimés au démarrage.

5.2.4. /proc/cpuinfo

Ce fichier virtuel identifie le type de processeur utilisé par votre système. L'extrait ci-dessous montre un exemple de la sortie typique de /proc/cpuinfo :

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 2
model name	: Intel(R) Xeon(TM) CPU 2.40GHz
stepping	: 7
cpu MHz		: 2392.371
cache size	: 512 KB
physical id	: 0
siblings	: 2
runqueue	: 0
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips	: 4771.02
  • processor — Fournit à chaque processeur un numéro d'identification. Sur les systèmes dotés d'un seul processeur, seul le numéro 0 sera présent.
  • cpu family — Identifie avec certitude le type de processeur dont votre système dispose. Si vous disposez d'un système Intel, placez simplement ce numéro devant “86” afin de déterminer la valeur. Cela est particulièrement utile si vous essayez d'identifier l'architecture d'un système plus ancien, comme 586, 486 ou 386. Comme certains paquetages RPM sont compilés pour chacune de ces architectures particulières, cette valeur vous indique également quel paquetage installer.
  • model name — Affiche le nom communément utilisé du processeur, de même que son nom de projet.
  • cpu MHz — Indique la vitesse précise en mégahertz du processeur, au centième près.
  • cache size — Indique la quantité de mémoire cache de niveau 2 disponible pour le processeur.
  • siblings — Affiche le nombre de CPU de la même famille sur le même CPU physique pour les architectures qui utilisent l'hyperthreading.
  • flags — Définit un certain nombre de caractéristiques du processeur, telles que la présence d'une unité de virgule flottante (ou FPU, de l'anglais Floating Point Unit) et la capacité à traiter des instructions MMX.

5.2.5. /proc/crypto

Ce fichier dresse la liste de tous les chiffres de cryptographie utilisés par le noyau Linux, y compris des informations supplémentaires pour chacun d'eux. Un exemple de fichier /proc/crypto ressemble à l'exemple ci-dessous :

name         : sha1
module       : kernel
type         : digest
blocksize    : 64
digestsize   : 20
 
name         : md5
module       : md5
type         : digest
blocksize    : 64
digestsize   : 16

5.2.6. /proc/devices

Ce fichier affiche les divers périphériques d'entrée-sortie de caractères et périphériques blocs actuellement configurés (il ne contient pas les périphériques dont les modules ne sont pas chargés). Ci-dessous figure un exemple de ce fichier :

Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  7 vcs
 10 misc
 13 input
 29 fb
 36 netlink
128 ptm
136 pts
180 usb
 
Block devices:
  1 ramdisk
  3 ide0
  9 md
 22 ide1
253 device-mapper
254 mdp

La sortie de /proc/devices inclut le nombre ainsi que le nom principal du périphérique ; elle est répartie en deux sections principales : Character devices (périphériques d'entrée-sortie de caractères) et Block devices (périphériques blocs).

Les périphériques d'entrée-sortie de caractères sont semblables aux périphériques blocs, à l'exception de deux points essentiels :

  1. Les périphériques d'entrée-sortie de caractères ne nécessitent pas de tamponnement. Les périphériques blocs ont un tampon disponible, ce qui leur permet de classer les demandes avant de les traiter. Ceci est très important pour les périphériques conçus pour stocker des informations — tels que les disques durs — parce que la possibilité de classer les informations avant de les écrire sur le périphérique permet de les placer de façon plus efficace.
  2. Les périphériques d'entrée-sortie de caractères envoient des données sans taille préconfigurée. Les périphériques blocs peuvent envoyer et recevoir les informations par blocs d'une taille configurée individuellement pour chaque périphérique.

Pour davantage d'informations sur les périphériques, consultez la documentation installée dont la référence figure ci-dessous : /usr/share/doc/kernel-doc-<version>/Documentation/devices.txt

5.2.7. /proc/dma

Ce fichier contient une liste des canaux ISA DMA (accès direct à la mémoire) enregistrés qui sont utilisés. Un exemple de fichier /proc/dma ressemble à l'exemple ci-dessous :

4: cascade

5.2.8. /proc/execdomains

Ce fichier fournit la liste des domaines d'exécution actuellement pris en charge par le noyau Linux, ainsi que la gamme des personnalités qu'ils prennent en charge.

0-0   Linux           [kernel]

Considérez les domaines d'exécution comme étant la “personnalité” d'un système d'exploitation donné. Parce que d'autres formats binaires, tels que Solaris, UnixWare et FreeBSD peuvent être utilisés avec Linux, les programmeurs peuvent, en changeant la personnalité d'une tâche, changer la façon dont le système d'exploitation traite certains appels système de ces binaires. À l'exception du domaine d'exécution PER_LINUX, différentes personnalités peuvent être mises en oeuvre en tant que modules dynamiquement chargeables.

5.2.9. /proc/fb

Ce fichier contient une liste des périphériques de mémoire vidéo (frame buffer), comportant le numéro de chaque périphérique et le pilote qui le contrôle. La sortie de /proc/fb pour les systèmes qui contiennent des périphériques de mémoire vidéo ressemble généralement à l'exemple ci-dessous :

0 VESA VGA

5.2.10. /proc/filesystems

Ce fichier affiche une liste des types de systèmes de fichiers actuellement pris en charge par le noyau. Ci-dessous figure un exemple de sortie d'un fichier /proc/filesystems générique :

nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   binfmt_misc
nodev   usbfs
nodev   usbdevfs
nodev   futexfs
nodev   tmpfs
nodev   pipefs
nodev   eventpollfs
nodev   devpts
        ext2
nodev   ramfs
nodev   hugetlbfs
        iso9660
nodev   mqueue
        ext3
nodev   rpc_pipefs
nodev   autofs

La première colonne indique si le système de fichiers est monté sur un périphérique bloc. Ceux commençant par nodev ne sont pas montés sur un périphérique. La seconde colonne répertorie les noms de systèmes de fichiers pris en charge.

La commande mount tourne en boucle dans ces systèmes de fichiers lorsqu'aucun d'eux n'est spécifié comme argument.

5.2.11. /proc/interrupts

Ce fichier enregistre le nombre d'interruptions par IRQ sur l'architecture x86. Un fichier /proc/interrupts standard ressemble à l'extrait suivant :

           CPU0       
  0:   80448940          XT-PIC  timer
  1:     174412          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  8:          1          XT-PIC  rtc
 10:     410964          XT-PIC  eth0
 12:      60330          XT-PIC  PS/2 Mouse
 14:    1314121          XT-PIC  ide0
 15:    5195422          XT-PIC  ide1
NMI:          0 
ERR:          0

Dans le cas d'un ordinateur ayant plusieurs processeurs, le fichier peut être légèrement différent :

           CPU0       CPU1       
  0: 1366814704          0          XT-PIC  timer
  1:        128        340    IO-APIC-edge  keyboard
  2:          0          0          XT-PIC  cascade
  8:          0          1    IO-APIC-edge  rtc
 12:       5323       5793    IO-APIC-edge  PS/2 Mouse
 13:          1          0          XT-PIC  fpu
 16:   11184294   15940594   IO-APIC-level  Intel EtherExpress Pro 10/100 Ethernet
 20:    8450043   11120093   IO-APIC-level  megaraid
 30:      10432      10722   IO-APIC-level  aic7xxx
 31:         23         22   IO-APIC-level  aic7xxx
NMI:          0
ERR:          0

La première colonne fait référence au numéro de l'IRQ. Chaque unité centrale du système a sa propre colonne et son propre nombre d'interruptions par IRQ. La colonne suivante indique le type d'interruption et la dernière colonne contient le nom du périphérique situé à cette IRQ.

Chaque type d'interruptions - spécifiques à l'architecture - présentées dans ce fichier ont une signification légèrement différente. Pour les ordinateurs x86, les valeurs suivantes sont courantes :

  • XT-PIC — Correspond aux anciennes interruptions des ordinateurs AT.
  • IO-APIC-edge — Représente le signal de voltage sur ces transitions d'interruption allant de faible à élevé, créant une dénivellation, là où l'interruption a lieu ; il n'est signalé qu'une seule fois. Des interruptions de ce genre, de même que l'interruption IO-APIC-level, ne se rencontrent que sur des systèmes ayant des processeurs de la gamme 586 ou d'une gamme supérieure.
  • IO-APIC-level — Génère des interruptions lorsque le signal de voltage est élevé, jusqu'à ce qu'il redevienne faible.

5.2.12. /proc/iomem

Ce fichier montre la topologie actuelle de la mémoire du système pour chacun des périphériques physiques :

00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000f0000-000fffff : System ROM
00100000-07ffffff : System RAM
  00100000-00291ba8 : Kernel code
  00291ba9-002e09cb : Kernel data
e0000000-e3ffffff : VIA Technologies, Inc. VT82C597 [Apollo VP3]
e4000000-e7ffffff : PCI Bus #01
  e4000000-e4003fff : Matrox Graphics, Inc. MGA G200 AGP
  e5000000-e57fffff : Matrox Graphics, Inc. MGA G200 AGP
e8000000-e8ffffff : PCI Bus #01
  e8000000-e8ffffff : Matrox Graphics, Inc. MGA G200 AGP
ea000000-ea00007f : Digital Equipment Corporation DECchip 21140 [FasterNet]
  ea000000-ea00007f : tulip
ffff0000-ffffffff : reserved

La première colonne affiche les registres de mémoire utilisés par chacun des différents types de mémoire. La seconde colonne indique le type de mémoire situé dans ces registres et précise notamment les registres de mémoire spécifiques qui sont utilisés par le noyau dans la mémoire vive du système ou, si la carte de l'interface réseau a plusieurs ports Ethernet, les registres de mémoire affectés à chaque port.

5.2.13. /proc/ioports

La sortie de /proc/ioports fournit une liste des fourchettes relatives aux ports actuellement enregistrés et utilisés pour les communications d'entrée et de sortie avec un périphérique. Ce fichier peut être assez long. L'exemple suivant affiche une partie d'une liste :

0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
02f8-02ff : serial(auto)
0376-0376 : ide1
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
0cf8-0cff : PCI conf1
d000-dfff : PCI Bus #01
e000-e00f : VIA Technologies, Inc. Bus Master IDE
  e000-e007 : ide0
  e008-e00f : ide1
e800-e87f : Digital Equipment Corporation DECchip 21140 [FasterNet]
  e800-e87f : tulip

La première colonne indique la plage d'adresses de port d'E/S réservées au périphérique spécifié dans la seconde colonne.

5.2.14. /proc/kcore

Ce fichier qui représente la mémoire physique du système est stocké dans le format fichier core. Contrairement à la plupart des fichiers de /proc/, le fichier kcore affiche une taille. Cette valeur qui est donnée en octets est égale à la taille de la mémoire vive (RAM) utilisée plus 4 Ko.

Le contenu de ce fichier, conçu pour être examiné par un débogueur tel que gdb, est codé.

N'affichez pas le fichier virtuel /proc/kcore. Dans le cas contraire, le contenu de ce fichier submergera votre terminal de texte. Si vous ouvrez ce fichier par accident, appuyez sur les touches [Ctrl]-[C] pour arrêter le processus, puis tapez reset pour faire revenir l'invite de ligne de commande.

5.2.15. /proc/kmsg

Ce fichier est utilisé pour contenir des messages générés par le noyau. Ces messages sont ensuite récupérés par d'autres programmes, tels que /sbin/klogd ou /bin/dmesg.

5.2.16. /proc/loadavg

Ce fichier fournit un aperçu dans le temps de la moyenne de charge relative au CPU et aux ES, ainsi que des données supplémentaires utilisées par la commande uptime et par d'autres commandes. Un fichier /proc/loadavg peut ressembler à l'exemple suivant :

0.20 0.18 0.12 1/80 11206

Les trois premières colonnes mesurent l'utilisation du CPU et des ES au cours des périodes de temps allant de la dernière minutes, des cinq dernières minutes et des dix dernières minutes. La quatrième colonne indique le nombre de processus actuellement en cours d'exécution ainsi que le nombre total de processus. La dernière colonne affiche l'ID du dernier processus utilisé.

5.2.17. /proc/locks

Ce fichier affiche les fichiers actuellement verrouillés par le noyau. Le contenu de ce fichier comprend des données internes de débogage du noyau et peut varier énormément en fonction de l'utilisation du système. Ci-après figure un exemple de fichier /proc/locks d'un système peu chargé :

1: POSIX  ADVISORY  WRITE 3568 fd:00:2531452 0 EOF
2: FLOCK  ADVISORY  WRITE 3517 fd:00:2531448 0 EOF
3: POSIX  ADVISORY  WRITE 3452 fd:00:2531442 0 EOF
4: POSIX  ADVISORY  WRITE 3443 fd:00:2531440 0 EOF
5: POSIX  ADVISORY  WRITE 3326 fd:00:2531430 0 EOF
6: POSIX  ADVISORY  WRITE 3175 fd:00:2531425 0 EOF
7: POSIX  ADVISORY  WRITE 3056 fd:00:2548663 0 EOF

Chaque verrouillage a sa propre ligne qui commence par un numéro unique. La deuxième colonne indique la classe de verrouillage utilisée dans laquelle FLOCK représente les verrouillages de fichiers UNIX de type plus ancien d'un appel système flock alors que POSIX représente les verrouillages POSIX plus récents de l'appel système lockf.

La troisième colonne peut avoir deux valeurs : ADVISORY ou MANDATORY. La valeur ADVISORY signifie que le verrouillage n'empêche pas les autres personnes d'avoir accès aux données ; il ne fait qu'empêcher d'autres tentatives de verrouillage. La valeur MANDATORY quant à elle, signifie qu'aucun accès aux données n'est autorisé tant que le verrouillage est en place. La quatrième colonne spécifie si le verrouillage autorise son détenteur à avoir un accès READ (lecture) ou WRITE (écriture) au fichier. La cinquième colonne montre l'ID du processus qui détient le verrouillage. La sixième colonne montre l'ID du fichier verrouillé, selon le format suivant : PÉRIPHÉRIQUE-PRINCIPAL:PÉRIPHÉRIQUE-MINEUR:NUMÉRO-INODE. La septième et la huitième colonnes précisent le début et la fin de la région verrouillée du fichier.

5.2.18. /proc/mdstat

Ce fichier contient les informations courantes sur les configurations RAID à disques multiples. Si votre système ne dispose pas de ce genre de configuration, votre fichier /proc/mdstat ressemblera à l'extrait suivant :

Personalities : 
read_ahead not set
unused devices: <none>

Ce fichier garde l'état reproduit ci-dessus, sauf si vous créez un périphérique RAID logiciel ou md. Dans ce cas, vous pouvez afficher /proc/mdstat pour connaître l'état actuel de vos périphériques RAID mdX.

Le fichier /proc/mdstat ci-dessous montre un système contenant md0 configuré comme un périphérique RAID 1 et effectuant la re-synchronisation des disques :

Personalities : [linear] [raid1]
read_ahead 1024 sectors
md0: active raid1 sda2[1] sdb2[0] 9940 blocks [2/2] [UU] resync=1% finish=12.3min
algorithm 2 [3/3] [UUU]
unused devices: <none>

5.2.19. /proc/meminfo

Ci-dessous figure l'un des fichiers les plus communément utilisés du répertoire /proc/ en raison des nombreuses informations importantes qu'il fournit sur l'utilisation de la mémoire vive du système.

L'échantillon ci-dessous du fichier virtuel /proc/meminfo provient d'un système ayant 256 Mo de mémoire vive et 512 Mo d'espace :

MemTotal:       255908 kB
MemFree:         69936 kB
Buffers:         15812 kB
Cached:         115124 kB
SwapCached:          0 kB
Active:          92700 kB
Inactive:        63792 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       255908 kB
LowFree:         69936 kB
SwapTotal:      524280 kB
SwapFree:       524280 kB
Dirty:               4 kB
Writeback:           0 kB
Mapped:          42236 kB
Slab:            25912 kB
Committed_AS:   118680 kB
PageTables:       1236 kB
VmallocTotal:  3874808 kB
VmallocUsed:      1416 kB
VmallocChunk:  3872908 kB
HugePages_Total:     0
HugePages_Free:      0
Hugepagesize:     4096 kB

La plupart des informations de cet exemple sont utilisées par les commandes free, top et ps. En fait, la sortie de la commande free est même similaire en apparence au contenu et à la structure de /proc/meminfo. Mais si vous examinez directement /proc/meminfo, vous y trouverez davantage d'informations :

  • MemTotal — Quantité totale de mémoire vive (exprimée en Ko).
  • MemFree — Quantité de mémoire vive (exprimée en Ko), non-utilisée par le système.
  • Buffers — Quantité de mémoire vive (exprimée en Ko), utilisée pour les tampons de fichiers.
  • Cached — Quantité de mémoire vive (exprimée en Ko), utilisée comme mémoire cache.
  • SwapCached — Quantité de mémoire vive (exprimée en Ko), utilisée comme mémoire cache.
  • Active — Quantité totale de mémoire tampon ou de mémoire cache de pages (exprimée en Ko), en utilisation active. Il s'agit de la mémoire qui a récemment été utilisée et qui n'est généralement pas récupérée à d'autres fins.
  • Inactive — Quantité totale de mémoire tampon ou de mémoire cache de pages (exprimée en Ko) qui est libre et disponible. Il s'agit de la mémoire qui n'a pas récemment été utilisée et qui peut être récupérée à d'autres fins.
  • HighTotal et HighFree — Quantité totale et libre de mémoire qui n'est pas directement mappée dans l'espace du noyau. La valeur HighTotal peut varier en fonction du type de noyau utilisé.
  • LowTotal et LowFree — Quantité totale et libre de mémoire qui est directement mappée dans l'espace du noyau. La valeur LowTotal peut varier en fonction du type de noyau utilisé.
  • SwapTotal — Quantité totale de mémoire swap disponible (exprimée en Ko).
  • SwapFree — Quantité totale de mémoire swap libre (exprimée en Ko).
  • Dirty — Quantité totale de mémoire (exprimée en Ko), en attente d'écriture sur le disque.
  • Writeback — Quantité totale de mémoire tampon (exprimée en Ko), en cours d'écriture active sur le disque.
  • Mapped — Quantité totale de mémoire tampon (exprimée en Ko) qui a été utilisée pour établir la correspondance avec les périphériques, fichiers ou bibliothèques à l'aide de la commande mmap.
  • SwapCached — Quantité de mémoire vive (exprimée en Ko), utilisée comme mémoire cache.
  • Committed_AS — Quantité totale de mémoire (exprimée en Ko) qui est estimée nécessaire pour finir la charge de travail. Cette valeur correspond à celle du pire scénario et inclut également la mémoire de swap.
  • PageTables — Quantité totale de mémoire (exprimée en Ko) dédiée au niveau le plus bas du tableau des pages.
  • VMallocTotal — Quantité totale de mémoire (exprimée en Ko) de l'espace total alloué à l'adressage virtuel.
  • VMallocUsed — Quantité totale de mémoire (exprimée en Ko), de l'espace d'adressage virtuel utilisé.
  • VMallocChunk —Plus grand bloc contigu de mémoire (exprimée en Ko) d'espace d'adressage virtuel disponible.
  • HugePages_Total — Nombre total de hugepages pour le système. Ce nombre est obtenu en divisant Hugepagesize par les méga-octets mis à part pour les hugepages spécifiées dans /proc/sys/vm/hugetlb_pool. Cette statistique apparaît uniquement sur les architectures x86, Itanium et AMD64.
  • HugePages_Free — Nombre total de hugepages disponibles pour le système. Cette statistique apparaît uniquement sur les architectures x86, Itanium et AMD64.
  • Hugepagesize — Taille de chaque unité de hugepages en kilo-octets. Par défaut, la valeur est de 4096 Ko pour les noyaux à processeur unique sur les architectures 32 bit. Pour SMP, les noyaux hugemem et AMD64, la valeur par défaut est de 2048 Ko. Pour les architectures Itanium, la valeur par défaut est de 262144 Ko. Ce genre de statistique apparaît uniquement sur les architectures x86, Itanium et AMD64.

5.2.20. /proc/misc

Ce fichier affiche la liste des pilotes divers enregistrés sur le périphérique principal divers, portant le numéro 10 :

63 device-mapper
175 agpgart
135 rtc
134 apm_bios

La première colonne correspond au nombre mineur de chaque périphérique et la deuxième indique le pilote utilisé.

5.2.21. /proc/modules

Ce fichier affiche une liste de tous les modules qui ont été chargés dans le noyau. Son contenu varie en fonction de la configuration et de l'utilisation du système, mais il devrait être organisé de façon semblable à la sortie du fichier exemple /proc/modules ci-dessous :

Cet exemple a été reformaté pour le rendre lisible. La plupart de ces informations peuvent être affichées à l'aide de commande /sbin/lsmod .

nfs      170109  0 -          Live 0x129b0000
lockd    51593   1 nfs,       Live 0x128b0000
nls_utf8 1729    0 -          Live 0x12830000
vfat     12097   0 -          Live 0x12823000
fat      38881   1 vfat,      Live 0x1287b000
autofs4  20293   2 -          Live 0x1284f000
sunrpc   140453  3 nfs,lockd, Live 0x12954000
3c59x    33257   0 -          Live 0x12871000
uhci_hcd 28377   0 -          Live 0x12869000
md5      3777    1 -          Live 0x1282c000
ipv6     211845 16 -          Live 0x128de000
ext3     92585   2 -          Live 0x12886000
jbd      65625   1 ext3,      Live 0x12857000
dm_mod   46677   3 -          Live 0x12833000

La première colonne contient le nom du module.

La deuxième colonne fait référence à la taille de la mémoire du module (exprimée en octets).

La troisième colonne énumère le nombre d'instances du module qui sont actuellement chargées. Une valeur de zéro correspond à un module qui n'est pas chargé.

La quatrième colonne indique si le module dépend de la présence d'un ou d'autres module(s) pour son fonctionnement et en dresse la liste.

La cinquième colonne dresse énumère le statut de la charge du module dans : Live, Loading ou Unloading, sont les seules valeurs possibles.

La sixième colonne énumère le décalage actuel de la mémoire du noyau pour les modules chargés. Ce genre d'information peut être utile à des fins de débogage ou pour des outils de profilage tels que oprofile.

5.2.22. /proc/mounts

Ce fichier fournit une liste de tous les montages utilisés par le système :

rootfs / rootfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
none /dev ramfs rw 0 0
/dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0
none /dev ramfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
/sys /sys sysfs rw 0 0
none /dev/pts devpts rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
/dev/hda1 /boot ext3 rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

Cette sortie est semblable au contenu de /etc/mtab, mis à part que /proc/mount est plus actuel.

La première colonne spécifie le périphérique monté et la deuxième indique le point de montage. La troisième colonne donne le type de système de fichiers et la quatrième indique s'il est monté en lecture-seule (ro) ou en lecture et écriture (rw). Les cinquième et sixième colonnes sont des valeurs fictives conçues pour correspondre au format utilisé dans /etc/mtab.

5.2.23. /proc/mtrr

Ce fichier fait référence aux MTRR (Memory Type Range Registers) utilisés avec le système. Si l'architecture de votre système prend en charge les MTRR, votre fichier /proc/mtrr pourrait alors avoir l'aspect suivant :

reg00: base=0x00000000 (   0MB), size= 256MB: write-back, count=1
reg01: base=0xe8000000 (3712MB), size=  32MB: write-combining, count=1

Les MTRR sont utilisés avec les processeurs de la famille P6 d'Intel (Pentium II et supérieur) pour contrôler l'accès du processeur aux plages de mémoire. En utilisant une carte vidéo sur un bus PCI ou AGP, un fichier /proc/mtrr correctement configuré peut augmenter les performances de plus de 150%.

Dans la plupart des cas, cette valeur est correctement configurée par défaut. Pour obtenir davantage de renseignements sur la configuration manuelle de ce fichier, reportez-vous à l'adresse suivante :

/usr/share/doc/kernel-doc-<version>/Documentation/mtrr.txt

5.2.24. /proc/partitions

Ce fichier contient des informations sur l'allocation de blocs aux partitions. Un échantillonnage de ce fichier depuis un système élémentaire ressemble à l'extrait ci-dessous :

major minor  #blocks  name
 
   3     0   19531250 hda
   3     1     104391 hda1
   3     2   19422585 hda2
 253     0   22708224 dm-0
 253     1     524288 dm-1

La plupart des informations présentées ici ne sont pas importantes pour l'utilisateur, à l'exception des colonnes suivantes :

  • major — Indique le nombre majeur du périphérique avec cette partition. Le nombre majeur dans /proc/partitions, (3), correspond au périphérique bloc ide0 dans /proc/devices.
  • minor — Indique le nombre mineur du périphérique avec cette partition. Cet élément permet de séparer les partitions en différents périphériques physiques et fait référence au nombre situé à la fin du nom de la partition.
  • #blocks — Répertorie le nombre de blocs de disque physique contenus dans une partition donnée.
  • name — Indique le nom de la partition.

5.2.25. /proc/pci

Ce fichier contient une liste complète de tous les périphériques PCI du système. Selon le nombre de périphériques PCI, /proc/pci peut être assez long. Ci-après se trouve un exemple de ce fichier sur un système de base :

  Bus  0, device   0, function  0:
    Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3).
      Master Capable.  Latency=64.  
      Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff].
  Bus  0, device   1, function  0:
    PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3).
      Master Capable.  Latency=64.  Min Gnt=128.
  Bus  0, device   4, function  0:
    ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2).
  Bus  0, device   4, function  1:
    IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1).
      Master Capable.  Latency=32.  
      I/O at 0xd800 [0xd80f].
  Bus  0, device   4, function  2:
    USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1).
      IRQ 5.
      Master Capable.  Latency=32.  
      I/O at 0xd400 [0xd41f].
  Bus  0, device   4, function  3:
    Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2).
      IRQ 9.
  Bus  0, device   9, function  0:
    Ethernet controller: Lite-On Communications Inc LNE100TX (rev 33).
      IRQ 5.
      Master Capable.  Latency=32.  
      I/O at 0xd000 [0xd0ff].
      Non-prefetchable 32 bit memory at 0xe3000000 [0xe30000ff].
  Bus  0, device  12, function  0:
    VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).
      IRQ 11.
      Master Capable.  Latency=32.  Min Gnt=4.Max Lat=255.
      Non-prefetchable 32 bit memory at 0xdc000000 [0xdfffffff].

Cette sortie affiche une liste de tous les périphériques PCI, triés par ordre de bus, périphérique et fonction. Outre la précision du nom et de la version du périphérique, cette liste fournit des informations détaillées sur les IRQ afin que l'administrateur puisse détecter rapidement tout conflit.

Pour obtenir une version plus lisible de ce genre d'informations, tapez :

/sbin/lspci -vb

5.2.26. /proc/slabinfo

Ce fichier fournit des informations complètes sur l'utilisation de la mémoire au niveau du bloc (ou slab). Les noyaux Linux supérieurs à 2.2 utilisent des slab pools pour gérer la mémoire au-dessus du niveau page. Les objets couramment utilisés ont leurs propres groupes d'emplacement mémoire de type bloc (ou slab pools).

Au lieu d'analyser manuellement le fichier /proc/slabinfo qui est très prolixe, le programme /usr/bin/slabtop affiche en temps réel les informations de cache de l'utilisation de mémoire en bloc par le noyau. Ce programme permet d'effectuer des configurations personnalisées, y compris le classement des colonnes et le rafraîchissement d'écran.

Une capture d'écran type de /usr/bin/slabtop ressemble généralement à l'exemple ci-dessous :

 Active / Total Objects (% used)    : 133629 / 147300 (90.7%)
 Active / Total Slabs (% used)      : 11492 / 11493 (100.0%)
 Active / Total Caches (% used)     : 77 / 121 (63.6%)
 Active / Total Size (% used)       : 41739.83K / 44081.89K (94.7%)
 Minimum / Average / Maximum Object : 0.01K / 0.30K / 128.00K
                                                                                                                  
  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
 44814  43159  96%    0.62K   7469        6     29876K ext3_inode_cache
 36900  34614  93%    0.05K    492       75      1968K buffer_head
 35213  33124  94%    0.16K   1531       23      6124K dentry_cache
  7364   6463  87%    0.27K    526       14      2104K radix_tree_node
  2585   1781  68%    0.08K     55       47       220K vm_area_struct
  2263   2116  93%    0.12K     73       31       292K size-128
  1904   1125  59%    0.03K     16      119        64K size-32
  1666    768  46%    0.03K     14      119        56K anon_vma
  1512   1482  98%    0.44K    168        9       672K inode_cache
  1464   1040  71%    0.06K     24       61        96K size-64
  1320    820  62%    0.19K     66       20       264K filp
   678    587  86%    0.02K      3      226        12K dm_io
   678    587  86%    0.02K      3      226        12K dm_tio
   576    574  99%    0.47K     72        8       288K proc_inode_cache
   528    514  97%    0.50K     66        8       264K size-512
   492    372  75%    0.09K     12       41        48K bio
   465    314  67%    0.25K     31       15       124K size-256
   452    331  73%    0.02K      2      226         8K biovec-1
   420    420 100%    0.19K     21       20        84K skbuff_head_cache
   305    256  83%    0.06K      5       61        20K biovec-4
   290      4   1%    0.01K      1      290         4K revoke_table
   264    264 100%    4.00K    264        1      1056K size-4096
   260    256  98%    0.19K     13       20        52K biovec-16
   260    256  98%    0.75K     52        5       208K biovec-64

Parmi certaines des statistiques les plus communément utilisées qui se trouvent dans /proc/slabinfo et qui sont incluses dans /usr/bin/slabtop figurent :

  • OBJS — Nombre total d'objets (blocs de mémoire), incluant ceux utilisés (alloués) et d'autres libres qui ne sont pas utilisés.
  • ACTIVE — Nombre d'objets (blocs de mémoire) qui sont utilisés (alloués).
  • USE — Pourcentage d'objets qui sont actifs. ((ACTIVE/OBJS)(100))
  • OBJ SIZE — Taille des objets.
  • SLABS — Nombre total de blocs.
  • OBJ/SLAB — Nombre d'objets tenant dans un bloc.
  • CACHE SIZE — Taille du cache du bloc.
  • NAME — Nom du bloc.

Pour obtenir davantage d'informations sur le programme /usr/bin/slabtop, reportez-vous à la page de manuel de slabtop.

5.2.27. /proc/stat

Ce fichier effectue le suivi de différentes statistiques sur le système et ce, depuis le dernier redémarrage. Le contenu de /proc/stat, qui peut être assez long, commence normalement de la façon suivante :

cpu  259246 7001 60190 34250993 137517 772 0
cpu0 259246 7001 60190 34250993 137517 772 0
intr 354133732 347209999 2272 0 4 4 0 0 3 1 1249247 0 0 80143 0 422626 5169433
ctxt 12547729
btime 1093631447
processes 130523
procs_running 1
procs_blocked 0
preempt 5651840

cpu  209841 1554 21720 118519346 72939 154 27168
cpu0 42536 798 4841 14790880 14778 124 3117
cpu1 24184 569 3875 14794524 30209 29 3130
cpu2 28616 11 2182 14818198 4020 1 3493
cpu3 35350 6 2942 14811519 3045 0 3659
cpu4 18209 135 2263 14820076 12465 0 3373
cpu5 20795 35 1866 14825701 4508 0 3615
cpu6 21607 0 2201 14827053 2325 0 3334
cpu7 18544 0 1550 14831395 1589 0 3447
intr 15239682 14857833 6 0 6 6 0 5 0 1 0 0 0 29 0 2 0 0 0 0 0 0 0 94982 0 286812
ctxt 4209609
btime 1078711415
processes 21905
procs_running 1
procs_blocked 0

Parmi les statistiques les plus couramment utilisées figurent :

  • cpu — Mesure le nombre de jiffies (en centièmes de seconde pour des systèmes x86) que le système a passé en mode utilisateur, en mode utilisateur doté d'une priorité basse (nice), en mode système, en tâche inactive, en attente d'E/S, en interruptions IRQ (hardirq) et softirq respectivement. L'interruption IRQ (hardirq) est la réponse directe à un événement matériel. Elle ne demande qu'un travail minimal pour mettre en file d'attente le travail “lourd” que la softirq doit exécuter. L'interruption softirq tourne à une priorité plus basse que l'IRQ et par conséquent sera peut-être interrompue plus fréquemment. Le total pour tous les CPU apparaît en haut alors que chaque CPU individuel est énuméré en dessous avec ses propres statistiques. L'exemple suivant étant une configuration Intel Pentium Xeon quadruple avec activation de multi-threading, il montre logiquement quatre processeurs physiques et quatre processeurs virtuels soit un total de huit processeurs.
  • page — Nombre de pages mémoire que le système a enregistré en entrée et en sortie.
  • swap — Nombre de pages échangées par le système.
  • intr — Nombre d'interruptions reçues par le système.
  • btime — Temps du démarrage, mesuré en nombre de secondes écoulées depuis le 1er janvier 1970 ; date à laquelle on fait parfois référence en tant qu'époque.

5.2.28. /proc/swaps

Ce fichier mesure l'espace swap et son utilisation. Pour un système n'ayant qu'une seule partition swap, la sortie de /proc/swap peut ressembler à l'extrait ci-dessous :

Filename                          Type        Size     Used    Priority
/dev/mapper/VolGroup00-LogVol01   partition   524280   0       -1

Bien qu'il soit possible de trouver une partie de ces informations dans d'autres fichiers du répertoire /proc/, /proc/swap fournit un instantané de chaque nom de fichier swap, du type d'espace swap, de la taille totale et de l'espace utilisé (exprimée en Ko). La colonne intitulée 'priority' est utile lorsque plusieurs fichiers swap sont en cours d'utilisation. Plus la priorité est basse, plus la probabilité que le fichier swap soit utilisé est élevée.

5.2.29. /proc/sysrq-trigger

En utilisant la commande echo pour écrire dans ce fichier, un super-utilisateur distant peut exécuter la plupart des commandes de touche d'interrogation système (ou System Request Key) comme s'il se trouvait sur le terminal local. Pour pouvoir transmettre des valeurs à ce fichier à l'aide de la commande echo, /proc/sys/kernel/sysrq doit avoir une valeur autre que 0. Pour davantage d'informations sur la touche d'interrogation système, reportez-vous à la Section 5.3.9.3.

Bien qu'il soit possible d'écrire dans ce fichier, il n'est pas possible de le lire, même en tant que super-utilisateur.

5.2.30. /proc/uptime

Ce fichier contient des informations sur le temps de fonctionnement du système depuis le dernier redémarrage. La sortie de /proc/uptime est succincte :

350735.47 234388.90

Le premier nombre indique le nombre total de secondes de fonctionnement depuis le démarrage. Le second montre la partie de cette durée, exprimée en secondes, pendant laquelle l'ordinateur était inactif.

5.2.31. /proc/version

Ce fichier précise les versions du noyau Linux et celle de gcc qui sont utilisées, de même que la version de Red Hat Enterprise Linux qui est installée sur le système :

Linux version 2.6.8-1.523 (user@foo.redhat.com) (gcc version 3.4.1 20040714 \
 (Red Hat Enterprise Linux 3.4.1-7)) #1 Mon Aug 16 13:27:03 EDT 2004

Ces informations font l'objet d'utilisations variées, y compris l'affichage des données relatives à la version lorsqu'un utilisateur se connecte.

tuto/linux/repertoire_proc.txt · Dernière modification : 2010/07/09 21:58 de root