12 février 2014

procfs

1. Présentation

Le pseudo-système de fichiers procfs (process file system) est dynamiquement mis à jour par le noyau. Il est monté pour qu’il soit accessible sur le dossier /proc. Bien qu’il soit non vide, il affiche une taille de 0 Kio :
# ls -dl /proc  
dr-xr-xr-x 110 root root 0 juil. 28 16:14 /proc 
En effet, le concept de taille de fichier n’a pas de sens pour procfs puisqu’il occupe uniquement une quantité limitée de mémoire vive.
Le dossier /proc est utilisé pour accéder aux informations du noyau qui est en cours d’exécution. Vous pouvez ainsi consulter en temps réel des informations sur le matériel, le système, le réseau, les processus, etc. Il est possible de changer la configuration du noyau en écrivant dans certains fichiers stockés dans /proc.

2. Principaux fichiers de /proc

/proc est organisé en dossiers et sous-dossiers virtuels et rassemble les fichiers par thème similaire :
# ls /proc 
1      18     2430     3196    459        dri           mtrr  
10     19     2704     3200    5          driver        net 
11     2      285      3203    6          execdomains   pagetypeinfo
115    20     2889     3208    649        fb            partitions  
12     2030   2918     3211    651        filesystems   sched_debug 
123    2085   2926     3212    7          fs            self  
13     21     2927     3220    8          interrupts    slabinfo 
139    2117   2928     3223    9          iomem         softirqs  
1394   2158   2929     3228    93         ioports       stat 
1395   2187   2930     3229    94         irq           swaps  
1396   2206   2931     3314    95         kallsyms      sys 
1397   2224   2932     3315    acpi       kcore         sysrq-trigger
14     2248   2933     3322    asound     keys          sysvipc 
140    2249   2936     361     buddyinfo  key-users     timer_list 
15     2250   2940     378     bus        kmsg          timer_stats 
16     2263   3        396     cgroups    kpagecount    tty 
1681   2287   3014     4       cmdline    kpageflags    uptime 
17     2290   3018     412     consoles   loadavg       version 
1724   2291   3025     415     cpuinfo    locks         vmallocinfo 
1730   2293   3071     416     crypto     meminfo       vmstat 
1735   2313   3137     422     devices    misc          zoneinfo  
1752   2321   3190     423     diskstats  modules 
1760   2394   3192     424     dma        mounts 
Les dossiers qui portent un nom numérique correspondent à un PID (Process IDentifier) d’un processus en cours de fonctionnement. Les autres dossiers fournissent des informations matérielles ou logicielles.

a. /proc/acpi

Le fichier /proc/acpi/wakeup liste les périphériques qui sont capables de démarrer un système mis en veille prolongée. La colonne Device énumère les périphériques concernés tandis que la colonne Sysfs node affiche le bus de connexion. La colonne Status, quant à elle, montre l’état de fonctionnement de ces derniers, activé (enabled) ou désactivé (disabled).
Voici le contenu du fichier :
# cat /proc/acpi/wakeup 
Device   S-state      Status        Sysfs node  
PCI0        S5      *disabled    no-bus:pci0000:00  
PCIE        S4      *disabled    pci:0000:00:1e.0  
EHC2        S0      *enabled     pci:0000:00:1a.0  
EHCI        S0      *enabled     pci:0000:00:1d.0  
AZAL        S3      *disabled    pci:0000:00:1b.0  
RP01        S3      *disabled    pci:0000:00:1c.0  
RP02        S4      *disabled    pci:0000:00:1c.1  
RP03        S3      *disabled 
RP04        S3      *disabled    pci:0000:00:1c.3  
RP05        S3      *disabled    pci:0000:00:1c.4  
RP06        S5      *disabled    pci:0000:00:1c.5  
RP07        S5      *disabled    pci:0000:00:1c.6  
RP08        S3      *disabled    pci:0000:00:1c.7  
LID         S3      *disabled  
PBTN        S4      *disabled 
Le fichier /proc/acpi/sleep est remplacé par une autre interface dans le pseudo-système de fichier sysfs : /sys/power/state.

b. /proc/apm

