7 votes

Linux détecte seulement 2 Go de RAM avec 4 Go installés - Debian Lenny i386

J'ai une machine avec 4 Go de RAM, mais Linux ne détecte que deux dans top et free. Le BIOS indique 4.

Tournant sous Debian Lenny i386.

11voto

Joseph Kern Points 9759

Vous devez activer le noyau bigmem.

dpkg --get-selections | grep bigmem
apt-get install linux-image-2.6-xxx-bigmem

Vous pouvez également vérifier si cela a fonctionné avec :

sudo grep -i memory /var/log/dmesg
[ 0.004000] Memory: 899224k/917504k available (1693k kernel code, 17724k reserved, 746k data, 320k init, 0k highmem)

highmem devrait être supérieur à 0k

1voto

Vicent Marti Points 2942

Vous pourriez installer une version 64 bits de Debian. Cela suppose que vous avez un processeur 64 bits, ce qui n'est pas clair dans la question. L'utilisation des extensions PAE sur un noyau 32 bits entraîne une perte de performance, et sans celles-ci, vous ne pourrez pas voir les 4 Go complets de mémoire.

1voto

David Spillett Points 22424

(J'aurais ajouté ceci en commentaire à la réponse de Mark, mais c'était devenu trop long pour tenir)

Comme le souligne Mark, vous ne verrez pas la totalité des 4 Go avec un noyau 32 bits. En fonction de votre chipset et d'autres facteurs, vous verrez entre 3,25 Go et 3,75 Go sans subir la baisse de performance de la PAE.

Mais vous n'avez pas besoin d'avoir un système complet en 64 bits - juste un noyau 64 bits. J'ai un serveur avec 6 Go de RAM de cette manière : le noyau voit l'ensemble des 6 Go (pas 3,5 Go qu'un noyau 32 bits pourrait utiliser sur la machine) mais a le reste en 32 bits (je n'ai pas encore trouvé le temps de faire une réinstallation complète en 64 bits).

aptitude install linux-image-2.6-amd64

est tout ce que vous avez à faire (au moins sur Etch, sur lequel cette machine est toujours, je doute que le nom du package ait changé en Lenny).

Alors qu'aucun processus individuel ne verra plus que 3 Go de RAM (en raison de la manière dont l'espace mémoire virtuelle est cartographié pour chaque processus) l'ensemble de vos processus peuvent utiliser l'ensemble. Dans mon cas, la machine exécute plusieurs machines virtuelles qui consomment ensemble ~5 Go (le système d'exploitation hôte utilisant le reste pour quelques autres petites choses et le cache/buffer d'E/S). Donc si le noyau bigmem ne peut utiliser que 3,25 Go de vos 4, cela mérite peut-être d'être essayé pour rendre les 0,75 supplémentaires disponibles.

Un autre avertissement : si le chipset de la machine est limité à 4 Go, vous pourriez quand même trouver une partie de votre RAM "manquante" même avec un noyau 64 bits (ou une installation complète du système d'exploitation en 64 bits). Mais je pense que vous seriez malchanceux de trouver un chipset qui prend en charge les processeurs 64 bits sans prendre en charge >4 Go de RAM.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X