GNU/Linux >> Znalost Linux >  >> Linux

Virtuální počítač s 32bitovým OS CentOS 5 neřeší fyzickou paměť větší než 3 GB

Nedávno jsme narazili na velmi podivný problém, kdy virtuální stroj Linux s Centos 5.X 32bitovým operačním systémem nedokázal rozpoznat více než 3 GB RAM. Po nějakém výzkumu jsme mohli zjistit následující fakta.


Ve výchozím nastavení je Centos 5.5 32bitový operační systém dodáván s Linuxem 2.4.x Jádro, které podporuje více než 4 GB fyzické paměti. Typické 32bitové jádro Linuxu využívá 1 GB fyzické paměti pro své vlastní použití jako Kernel Space a zbytek fyzické paměti bude použit jako Uživatelský prostor . Pokud tedy používáte počítač Centos 5.X s 32bitovým operačním systémem bez podpory PAE, bude uživatelský prostor a prostor jádra rozdělen na 3 GB/1 GB. To znamená, že pokud do počítače přidáte fyzickou paměť větší než 3 GB, váš počítač to nebude řešit. Tento problém lze vyřešit přidáním podpory PAE do jádra.

Co je Physical Address Extension (PAE)?

Physical Address Extension (PAE) známé také jako Rozšíření adresy stránky , je funkce správy paměti pro architekturu IE-32 (i386) představená s procesory Pentium Pro. Rozšíření adresy stránek definuje tříúrovňovou hierarchii tabulky stránek s 64bitovými položkami tabulky namísto 32. To umožňuje CPU s PAE přistupovat k fyzickému adresnímu prostoru většímu než 4 GB. Rozšíření PAE umožňuje maximálně 64 GB fyzické paměti, kterou může CPU (není proces) adresovat. Zatímco PAE není zkompilován do jádra, OS může adresovat maximálně 4 GB RAM. Pokud jste v podobné situaci a přejete si získat jádro s podporou PAE. Spusťte následující příkaz z terminálu.

yum install kernel-PAE


Jakmile je jádro nainstalováno, upravte grub.conf soubor (obvykle se nachází na /etc/grub.conf nebo /boot/grub/grub.conf ) s editorem dle vašeho výběru. Najděte parametr timeout a nastavte jej na 10 nebo více sekund, abyste získali více času na výběr jádra ze seznamu. Uložit grub.conf soubor a restartujte VPS.

Když se váš VM po restartu objeví, získáte seznam jader aktuálně nainstalovaných ve vašem počítači. Vyberte jádro, které chcete načíst (jádro s podporou PAE). Pokud se váš virtuální počítač úspěšně zavede s jádrem podporovaným PAE, nastavte nové jádro na výchozí následovně.

Znovu upravte grub.conf soubor (vypadalo by to následovně), pod title parametr uvidíte seznam všech nainstalovaných jader. Spočítejte pozici jádra dle vašeho výběru a nastavte jeho hodnotu v parametru výchozí . Uložte soubor grub.conf soubor a restartujte svůj VM

default=3  // default holds the value of position of Kernel
timeout=10  
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Enterprise Linux ES (2.4.21-37.EL) // Kernel in 1st position 
root (hd0,0)
kernel /vmlinuz-2.4.21-37.EL ro root=/dev/hda3
initrd /initrd-2.4.21-37.EL.img
title Red Hat Enterprise Linux ES (2.4.21-32.0.1.EL) // Kernel in 2nd position 
root (hd0,0)
kernel /vmlinuz-2.4.21-32.0.1.EL ro root=/dev/hda3
initrd /initrd-2.4.21-32.0.1.EL.img
title Red Hat Enterprise Linux ES (2.4.21-27.0.4.EL) // Kernel in 3rd position 
root (hd0,0)
kernel /vmlinuz-2.4.21-27.0.4.EL ro root=/dev/hda3
initrd /initrd-2.4.21-27.0.4.EL.img
title Red Hat Enterprise Linux ES (2.4.21-27.0.2.EL) // Kernel in 4th position 
root (hd0,0)
kernel /vmlinuz-2.4.21-27.0.2.EL ro root=/dev/hda3
initrd /initrd-2.4.21-27.0.2.EL.img


Jakmile se váš virtuální počítač po restartu spustí, spustí se free -m příkaz ke kontrole, zda adresuje fyzickou paměť větší než 3 GB nebo ne.


Linux
  1. Linuxové příkazy:prozkoumávání virtuální paměti pomocí vmstat

  2. Příkaz Rm ve skriptu Bash nefunguje s proměnnou?

  3. Linux – Co znamená rozložení paměti virtuálního jádra v Dmesg?

  1. CentOS / RHEL:Vyloučení s Yum pro aktualizace jádra

  2. CentOS/RHEL:Příkaz Mount selže s „mount:neobsahuje štítky SELinux“

  3. qemu se nespustí:server vnc spuštěn

  1. malloc vrací paměť nebo virtuální adresový prostor

  2. Adresový prostor 32bitového procesu v 64bitovém linuxu

  3. Udržuje realloc zarovnání paměti posix_memalign?