Ce fichier fournit les informations sur l’état de l’APM (Advanced Power Management) si la constante CONFIG_APM est déclarée lors de la compilation du noyau Linux. Ces informations sont utilisées aussi par les commandes APM.

c. /proc/bus

/proc/bus/pci
Ce dossier stocke les informations sur les bus PCI :
# ls -1 /proc/bus/pci 
00 
01  
03  
09  
0c  
10  
3f  
devices 
/proc/bus/pci/devices fournit des informations sur les périphériques PCI :
# cat /proc/bus/pci/devices 
0000  80861237     0                     0                   0 
0                    0                   0                   0
0                    0                   0                   0  
0                    0                   0                   0  
0008  80867000     0                     0                   0 
0                    0                   0                   0  
0                    0                   0                   0  
0                    0                   0                   0  
0009  80867111     0                   1f0                 3f6  
170                376                d001                   0  
0                    8                   0                   8  
0                   10                   0                   0 
      ata_piix  
0010  80eebeef     12             e0000008                   0  
0                    0                   0                   0  
2              1000000                   0                   0  
0                    0                   0                   0  
0018  8086100e     13             f0000000                   0  
d011                 0                   0                   0  
0                20000                   0                   8  
0                    0                   0                   0 
e1000  
0020  80eecafe     14                 d021            f0400000  
f0800008                   0                     0  
0                    0                  20              400000  
4000                 0                   0                   0  
0  
0028  80862415     15                 d101                d201  
0                    0                   0                   0  
0                  100                  40                   0  
0                    0                   0                   0 
      snd_intel8x0  
0030  106b003f     16             f0804000                   0  
0                    0                   0                   0  
0                 1000                   0                   0  
0                    0                   0                   0 
      ohci_hcd  
0038  80867113     9                     0                   0  
0                    0                   0                   0  
0                    0                   0                   0  
0                    0                   0                   0  
0058  8086265c     13             f0805000                   0  
0                    0                   0                   0  
0                 1000                   0                   0  
0                    0                   0                   0 
ehci_hcd  
0068  80862829     15                 d241                   0  
d251                 0                d261            f0806000  
0                    8                   0                   8  
0                   10                2000                   0 
ahci 
/proc/bus/usb
Les distributions telles que Debian et Ubuntu désactivent usbfs et par conséquent le dossier /proc/bus/usb est absent.
En revanche, CentOS 6 possède ce dossier :
# ls -l /proc/bus/usb  
total 0  
dr-xr-xr-x. 2 root root 0 11 août  16:25 001  
dr-xr-xr-x. 2 root root 0 11 août  16:25 002  
-r--r--r--. 1 root root 0 11 août  16:25 devices
Le fichier /proc/bus/usb/devices contient les informations sur les bus :
# cat  /proc/bus/usb/devices  
T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12   MxCh= 8  
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0  
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1  
P:  Vendor=1d6b ProdID=0001 Rev= 2.06  
S:  Manufacturer=Linux 2.6.32-358.14.1.el6.x86_64 ohci_hcd  
S:  Product=OHCI Host Controller  
S:  SerialNumber=0000:00:06.0  
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA  
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub  
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms  
 
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 8  
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0  
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1  
P:  Vendor=1d6b ProdID=0002 Rev= 2.06  
S:  Manufacturer=Linux 2.6.32-358.14.1.el6.x86_64 ehci_hcd  
S:  Product=EHCI Host Controller  
S:  SerialNumber=0000:00:0b.0  
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA  
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub  
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms 

d. /proc/cmdline

Ce fichier contient les paramètres qui ont été passés au noyau lors de son chargement :
# cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/SystemVG- 
rootLV ro quiet

e. /proc/cpuinfo

Ce fichier contient les caractéristiques du ou des processeurs de la machine :
# cat cpuinfo  
processor          : 0  
vendor_id          : GenuineIntel  
cpu family         : 6  
model              : 30  
model name         : Intel(R) Core(TM) i7 CPU      Q 740  @ 1.73GHz  
stepping           : 5  
cpu MHz            : 1723.555  
cache size         : 6144 KB  
physical id        : 0  
siblings           : 2  
core id            : 0  
cpu cores          : 2  
apicid             : 0  
initial apicid     : 0  
fpu                : yes  
fpu_exception      : yes  
cpuid level        : 5  
wp                 : yes  
flags              : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr 
pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx  
rdtscp lm constant_tsc rep_good nopl pni ssse3 lahf_lm  
bogomips           : 3447.11  
clflush size       : 64  
cache_alignment    : 64  
address sizes      : 36 bits physical, 48 bits virtual  
power management   :  
 
