Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:proc [2009/01/14 17:29] benoit |
informatique:linux:proc [2018/09/06 19:10] (Version actuelle) |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
Pour connaitre les CPUs installés sur le système | Pour connaitre les CPUs installés sur le système | ||
cat /proc/cpuinfo | cat /proc/cpuinfo | ||
+ | |||
Ligne 12: | Ligne 13: | ||
+ | |||
+ | MemTotal: 1036256 kB | ||
+ | MemFree: 191256 kB | ||
+ | Buffers: 51824 kB | ||
+ | Cached: 468392 kB | ||
+ | SwapCached: 0 kB | ||
+ | Active: 398852 kB | ||
+ | Inactive: 404108 kB | ||
+ | HighTotal: 131008 kB | ||
+ | HighFree: 256 kB | ||
+ | LowTotal: 905248 kB | ||
+ | LowFree: 191000 kB | ||
+ | SwapTotal: 524280 kB | ||
+ | SwapFree: 524280 kB | ||
+ | Dirty: 44 kB | ||
+ | Writeback: 0 kB | ||
+ | AnonPages: 282736 kB | ||
+ | Mapped: 82108 kB | ||
+ | Slab: 22552 kB | ||
+ | SReclaimable: 14468 kB | ||
+ | SUnreclaim: 8084 kB | ||
+ | PageTables: 2232 kB | ||
+ | NFS_Unstable: 0 kB | ||
+ | Bounce: 0 kB | ||
+ | CommitLimit: 1042408 kB | ||
+ | Committed_AS: 880596 kB | ||
+ | VmallocTotal: 114680 kB | ||
+ | VmallocUsed: 7540 kB | ||
+ | VmallocChunk: 105972 kB | ||
+ | HugePages_Total: 0 | ||
+ | HugePages_Free: 0 | ||
+ | HugePages_Rsvd: 0 | ||
+ | HugePages_Surp: 0 | ||
+ | Hugepagesize: 4096 kB | ||
+ | |||
+ | Commençons par les premières lignes : | ||
+ | |||
+ | * MemTotal : la quantité de mémoire vive utilisable (ma barrette fait 1 Go (1 073 742 Ko), mais il y a quelques Mo réquisitionnés par le noyau (visiblement 12 615 Ko)). | ||
+ | * MemFree :la quantité de mémoire vive actuellement non allouée. | ||
+ | * Buffers : la quantité de mémoire vive actuellement allouée dans des buffers. | ||
+ | * Cached : la quantité de mémoire actuellement utilisée en tant que cache (par exemple, des caches pour les transferts vers et depuis le disque dur). | ||
+ | * SwapCached : la quantité de mémoire actuellement sortie du swap, mais dont une copie est toujours présente dedans. | ||
+ | * Active : la quantité de mémoire vive récemment utilisée. | ||
+ | * Inactive : la quantité de mémoire qui n'a pas été utilisée depuis un certain temps (le noyau pioche d'abord dans ces pages s'il a besoin de mémoire). | ||
+ | |||
+ | Sur une architecture x86 32 bits, la mémoire physique est séparée en trois zones. D'une part, la zone ZONE_DMA, qui correspond aux adresses physiques de 0 à 16 Mo. D'autre part, la zone ZONE_NORMAL qui va de 16 à 896 Mo. Et enfin, la zone ZONE_HIGHMEM qui va de 896 à 4 Go (voire 64 Go avec l'extension PAE). Sur ma machine, la mémoire vive remplie donc les 2 premières zones, plus une partie de la ZONE_HIGHMEM. | ||
+ | |||
+ | * HighTotal : la quantité de mémoire vive présente dans la zone ZONE_HIGHMEM. | ||
+ | * HighFree : la quantité de mémoire vive non utilisée et présente dans la zone ZONE_HIGHMEM. | ||
+ | * LowTotal : la quantité de mémoire vive présente dans le zone ZONE_NORMAL. | ||
+ | * LowFree : la quantité de mémoire vive non utilisée et présente dans la zone ZONE_NORMAL. | ||
+ | |||
+ | Vérifions : | ||
+ | |||
+ | HighTotal + LowTotal = 131008 + 905248 = 1036256 = MemTotal | ||
+ | HighFree + LowFree = 252 + 57468 = 57720 = MemFree | ||
+ | |||
+ | Chouette, ça colle ! | ||
+ | |||
+ | * SwapTotal : la taille du swap. | ||
+ | * SwapFree : la place disponible dans le swap. | ||
+ | |||
+ | Dans mon cas, le swap n'est pas du tout utilisé (en effet, OpenOffice n'est pas encore lancé... :). C'est également vérifiable avec l'utilitaire swapon : | ||
+ | |||
+ | $ sudo swapon -s | ||
+ | Filename Type Size Used Priority | ||
+ | /dev/mapper/lvm-swap partition 524280 0 -1 | ||
+ | |||
+ | * Dirty : la quantité de mémoire en attente d'être écrite sur le disque. | ||
+ | * Writeback : la quantité de mémoire qui est actuellement en train d'être écrite sur le disque. | ||
+ | * AnonPages : la quantité de mémoire allouée avec la fonction mmap() avec le flag MAP_ANONYMOUS. | ||
+ | * Mapped : la quantité de mémoire allouée avec la fonction mmap() à partir de fichiers ou de devices. | ||
+ | * Slab : la quantité de mémoire utilisée au sein du noyau, et allouée avec l'allocateur Slab, pour ses propres objets et structures. | ||
+ | * PageTables : la quantité de mémoire utilisée en tant que table de pages pour gérer la pagination. | ||
+ | * Committed_AS : une estimation de la quantité maximale de mémoire utilisable avant que le noyau ne commence à swapper. | ||
+ | |||
+ | Linux sépare la mémoire virtuelle en deux partie. Une première, de 3 Go, et qui contient l'espace d'adressage virtuel d'un processus. La seconde, qui elle fait 1 Go, et qui contient l'espace d'adressage noyau. C'est dans cet espace que seront mappés les zones ZONE_DMA et ZONE_NORMAL. Or, celles-ci ont une taille maximale cumulée de 896 Mo. Il est donc nécessaire d'avoir un autre espace, l'espace d'adressage virtuel du noyau, qui permet d'atteindre les 1 Go évoqués juste avant. La valeur VmallocTotal donne la taille de cet espace. | ||
+ | |||
+ | * VmallocTotal : la quantité totale de mémoire de l'espace d'adressage virtuel du noyau. | ||
+ | * VmallocUsed : la quantité de mémoire utilisée dans l'espace d'adressage virtuel du noyau. | ||
+ | * VmallocChunk : le plus grand bloc contigu de mémoire virtuelle (et non physique) disponible dans l'espace d'adressage virtuel du noyau. | ||
+ | * HugePages_Total : le nombre de hugepage allouée. Une hugepage est une page d'une grande taille (sisi :), utilisée par des programmes qui ont des besoins précis de mémoire. | ||
+ | * HugePages_Free : le nombre de hugepage disponibles. | ||
+ | * Hugepagesize : la taille d'une hugepage. | ||
==== Disques ==== | ==== Disques ==== |