Di recente ci siamo imbattuti in un problema molto strano in cui la macchina virtuale Linux con Sistema operativo Centos 5.X a 32 bit non è stato in grado di riconoscere più di 3 GB di RAM. Dopo alcune ricerche potremmo trovare i seguenti fatti.
Per impostazione predefinita, il sistema operativo Centos 5.5 a 32 bit viene fornito con Linux 2.4.x Kernel che supporta più di 4 GB di memoria fisica. Un tipico kernel Linux a 32 bit utilizza 1 GB di memoria fisica per uso personale come Spazio kernel e il resto della memoria fisica verrà utilizzato come Spazio utente . Quindi, mentre sei su una macchina con sistema operativo Centos 5.X a 32 bit senza supporto PAE, lo spazio utente e la divisione dello spazio del kernel sarebbero come 3 GB/1 GB. Ciò significa che, se aggiungi memoria fisica superiore a 3 GB nella tua macchina, la tua macchina non lo risolse. Questo problema può essere risolto aggiungendo il supporto PAE nel kernel.
Che cos'è l'estensione dell'indirizzo fisico (PAE)?
Estensione indirizzo fisico (PAE) noto anche come Estensione indirizzo di pagina , è una funzionalità di gestione della memoria per l'architettura IE-32 (i386) introdotta con i processori Pentium Pro. Page Address Extension definisce una gerarchia di tabelle di pagine a tre livelli con voci di tabella a 64 bit anziché 32. Ciò consente alle CPU con PAE di accedere a uno spazio di indirizzi fisico maggiore di 4 GB. L'estensione PAE consente un massimo di 64 GB di memoria fisica che la CPU (non un processo) può indirizzare. Sebbene PAE non sia compilato nel kernel, il sistema operativo può indirizzare un massimo di 4 GB di RAM. Se ti trovi in una situazione simile e desideri ottenere il kernel con supporto PAE. Esegui il seguente comando dal terminale.
yum install kernel-PAE
Una volta installato il kernel, modifica grub.conf file (di solito situato in /etc/grub.conf o /boot/grub/grub.conf ) con un editor a tua scelta. Individua il parametro timeout e impostalo su 10 o più secondi, in modo da avere più tempo per selezionare il kernel dall'elenco. Salva grub.conf file e riavvia il tuo VPS.
Quando la tua VM si avvia dopo il riavvio, otterrai un elenco di kernel attualmente installati nella tua macchina. Seleziona il kernel che desideri caricare (kernel con supporto PAE). Se la tua VM si avvia correttamente con il kernel supportato da PAE, imposta il nuovo kernel come predefinito come segue.
Modifica di nuovo grub.conf file (sarebbe come il seguente), sotto titolo parametro vedresti l'elenco di tutti i kernel installati. Conta la posizione del kernel di tua scelta e imposta il suo valore nel parametro predefinito . Salva il grub.conf file e riavvia la tua 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
Quando la tua VM si accende dopo il riavvio, attiva free -m comando per verificare se indirizza o meno la memoria fisica a più di 3 GB.