processor          : 1  
vendor_id          : GenuineIntel  
cpu family         : 6  
model              : 30  
model name         : Intel(R) Core(TM) i7 CPU      Q 740  @ 1.73GHz  
stepping           : 5  
cpu MHz            : 1723.555  
cache size         : 6144 KB  
physical id        : 0  
siblings           : 2  
core id            : 1  
cpu cores          : 2  
apicid             : 1  
initial apicid     : 1  
fpu                : yes  
fpu_exception      : yes  
cpuid level        : 5  
wp                 : yes  
flags              : fpu vme de pse tsc msr pae mce cx8 apic sep  
mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx  
rdtscp lm constant_tsc rep_good nopl pni ssse3 lahf_lm  
bogomips           : 3451.59  
clflush size       : 64  
cache_alignment    : 64  
address sizes      : 36 bits physical, 48 bits virtual  
power management   :

f. /proc/crypto

Ce fichier répertorie tous les chiffrements cryptographiques installés et utilisés :
# cat /proc/crypto  
name         : stdrng  
driver       : krng  
module       : kernel  
priority     : 200  
refcnt       : 1  
selftest     : passed  
type         : rng  
seedsize     : 0  
 
name         : md5  
driver       : md5-generic  
module       : kernel  
priority     : 0  
refcnt       : 1  
selftest     : passed  
type         : shash  
blocksize    : 64  
digestsize   : 16 

g. /proc/devices

Ce fichier contient les périphériques de blocs et de caractères qui sont chargés au sein du système :
# cat devices 
Character devices:  
  1 mem  
  4 /dev/vc/0  
  4 tty  
  4 ttyS  
  5 /dev/tty  
  5 /dev/console  
  5 /dev/ptmx  
  6 lp  
  7 vcs  
 10 misc  
 13 input  
 21 sg  
 29 fb  
 99 ppdev  
116 alsa  
128 ptm  
136 pts  
180 usb  
189 usb_device  
216 rfcomm  
226 drm  
252 hidraw  
253 bsg  
254 rtc  
 
Block devices:  
259 blkext  
  7 loop  
  8 sd  
 11 sr  
 65 sd  
 66 sd  
 67 sd  
 68 sd  
 69 sd  
 70 sd  
 71 sd  
128 sd  
129 sd  
130 sd  
131 sd  
132 sd  
133 sd  
134 sd  
135 sd  
254 device-mapper
Le numéro devant le nom du périphérique est le numéro majeur qui identifie le type de périphérique.

h. /proc/dma

Ce fichier contient la liste des canaux DMA ISA qui sont en cours d’utilisation :
# cat /proc/dma  
4: cascade 

i. /proc/filesystems

Ce fichier liste les systèmes de fichiers qui sont pris en compte par le noyau :
# cat /proc/filesystems  
nodev   sysfs  
nodev   rootfs  
nodev   bdev  
nodev   proc  
nodev   cgroup  
nodev   cpuset  
nodev   tmpfs  
nodev   devtmpfs  
nodev   debugfs  
nodev   securityfs  
nodev   ockfs  
nodev   pipefs  
nodev   anon_inodefs  
nodev   devpts  
nodev   ramfs  
nodev   hugetlbfs  
nodev   pstore  
nodev   mqueue  
        ext4  
nodev   usbfs  
nodev   rpc_pipefs  
nodev   nfs  
nodev   nfs4  
nodev   nfsd  
nodev   binfmt_misc 

j. /proc/fs

