J'ai un serveur CentOS 5.10 ( 32 bits ) fonctionnant sur VMWare. Il est alloué 4 Go de RAM.
Si je cours, dmidecode -t 17 | grep Size | grep MB
je vois:
Size: 4096 MB
Pourtant, quand je cours free
, je vois:
total used free shared buffers cached
Mem: 3107140 1239244 1867896 0 332 400464
-/+ buffers/cache: 838448 2268692
Swap: 2096472 0 2096472
Pourquoi existe-t-il une différence entre la quantité totale de free
rapports de mémoire et la dmidecode
sortie?
Le noyau que j'utilise est:
2.6.18-371.4.1.el5 #1 SMP Thu Jan 30 06:09:24 EST 2014 i686 i686 i386 GNU/Linux
Certes, le noyau ne fonctionne pas PAE
mais je pensais que cela n'était nécessaire que pour une mémoire dépassant 4 Go.
Je sais qu'il me manque quelque chose de simple - quelqu'un peut-il élaborer?
Notes / observations supplémentaires
Il semble que mon noyau réserve un tas de mémoire pour d'autres choses. Voici ce que je vois dans /var/log/dmesg
:
Linux version 2.6.18-371.4.1.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Thu Jan 30 06:09:24 EST 2014
BIOS-provided physical RAM map:
BIOS-e820: 0000000000010000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved)
BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bfef0000 (usable)
BIOS-e820: 00000000bfef0000 - 00000000bfeff000 (ACPI data)
BIOS-e820: 00000000bfeff000 - 00000000bff00000 (ACPI NVS)
BIOS-e820: 00000000bff00000 - 00000000c0000000 (usable)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
Warning only 4GB will be used.
Use a PAE enabled kernel.
3200MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000f6bf0
Memory for crash kernel (0x0 to 0x0) notwithin permissible range
/proc/meminfo
?/proc/iomem
vous montrera la mémoire utilisée par les périphériques pour lesquels Linux a un pilote. La carte mémoire e820 (au tout début d'undmesg
noyau fraîchement démarré) vous montrera ce que votre BIOS / EFI pense des régions réservées. Les comparer les uns aux autres est AFAIK une tâche manuelle sans support d'outils.La sortie de la
free
commande ne compte pas la mémoire du noyau réservée et quelques autres petits bits. Vous verrez cette différence même dans un noyau 64 bits et même avec <2 Go de RAM.la source
free
, une machine de 4 Go affiche 3948 Mo.La ligne critique de votre carte RAM physique est la suivante:
Cette ligne montre que 1 Go (0x40000000 octets, hexadécimal) de la RAM physique de votre système est mappé par le BIOS au-dessus de la limite de 4 Go, ce qui le rend inaccessible par un système 32 bits sans PAE.
la source