¿Qué es la memoria virtual en Linux? como manejarlo

La memoria virtual es una de esas cosas que sustentan los sistemas operativos modernos, pero por lo general no piensas en ello a menos que tengas un problema. Las distribuciones de Linux le piden que configure su espacio de memoria virtual (particiones de intercambio) durante la instalación, pero la mayoría de los novatos no saben lo útil que es esto.

Aquí está todo lo que necesita saber sobre la memoria virtual en Linux.


¿Qué es la memoria virtual?

La memoria virtual es una forma de representar su memoria que se toma de la memoria física de su máquina. Utiliza tanto su RAM como su espacio de almacenamiento, ya sea en un disco duro tradicional o en un SSD.

En Linux, esto se hace a nivel de kernel y hardware. El procesador tiene una pieza de hardware llamada unidad de administración de memoria (MMU) que traduce las direcciones de memoria física en direcciones virtuales. Estas direcciones son independientes de su ubicación física en la máquina. Estos espacios de direcciones se denominan “páginas” y pueden estar en la RAM o en su disco duro o SSD. El sistema operativo considera estas direcciones como un gran grupo de memoria, llamado “espacio de direcciones”.

La memoria virtual aprovecha el hecho de que no toda la memoria utilizada en teoría se utiliza todo el tiempo. Los programas en la memoria se dividen en páginas y las partes que el kernel considera innecesarias se “intercambian” o se mueven al disco duro. Cuando sea necesario, se pueden “intercambiar” o devolver a la RAM.

El espacio utilizado para la memoria virtual en una unidad se denomina “almacén de respaldo” o “espacio de intercambio”. En el mundo de Windows, generalmente se implementa como un archivo, llamado “archivo de página”. También es posible hacer esto en Linux, pero es mucho más común usar una partición de disco dedicada.

Los archivos de intercambio de Linux generalmente se reservan para sistemas mínimos o integrados, y es común que estos se ejecuten completamente sin memoria virtual porque los sistemas operativos integrados deben ser pequeños.

El resultado de la memoria virtual es que es posible ejecutar programas grandes usando más memoria que la memoria RAM física de su máquina, de la misma manera que una tarjeta de crédito le permite hacer grandes compras por más dinero del que tiene en su cuenta bancaria. Al igual que una tarjeta de crédito, la memoria virtual es útil cuando la necesita, pero no quiere extender su uso.


La memoria virtual también permite a los desarrolladores crear aplicaciones sin tener que conocer el diseño de la memoria de una computadora.

Históricamente, el principal inconveniente de la memoria virtual ha sido que los discos duros eran más lentos que la RAM. Si una máquina no tiene suficiente RAM, el sistema puede continuar intercambiando páginas sin cesar, un proceso conocido como “thrashing”. Es un problema menor en las PC modernas con más RAM y SSD más rápidos que reemplazan los discos duros mecánicos, pero aún así es algo a tener en cuenta.

Particiones de intercambio de Linux

Como se mencionó anteriormente, el método habitual para configurar la memoria virtual en Linux es usar una partición de disco dedicada. La utilidad de instalación examinará su hardware y sugerirá un esquema de partición que incluya una partición de intercambio.

También puede agregar particiones de intercambio después de la instalación. Si desea agregar una nueva partición a una unidad existente, deberá usar una herramienta de partición no destructiva como GParted. Asegúrese de haber seleccionado “Linux swap” como sistema de archivos para su partición.

Realice una copia de seguridad de los datos importantes antes de volver a particionar su unidad.

Después de crear su partición, use el comando mkswap para formatear su partición.

sudo mkswap /dev/sdX

Ahora debe modificar su /etc/fstab como root para agregar su partición de intercambio. Esta línea, agregada al archivo, configurará una partición de intercambio para que se monte en el arranque:

/dev/sdX none swap defaults 0 0

Ahora usa el intercambio comando para activar su nuevo espacio de intercambio, donde sdX es el nombre de su partición de intercambio:

sudo swapon /dev/sdX

Uso de archivos de intercambio en Linux

Configurar un archivo de intercambio en Linux es fácil usando la línea de comando. Es posible que desee hacer esto si no quiere preocuparse por volver a particionar su disco o cambiar /etc/fstab. Un método es usar caer:

Por ejemplo, para crear un archivo de intercambio de 2 GB:

sudo fallocate -l 2G /path/to/swapfile

Como alternativa, puede usar el comando dd para crear el archivo de intercambio.

sudo dd if=/dev/zero of=/path/to/swapfile bs=1024 count=2048

Asegúrese de estar utilizando el comando dd correctamente, ya que un error en los archivos de entrada y salida puede provocar la pérdida de datos. fallocate es el método preferido por esta razón.

los /desarrollo/cero dispositivo es un dispositivo especial que muestra “0”. Este comando dd crea un archivo de bloque de dos gigabytes en blanco usando bloques de 1024 kilobytes que se pueden usar como espacio de intercambio.

A continuación, puede utilizar el mkswap y intercambio comandos con un archivo de intercambio como lo haría con una partición de intercambio:

sudo mkswap /path/to/swapfile
sudo swapon /path/to/swapfile

Es posible que se pregunte cuándo usar un archivo de intercambio o una partición dedicada para su espacio de intercambio. La elección es simple: en la mayoría de los casos, debe usar una partición. Es la mejor opción para una estación de trabajo Linux o un servidor. El esquema de partición sugerido por el instalador suele ser adecuado en un escritorio Linux de un solo usuario.

Es posible que desee utilizar un archivo de intercambio si está ejecutando Linux en una máquina virtual, en un sistema integrado pequeño o simplemente no desea volver a particionar su sistema Linux existente.

¿Cuánto espacio de intercambio?

Durante muchos años, el consejo estándar con respecto a la cantidad de espacio de intercambio necesario era el doble de RAM física. Con los grandes discos y la cantidad de memoria que tienen incluso las PC más baratas, esta regla puede desafiarse.

En muchos sistemas, si marca top o htop, incluso puede notar que su espacio de intercambio ni siquiera se usa en absoluto si configura su sistema de esa manera.

Sin embargo, el doble de memoria física es un buen punto de partida y una póliza de seguro si necesita más memoria. Puede realizar cambios en su sistema si es necesario. Si su sistema está usando toda su RAM, la computadora puede experimentar problemas de rendimiento al usar la memoria virtual.

La computadora puede continuar intercambiando, un proceso conocido como paliza, lo que hace que no responda. Si todavía tiene un disco duro mecánico, a menudo puede escucharlo accediendo constantemente.

Esto es un problema mucho menor en estos días porque la cantidad de RAM en las PC más baratas es más que suficiente y la velocidad de los SSD es mucho más rápida que los discos duros antiguos. Esto sigue siendo algo que debe tener en cuenta.

La forma más fácil de solucionar este problema es simplemente agregar más RAM a su máquina. Si eso no es posible, puede intentar ajustar el intercambio del kernel de Linux.

El número de swappiness determina cuánto extrae el núcleo de la memoria virtual. Va de 0 a 100. Establecerlo en 0 significa que Linux no se intercambiará en absoluto, mientras que en 100 se intercambiará en cada oportunidad. El valor predeterminado en la mayoría de los sistemas es 60.

Para cambiar temporalmente la capacidad de intercambio, use el comando sysctl:

sudo sysctl vm.swappiness=20

El “20” en este comando será el número de intercambio hasta que reinicie. Para cambiarlo permanentemente, modifique el /etc/sysctl.conf archivo como raíz y coloque la línea “vm.swappiness=[swappiness number]”, dónde “[swappiness number]” es el número de swappiness que desea. Esto será un recurso provisional hasta que pueda instalar más RAM.

La memoria virtual mantiene su sistema Linux funcionando sin problemas

La memoria virtual es un componente de los sistemas operativos modernos, incluido Linux, que mantiene su computadora funcionando sin problemas. Puede usar un archivo de intercambio, pero el método habitual es una partición dedicada. No tiene que pensar tanto en ello, pero las particiones de intercambio de Linux y los archivos de intercambio son fáciles de configurar y solucionar problemas.

Gran parte de este consejo también se aplica a otros sistemas, incluido Windows, aunque los métodos para configurar la memoria virtual son diferentes.

Leave a Reply

Your email address will not be published.