Ce dossier contient des sous-dossiers relatifs aux systèmes de fichiers :
Fichier
Description
ext4
Informations sur le système de fichiers monté ext4.
fscache/stats
Données statistiques sur fscache qui est un cache local persistant. Il est utilisé par les systèmes de fichiers pour prendre les données provenant du réseau afin de les mettre en cache sur le disque local. Cela permet de réduire le trafic réseau pour les utilisateurs qui accèdent aux données d’un système de fichier monté sur le réseau.
jbd2
Informations et statistiques sur le système de fichiers ext4.
nfs
Information sur les systèmes de fichiers qui sont actuellement exportés vers un client.
nfsd
Informations sur le serveur NFS.
nfsfs
Informations sur le système de fichiers NFS.

k. /proc/ide

Si le système possède un bus IDE alors ce dossier existe. Il contient une arborescence de sous-dossiers pour chaque canal IDE et les périphériques attachés.

l. /proc/interrupts

Ce fichier comporte le nombre d’interruptions par IRQ sur l’architecture x86 :
# cat /proc/interrupts  
          CPU0      CPU1  
0:          45         0      IO-APIC-edge      timer  
1:           9         0      IO-APIC-edge      i8042 
8:           0         0      IO-APIC-edge      rtc0  
9:           0         0      IO-APIC-fasteoi   acpi  
12:        146         0      IO-APIC-edge      i8042 
14:          0         0      IO-APIC-edge      ata_piix 
15:         92         0      IO-APIC-edge      ata_piix  
19:      39213         0      IO-APIC-fasteoi   ehci_hcd:usb1, eth0 
20:       4646         0      IO-APIC-fasteoi   vboxguest 
21:      18410         0      IO-APIC-fasteoi   ahci, snd_intel8x0  
22:         26         0      IO-APIC-fasteoi   ohci_hcd:usb2  
NMI:         0         0      Non-maskable interrupts  
LOC:    138073    137387      Local timer interrupts  
SPU:         0         0      Spurious interrupts  
PMI:         0         0      Performance monitoring interrupts  
IWI:         0         0      IRQ work interrupts  
RES:     27938     20542      Rescheduling interrupts  
CAL:       217       428      Function call interrupts  
TLB:       828      1247      TLB shootdowns  
TRM:         0         0      Thermal event interrupts  
THR:         0         0      Threshold APIC interrupts  
MCE:         0         0      Machine check exceptions  
MCP:       153       153      Machine check polls  
ERR:         0 
MIS:         0 
La première colonne indique le numéro d’IRQ. Depuis la version du noyau Linux 2.6.24 pour les architectures i386 et x86_64 il comprend aussi les interruptions internes au système qui ne sont pas directement attachées à un périphérique telles que les NMI (Non Maskable Interrupt), LOC (Local Timer Interrupt), CAL (Remote Function Call Interrupt), etc. Ces derniers ne sont pas accessibles pour nous.
Chaque unité centrale (CPU) possède sa propre colonne et son propre nombre d’interruptions par IRQ.
L’avant-dernière colonne affiche le type d’interruption et la dernière colonne contient le nom du périphérique utilisant cette IRQ.

m. /proc/iomem

Ce fichier affiche la mémoire système en cours pour chaque périphérique physique :
# cat /proc/iomem  
00000000-0000ffff : reserved  
00010000-0009efff : System RAM  
0009f000-0009ffff : reserved  
000a0000-000bffff : PCI Bus 0000:00  
000c0000-000cf7ff : Video ROM  
000cf800-000cffff : Adapter ROM  
 
                                  ... 
 
fee10000-ff9fffff : PCI Bus 0000:00  
ffa00000-ffbfffff : pnp 00:0b  
ffc00000-ffdfffff : PCI Bus 0000:00  
ffe00000-ffffffff : reserved  
  ffe00000-ffffffff : pnp 00:0b  
100000000-21bffffff : System RAM 

n. /proc/ioports

Ce fichier contient les informations sur les ports E/S utilisés par le système :
# cat /proc/ioports  
0000-001f : dma1  
0020-0021 : pic1  
0040-0043 : timer0  
0050-0053 : timer1  
0060-0060 : keyboard  
0064-0064 : keyboard  
0070-0071 : rtc_cmos  
  0070-0071 : rtc0  
0080-008f : dma page reg  
00a0-00a1 : pic2  
00c0-00df : dma2  
00f0-00ff : fpu  
0170-0177 : 0000:00:01.1  
  0170-0177 : ata_piix  
