GNU/Linux >> Tutoriales Linux >  >> Linux

La máquina virtual con sistema operativo CentOS 5 de 32 bits no aborda la memoria física de más de 3 GB

Recientemente nos encontramos con un problema muy extraño en el que la máquina virtual Linux con Sistema operativo Centos 5.X de 32 bits No podía reconocer más de 3 GB de RAM. Después de algunas investigaciones pudimos encontrar los siguientes hechos.


Por defecto, el sistema operativo Centos 5.5 de 32 bits viene con Linux 2.4.x Kernel que admite más de 4 GB de memoria física. Un kernel típico de Linux de 32 bits usa 1 GB de memoria física para su propio uso como Kernel Space y el resto de la memoria física se usará como Espacio de usuario . Por lo tanto, mientras esté en una máquina con sistema operativo Centos 5.X de 32 bits sin compatibilidad con PAE, la división del espacio del usuario y del kernel sería como 3 GB/1 GB. Eso significa que si agrega más de 3 GB de memoria física en su máquina, su máquina no lo abordará. Este problema se puede solucionar agregando compatibilidad con PAE en Kernel.

¿Qué es la extensión de dirección física (PAE)?

Extensión de dirección física (PAE) también conocida como Extensión de dirección de página , es una función de administración de memoria para la arquitectura IE-32 (i386) presentada con los procesadores Pentium Pro. Page Address Extension define una jerarquía de tablas de páginas de tres niveles con entradas de tablas de 64 bits en lugar de 32. Esto permite que las CPU con PAE accedan a un espacio de direcciones físicas de más de 4 GB. La extensión PAE permite un máximo de 64 GB de memoria física que puede abordar la CPU (no es un proceso). Si bien PAE no está compilado en el núcleo, el sistema operativo puede abordar un máximo de 4 GB de RAM. Si se encuentra en una situación similar y desea obtener Kernel con soporte PAE. Ejecute el siguiente comando desde la terminal.

yum install kernel-PAE


Una vez instalado Kernel, edite grub.conf archivo (normalmente ubicado en /etc/grub.conf o /boot/grub/grub.conf ) con un editor de su elección. Localice el parámetro timeout y configúrelo en 10 o más segundos, para que pueda tener más tiempo para seleccionar el Kernel de la lista. Guardar grub.conf archivo y reinicie su VPS.

Cuando su VM aparece después de reiniciar, obtendrá una lista de kernels actualmente instalados en su máquina. Seleccione el Kernel que desea cargar (Kernel con soporte PAE). Si su máquina virtual arranca correctamente con el Kernel compatible con PAE, configure el nuevo Kernel como predeterminado de la siguiente manera.

Nuevamente edite grub.conf archivo (tendría el siguiente aspecto), bajo título parámetro, vería una lista de todos los núcleos instalados. Cuente la posición del Kernel de su elección y establezca su valor en parámetro predeterminado . Guarde el grub.conf archivo y reinicie su 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


Una vez que su máquina virtual aparece después de reiniciar, active free -m comando para comprobar si se ocupa de la memoria física de más de 3 GB o no.


Linux
  1. Comandos de Linux:exploración de la memoria virtual con vmstat

  2. ¿El comando Rm en Bash Script no funciona con variables?

  3. CentOS/RHEL:Exclusión con Yum para actualizaciones del kernel

  4. CentOS/RHEL:el comando Mount falla con "mount:no contiene etiquetas SELinux"

  5. malloc devuelve memoria o espacio de direcciones virtuales

Comprensión de la compatibilidad con direcciones virtuales de 52 bits en el kernel Arm64

Cómo acceder a la máquina virtual Proxmox con el cliente SPICE

Cómo encontrar la dirección IP de una máquina virtual KVM

Espacio de direcciones del proceso de 32 bits en Linux de 64 bits

¿Por qué Centos todavía no usa el kernel más reciente?

Linux Centos con marca de tiempo dmesg