Hay dos tipos básicos de memoria en una computadora típica. El primer tipo, la memoria de acceso aleatorio (RAM), se usa para almacenar datos y programas mientras la computadora los usa activamente. La computadora no puede usar los programas y los datos a menos que estén almacenados en la memoria RAM. RAM es memoria volátil; es decir, los datos almacenados en la memoria RAM se pierden si se apaga la computadora.
Los discos duros son medios magnéticos que se utilizan para el almacenamiento a largo plazo de datos y programas. Los medios magnéticos no son volátiles; los datos almacenados en un disco permanecen incluso cuando se desconecta la alimentación de la computadora. La CPU (unidad central de procesamiento) no puede acceder directamente a los programas y datos del disco duro; primero debe copiarse en la RAM, y ahí es donde la CPU puede acceder a sus instrucciones de programación y a los datos con los que operarán esas instrucciones. Durante el proceso de arranque, una computadora copia programas específicos del sistema operativo, como kernel e init o systemd, y datos del disco duro a la RAM, donde el procesador de la computadora, la CPU, accede directamente a ellos.
El segundo tipo de memoria en los sistemas Linux modernos es el espacio de intercambio.
Intercambiar espacio
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
La función principal del espacio de intercambio es sustituir el espacio en disco por la memoria RAM cuando la RAM real se llena y se necesita más espacio.
Por ejemplo, suponga que tiene un sistema informático con 8 GB de RAM. Si inicia programas que no llenan esa RAM, todo está bien y no se requiere intercambio. Pero suponga que la hoja de cálculo en la que está trabajando crece cuando agrega más filas, y eso, además de todo lo demás que se está ejecutando, ahora llena toda la RAM. Sin espacio de intercambio disponible, tendría que dejar de trabajar en la hoja de cálculo hasta que pudiera liberar parte de su RAM limitada cerrando algunos otros programas.
El núcleo utiliza un programa de gestión de memoria que detecta bloques, también conocidos como páginas, de memoria en los que el contenido no se ha utilizado recientemente. El programa de administración de memoria intercambia suficientes de estas páginas de memoria que se usan con relativa poca frecuencia en una partición especial en el disco duro específicamente designada para "paginación" o intercambio. Esto libera RAM y deja espacio para que se ingresen más datos en su hoja de cálculo. El código de administración de memoria del kernel rastrea esas páginas de memoria intercambiadas al disco duro y se pueden volver a paginar en la RAM si es necesario.
La cantidad total de memoria en una computadora con Linux es la RAM más el espacio de intercambio y se denomina memoria virtual .
Tipos de intercambio de Linux
Linux proporciona dos tipos de espacio de intercambio. De forma predeterminada, la mayoría de las instalaciones de Linux crean una partición de intercambio, pero también es posible utilizar un archivo especialmente configurado como archivo de intercambio. Una partición de intercambio es justo lo que su nombre implica:una partición de disco estándar designada como espacio de intercambio por mkswap
comando.
Se puede usar un archivo de intercambio si no hay espacio libre en el disco para crear una nueva partición o espacio de intercambio en un grupo de volúmenes donde se puede crear un volumen lógico para el espacio de intercambio. Este es solo un archivo normal que se crea y se asigna previamente a un tamaño específico. Entonces el mkswap
se ejecuta el comando para configurarlo como espacio de intercambio. No recomiendo usar un archivo para el espacio de intercambio a menos que sea absolutamente necesario.
Golpeando
La hiperpaginación puede ocurrir cuando la memoria virtual total, tanto la RAM como el espacio de intercambio, están casi llenos. El sistema dedica tanto tiempo a la paginación de bloques de memoria entre el espacio de intercambio y la RAM y viceversa que queda poco tiempo para el trabajo real. Los síntomas típicos de esto son obvios:el sistema se vuelve lento o deja de responder por completo, y la luz de actividad del disco duro está encendida casi constantemente.
Si logras emitir un comando como free
que muestra la carga de la CPU y el uso de la memoria, verá que la carga de la CPU es muy alta, tal vez entre 30 y 40 veces la cantidad de núcleos de CPU en el sistema. Otro síntoma es que tanto la RAM como el espacio de intercambio están asignados casi por completo.
Después del hecho, mirar los datos SAR (informe de actividad del sistema) también puede mostrar estos síntomas. Instalo SAR en todos los sistemas en los que trabajo y lo uso para el análisis forense posterior a la reparación.
¿Cuál es la cantidad correcta de espacio de intercambio?
Hace muchos años, la regla general para la cantidad de espacio de intercambio que se debe asignar en el disco duro era el doble de la cantidad de RAM instalada en la computadora (por supuesto, eso era cuando la RAM de la mayoría de las computadoras se medía en KB o MB) . Entonces, si una computadora tuviera 64 KB de RAM, una partición de intercambio de 128 KB sería un tamaño óptimo. Esta regla tuvo en cuenta el hecho de que los tamaños de RAM eran bastante pequeños en ese momento y que asignar más de 2X RAM para espacio de intercambio no mejoraba el rendimiento. Con más del doble de RAM para el intercambio, la mayoría de los sistemas dedicaron más tiempo a la paliza que a realizar un trabajo útil.
La RAM se ha convertido en un producto económico y la mayoría de las computadoras en estos días tienen cantidades de RAM que se extienden a decenas de gigabytes. La mayoría de mis computadoras más nuevas tienen al menos 8 GB de RAM, una tiene 32 GB y mi estación de trabajo principal tiene 64 GB. Mis computadoras más antiguas tienen de 4 a 8 GB de RAM.
Cuando se trata de computadoras que tienen grandes cantidades de RAM, el factor de rendimiento limitante para el espacio de intercambio es mucho más bajo que el multiplicador 2X. La Guía de instalación en línea de Fedora 28, que se puede encontrar en línea en la Guía de instalación de Fedora, define el pensamiento actual sobre la asignación de espacio de intercambio. He incluido a continuación algunas discusiones y la tabla de recomendaciones de ese documento.
La siguiente tabla proporciona el tamaño recomendado de una partición de intercambio según la cantidad de RAM en su sistema y si desea suficiente memoria para que su sistema hiberne. El tamaño de partición de intercambio recomendado se establece automáticamente durante la instalación. Sin embargo, para permitir la hibernación, deberá editar el espacio de intercambio en la etapa de partición personalizada.
Tabla 1:Espacio de intercambio del sistema recomendado en la documentación de Fedora
Cantidad de RAM del sistema | Espacio de intercambio recomendado | Cambio recomendado con hibernación |
---|---|---|
menos de 2 GB | 2 veces la cantidad de RAM | 3 veces la cantidad de RAM |
2 GB - 8 GB | Igual a la cantidad de RAM | 2 veces la cantidad de RAM |
8 GB - 64 GB | 0,5 veces la cantidad de RAM | 1,5 veces la cantidad de RAM |
más de 64 GB | depende de la carga de trabajo | no se recomienda la hibernación |
Cantidad de RAM | Espacio de intercambio recomendado |
---|---|
≤ 2GB | RAM 2X |
2GB - 8GB | =RAM |
>8GB | 8GB |