01f0-01f7 : 0000:00:01.1  
  01f0-01f7 : ata_piix  
0376-0376 : 0000:00:01.1  
  0376-0376 : ata_piix  
03c0-03df : vga+  
03f6-03f6 : 0000:00:01.1  
  03f6-03f6 : ata_piix  
0cf8-0cff : PCI conf1  
4000-4003 : ACPI PM1a_EVT_BLK  
4004-4005 : ACPI PM1a_CNT_BLK  
4008-400b : ACPI PM_TMR  
4020-4021 : ACPI GPE0_BLK  
d000-d00f : 0000:00:01.1  
  d000-d00f : ata_piix  
d010-d017 : 0000:00:03.0  
  d010-d017 : e1000  
d020-d03f : 0000:00:04.0  
d100-d1ff : 0000:00:05.0  
  d100-d1ff : Intel 82801AA-ICH  
d200-d23f : 0000:00:05.0  
  d200-d23f : Intel 82801AA-ICH  
d240-d247 : 0000:00:0d.0  
  d240-d247 : ahci  
d250-d257 : 0000:00:0d.0  
  d250-d257 : ahci  
d260-d26f : 0000:00:0d.0  
  d260-d26f : ahci

o. /proc/irq

Ce dossier comprend un sous-dossier par IRQ :
# ls -l /proc/irq  
total 0  
dr-xr-xr-x 2 root root 0 août   4 00:49 0  
dr-xr-xr-x 3 root root 0 août   4 00:49 1  
dr-xr-xr-x 2 root root 0 août   4 00:49 10  
dr-xr-xr-x 2 root root 0 août   4 00:49 11  
dr-xr-xr-x 3 root root 0 août   4 00:49 12  
dr-xr-xr-x 2 root root 0 août   4 00:49 13  
dr-xr-xr-x 3 root root 0 août   4 00:49 14  
dr-xr-xr-x 3 root root 0 août   4 00:44 15  
dr-xr-xr-x 4 root root 0 août   4 00:49 19  
dr-xr-xr-x 2 root root 0 août   4 00:49 2  
dr-xr-xr-x 3 root root 0 août   4 00:49 20  
dr-xr-xr-x 4 root root 0 août   4 00:49 21  
dr-xr-xr-x 3 root root 0 août   4 00:49 22  
dr-xr-xr-x 2 root root 0 août   4 00:49 3  
dr-xr-xr-x 2 root root 0 août   4 00:49 4  
dr-xr-xr-x 2 root root 0 août   4 00:49 5  
dr-xr-xr-x 2 root root 0 août   4 00:49 6  
dr-xr-xr-x 2 root root 0 août   4 00:49 7  
dr-xr-xr-x 3 root root 0 août   4 00:49 8  
dr-xr-xr-x 3 root root 0 août   4 00:49 9  
-rw------- 1 root root 0 août   4 00:49 default_smp_affinity 
/proc/irq/default_smp_affinity définit globalement la valeur par défaut du SMP affinity qui permet choisir sur quel processeur le traitement va s’effectuer. Cette valeur est un masque binaire. Supposez que vous avez un ordinateur doté de quatre processeurs :
CPU
Binaire
Hexadécimal
CPU 0
0001
1
CPU 1
0010
2
CPU 2
0100
4
CPU 3
1000
8
Si vous souhaitez, par exemple, le traitement sur le CPU 0 et CPU 2, vous devez additionner les deux valeurs binaires 0001 + 0100, ce qui donne : 0101 (5 en hexadécimal).
Pour une machine bi-processeur, /proc/irq/default_smp_affinity contient la valeur hexadécimale 3 (soit 0001+0010=0011) :
# cat default_smp_affinity  
3 
Dans chaque dossier d’une IRQ, vous avez un fichier smp_affinity qui spécifie respectivement le choix du processeur pour cette interruption.
Exemple
L’objectif est de changer le SMP affinity de l’IRQ de la carte réseau eth0 à 2, pour utiliser le CPU 1.
Quelle est son IRQ ?
# grep eth0 /proc/interrupts  
 19:      41133          0   IO-APIC-fasteoi   ehci_hcd:usb1, eth0 
C’est l’IRQ 19. Il suffit de modifier le fichier /proc/irq/19/smp_affinity :
# echo "2" > /proc/irq/19/smp_affinity
Vous pouvez constater en visualisant plusieurs fois le fichier /proc/interrupts que la valeur de l’IRQ 19 augmentera dans la colonne du CPU1 :
# grep 19 /proc/interrupts 
 19:    52586      842   IO-APIC-fasteoi   ehci_hcd:usb1, eth0  
# grep 19 /proc/interrupts 
 19:    52586      854   IO-APIC-fasteoi   ehci_hcd:usb1, eth0   
# grep 19 /proc/interrupts 
 19:    52586      934   IO-APIC-fasteoi   ehci_hcd:usb1, eth0 
La valeur du CPU 0 n’évolue plus.

p. /proc/kcore

Ce pseudo-fichier représente la mémoire physique du système :
# ls -l kcore  
-r-------- 1 root root 140737486262272 août   5 11:04 kcore 
La longueur totale de ce fichier est la taille de la mémoire RAM physique plus 4 Kio. Sur les noyaux 64 bits, la taille de ce fichier peut atteindre 128 téraoctets.

q. /proc/loadavg

Ce fichier donne des informations sur la charge du système :
# cat /proc/loadavg  
0.00 0.01 0.05 1/213 4944
Les trois premières valeurs représentent le nombre de tâches actives sur le système comme des processus en cours d’exécution par exemple avec une moyenne sur les 1, 5 et 15 dernières minutes.
La valeur suivante indique le nombre courant de tâches exécutables telles que des processus planifiés et le nombre total de processus sur le système.
La dernière valeur correspond au PID du processus actif le plus récemment.

r. /proc/mdstat

Ce fichier fournit la liste des volumes RAID (Redundant Array of Independent Disks) :
#cat /proc/mdstat 
Personalities : [Raid 1] 
md2  :  active raid1 sdb2[1]  sda2[0] 
        40957232 blocks [2/2]  [UU] 
md1  :  active raid1 sdb3[1]  sda3[0] 
        8385856 blocks [2/2]  [UU] 
md3  :  active raid1 sdb5[1]  sda5[0] 
        194563072 blocks [2/2]  [UU] 
md0  :  active raid1 sdb1[1]  sda1[0] 
        104320 blocks [2/2]  [UU] 
unused devices :  <none>

s. /proc/meminfo

Ce fichier permet de visualiser l’usage de la mémoire :
# cat /proc/meminfo 
MemTotal:         508780 kB  
MemFree:           54628 kB  
Buffers:           99380 kB  
Cached:           208556 kB  
SwapCached:            0 kB  
Active:           177796 kB  
Inactive:         199132 kB  
Active(anon):      69480 kB  
Inactive(anon):      212 kB  
Active(file):     108316 kB  
Inactive(file):   198920 kB  
Unevictable:           0 kB  
Mlocked:               0 kB  
SwapTotal:        499708 kB  
SwapFree:         499708 kB  
Dirty:                 0 kB  
Writeback:             0 kB  
AnonPages:         69008 kB  
Mapped:            33920 kB  
Shmem:               708 kB  
Slab:              59392 kB  
SReclaimable:      47800 kB  
SUnreclaim:        11592 kB  
KernelStack:        1688 kB  
PageTables:         7512 kB  
NFS_Unstable:          0 kB  
Bounce:                0 kB  
WritebackTmp:          0 kB  
CommitLimit:      754096 kB  
Committed_AS:     427788 kB  
VmallocTotal:   34359738367 kB  
VmallocUsed:       18164 kB  
VmallocChunk:   34359719299 kB  
HardwareCorrupted:     0 kB  
AnonHugePages:         0 kB  
HugePages_Total:       0  
HugePages_Free:        0  
HugePages_Rsvd:        0  
HugePages_Surp:        0  
Hugepagesize:       2048 kB  
DirectMap4k:       36800 kB  
DirectMap2M:      487424 kB 
Signification des principales valeurs :
Valeur
Description
MemTotal
Total de la RAM utilisable.
La RAM utilisable, c’est la RAM physique moins quelques bits réservés et le code binaire du noyau.
MemFree
Quantité de la RAM actuellement non allouée.
Buffers
Quantité de la RAM actuellement allouée dans des buffers.
Cached
Quantité de mémoire actuellement utilisée en tant que cache.
SwapCached
Quantité de mémoire actuellement sortie du swap. Cependant, une copie est toujours présente dans le swap.
Active
Quantité de mémoire qui a été utilisée récemment et qui n’est généralement pas récupérée sauf si c’est absolument nécessaire.
Inactive
Quantité de mémoire qui n’a pas été utilisée depuis un certain moment.
SwapTotal
Taille du swap.
SwapFree
Espace disponible dans le swap.
Dirty
Quantité de mémoire en attente d’être écrite sur le disque.
Writeback
Quantité de mémoire qui est actuellement en train d’être écrite sur le disque.
Slab
Quantité de mémoire utilisée dans le noyau et allouée à Slab, pour ses propres objets et structures.
PageTables
Quantité de mémoire utilisée en tant que table de pages pour gérer la pagination.
CommitLimit
Estimation de la quantité maximale de mémoire disponible pour être allouée.
VmallocTotal
Quantité totale de mémoire de l’espace d’adressage virtuel du noyau.
VmallocUsed
Quantité de mémoire utilisée dans l’espace d’adressage virtuel du noyau.
VmallocChunk
Le plus grand bloc contigu de mémoire virtuelle disponible dans l’espace d’adressage virtuel du noyau.
Hugepagesize
Taille d’une hugepage (2048 Kio par défaut). C’est une page d’une grande taille utilisée par des programmes qui ont des besoins précis de mémoire.
Le nombre de hugepages est défini dans le fichier suivant : /proc/sys/vm/nr_shugepages (la valeur par défaut étant 0).
HugePages_Total
Nombre de hugepages allouées.
HugePages_Free
Nombre de hugepages disponibles.
Il est à noter que les informations hugepages ne sont présentes que sur les architectures x86, Itanium et AMD64.

t. /proc/misc

Ce fichier récapitule divers périphériques :
# cat /proc/misc  
 57 rfkill  
223 uinput  
237 loop-control  
 58 vboxuser  
 59 vboxguest  
236 device-mapper  
 60 network_throughput  
 61 network_latency  
 62 cpu_dma_latency  
  1 psaux  
228 hpet  
231 snapshot  
227 mcelog  
 63 vga_arbiter 

u. /proc/modules

Ce fichier affiche la liste des modules chargés par le noyau :
# cat /proc/modules  
vboxvideo 12437 1 - Live 0xffffffffa0369000 (O)  
drm 183952 2 vboxvideo, Live 0xffffffffa03fc000  
ppdev 12763 0 - Live 0xffffffffa0364000  
lp 17149 0 - Live 0xffffffffa035e000  
... 
pcspkr 12579 0 - Live 0xffffffffa0100000  
vboxguest 148611 2 - Live 0xffffffffa011b000 (O)  
thermal_sys 18040 1 processor, Live 0xffffffffa00fa000  
button 12937 0 - Live 0xffffffffa0116000  
ext4 350763 3 - Live 0xffffffffa00a3000  
crc16 12343 2 bluetooth,ext4, Live 0xffffffffa008b000  
mbcache 13114 1 ext4, Live 0xffffffffa0061000  
jbd2 62115 1 ext4, Live 0xffffffffa0092000  
dm_mod 63645 12 - Live 0xffffffffa0076000  
sd_mod 36136 2 - Live 0xffffffffa006c000  
crc_t10dif 12348 1 sd_mod, Live 0xffffffffa0067000  
ahci 24997 1 - Live 0xffffffffa0034000  
libahci 22860 1 ahci, Live 0xffffffffa0029000  
libata 140630 4 ata_generic,ata_piix,ahci,libahci, Live 0xffffffffa003d000  
scsi_mod 162269 4 sg,sr_mod,sd_mod,libata, Live 0xffffffffa0000000 

v. /proc/mounts

C’est un lien symbolique qui pointe vers self/mounts.
# ls -l /proc/mounts  
lrwxrwxrwx 1 root roo

Aucun commentaire :

Enregistrer un commentaire