Tabla de contenidos
Agregue espacio de intercambio a una computadora Linux, o aumente el espacio de intercambio que ya está presente, sin alterar las particiones. Te mostramos la forma más sencilla de personalizar tu espacio de intercambio.
Intercambiar archivos frente a intercambiar particiones
Hay varios escenarios en los que es posible que desee aumentar el espacio de intercambio existente o agregar nuevo a su computadora con Linux.
- Quizás su espacio de intercambio se ejecuta con frecuencia al máximo o cerca del máximo.
- Es fácil hacer clic en la opción incorrecta durante el proceso de instalación y rechazar la adición de swap a su sistema sin darse cuenta.
- Tal vez decidió anteriormente que tenía tanta memoria de acceso aleatorio (RAM) que no necesitaba ningún intercambio, y cambió de opinión.
- A veces heredas la administración de un sistema que no tiene swap, por razones que nunca podrás descubrir.
La solución simple a todo esto es agregar un archivo de intercambio a su computadora . Este es un archivo especial, preasignado y reservado para su uso como espacio de intercambio. Un archivo de intercambio funcionará en conjunto con cualquier intercambio existente que pueda tener, ya sea un archivo de intercambio o una partición de intercambio.
En un momento, hubo un impacto en el rendimiento por usar un archivo de intercambio en comparación con una partición de intercambio. Ese ya no es el caso con las mejoras en el rendimiento de los discos duros mecánicos (giratorios) y una mayor eficiencia en las funciones de intercambio dentro del sistema operativo Linux. De hecho, algunas distribuciones de Linux ahora crean archivos de intercambio en lugar de particiones de intercambio.
Swap no solo se usa como un medio para liberar RAM cuando se está quedando sin memoria. Es una parte importante de un sistema que funciona bien. Sin ningún intercambio, la gestión sana de la memoria se vuelve muy difícil de lograr para el kernel. Veamos la forma fácil de agregar espacio de intercambio.
Antes de sumergirnos en: Btrfs y SSD
Hay dos puntos que nos gustaría discutir rápidamente.
El sistema de archivos Btrfs tiene ciertas advertencias sobre los archivos de intercambio. En un momento, hubo un conflicto entre la naturaleza de copia en escritura de Btrfs, que quería operar de una manera e intercambiar archivos que necesitaban operar de otra. Algunas funciones de las que dependen los archivos de intercambio no se implementaron, y algunas suposiciones que se hicieron sobre la numeración de bloques dentro de los archivos de intercambio no se cumplieron con Btrfs. Por lo tanto, los archivos de intercambio no fueron compatibles.
Desde el kernel 5.0, puede tener archivos de intercambio en los sistemas de archivos Btrfs si están configurados con los siguientes requisitos:
- Sin archivos de copia en escritura (NOCOW).
- No están comprimidos.
- No se montan entre distintos discos duros.
La mayoría de los lectores utilizarán el sistema de archivos ext4 predeterminado , por lo que esto no les preocupará.
Cuando las unidades de estado sólido (SSD) estuvieron disponibles por primera vez, existía la preocupación de usarlas en situaciones que tenían escrituras frecuentes en el sistema de archivos. Se advirtió a las personas que no pusieran espacio de intercambio en las SSD e incluso que evitaran el registro del sistema en las SSD.
Esto es mucho menos preocupante hoy en día, y muchos SSD que están a la venta tienen una esperanza de vida que durará más que la mayoría de las PC . Un archivo de intercambio en un SSD tendrá un rendimiento mucho mejor que una partición de intercambio en un disco duro mecánico.
Comprobación del espacio de intercambio existente
Mira antes de saltar. Veamos qué espacio de intercambio está disponible en su computadora. Puede hacer esto de dos formas y usaremos ambas. El free
comando mostrará la memoria usada y libre . La -h
opción (legible por humanos) hará free
que se utilicen unidades sensibles cuando muestre los valores de la memoria.
libre -h
El resultado de free
muestra que no hay espacio de intercambio configurado en esta máquina.
El intercambio nunca se discute sin que surja RAM y RAM libre. Por lo tanto, vale la pena señalar que la RAM libre es de 237 MB. No confunda eso con el total de RAM disponible para su uso. Ese valor lo proporciona la cifra «disponible», que es 881 MB.
Linux utiliza RAM libre para sus propios fines, como el almacenamiento en caché de archivos y los búferes del kernel. La cantidad de RAM dedicada a eso es la cifra de «búfer / caché», que es 871 MB. Pero ese recuerdo todavía se considera y se cuenta como «disponible». El contenido de la RAM “buf / cache” se puede descartar inmediatamente y utilizarlo cualquier aplicación que necesite algo de memoria.
Otra forma de comprobar si hay espacio de intercambio disponible es utilizar el swapon
comando. La --show
opción no realiza ningún cambio en el intercambio en su computadora . Solo proporciona estadísticas.
swapon - show
Si no hay salida de este comando, no hay ningún intercambio configurado.
Si estos comandos han revelado que ya se ha configurado algún espacio de intercambio, el tamaño del espacio de intercambio existente debe tenerse en cuenta en las decisiones relacionadas con el tamaño del archivo de intercambio que va a crear.
¿Cuánto espacio de intercambio necesito?
La respuesta tradicional era «el doble de RAM que tienes». Pero esto se acuñó cuando las computadoras solían tener una RAM muy limitada. A medida que la RAM se ha vuelto más barata y los programas y juegos requieren más memoria, las especificaciones de la PC se han ajustado en consecuencia. Las PC domésticas con 32 GB de RAM no son infrecuentes hoy en día. Y no va a asignar 64 GB de espacio en el disco duro para intercambiar espacio si tiene 32 GB de RAM. Eso es claramente excesivo.
La cantidad de intercambio que necesita es un tema incendiario, comparable a «cuál es el mejor editor». Una de las discusiones más sensatas que hemos visto sobre este tema se encuentra en las preguntas frecuentes sobre el intercambio de Ubuntu . Es un enfoque corto y de sentido común (aunque, como muchas personas, no entienden cómo funciona el intercambio en Linux ). Hay una tabla útil que muestra una cantidad recomendada de espacio de intercambio para la cantidad de RAM que tiene su sistema y si hiberna su computadora o no.
Y la buena noticia es que realmente no importa qué valor elija. Siempre podemos eliminar un archivo de intercambio y reemplazarlo por uno más grande o, para el caso, uno más pequeño. O simplemente puede agregar otro archivo de intercambio.
Elija un tamaño de archivo de intercambio de la tabla y ejecútelo durante un tiempo. Supervise el uso que hace su sistema del espacio de intercambio. Si se requiere un ajuste fino, los cambios se realizan fácilmente. Con archivos de intercambio, es un trabajo de dos minutos. Compare eso con el ajuste de particiones en una computadora Linux en vivo.
Crear el archivo de intercambio
No debe usar el fallocate
comando para crear su archivo de intercambio . Esto es de la página del manual de swapon
:
La implementación del archivo de intercambio en el kernel espera poder escribir en el archivo directamente, sin la ayuda del sistema de archivos. Este es un problema en archivos con agujeros o en archivos de copia sobre escritura en archivo sistemas como Btrfs. Los comandos como cp (1) o truncar (1) crean archivos con agujeros. Estos archivos serán rechazados por swapon. Los archivos preasignados creados por fallocate (1) pueden interpretarse como archivos con agujeros también dependiendo del sistema de archivos. Los archivos de intercambio preasignados son compatible con XFS desde Linux 4.18. La solución más portátil para crear un archivo de intercambio es usar dd (1) y / dev / zero.
Entonces, aunque fallocate
es más rápido, lo usaremos dd
para crear el archivo de intercambio . La máquina utilizada para investigar este artículo tiene dos GB de RAM. Vamos a crear un archivo de intercambio de un GB.
Las opciones son:
- si : el archivo de entrada. En este ejemplo, estamos usando
/dev/zero
que proporcionará un flujo de cero bytes. - de : el archivo de salida. Vamos a crear un archivo en el directorio raíz, llamado
swapfile
. - bs : el tamaño del bloque en bytes. Esto especifica cuántos bytes leer del archivo de entrada y escribir en el archivo de salida, a la vez.
- contar : Cuántos bloques leer y escribir. Multiplique este número por el
bs
valor para obtener el tamaño del archivo.
sudo dd if = / dev / zero of = / swapfile bs = 1024 count = 1048576
Se proporcionan algunas estadísticas cuando se crea el archivo.
Podemos ver el número de bloques (registros) que se escribieron en el archivo, el tamaño del archivo, el tiempo necesario para crear el archivo y la tasa de transferencia de datos efectiva.
Utilice el ls
comando para ver el archivo en el directorio raíz:
ls /
Preparación del archivo de intercambio
Necesitamos preparar el archivo de intercambio con el mkswap
comando antes de que pueda usarse. No necesitamos proporcionar ningún parámetro que mkswap
no sea la ruta y el nombre del archivo:
sudo mkswap / swapfile
El archivo está preparado para su uso como archivo de intercambio. Tenga en cuenta la advertencia sobre los permisos de archivo. Tendremos que cambiarlos para que el usuario root sea el único que pueda leer y escribir en el archivo de intercambio.
Usando el archivo de intercambio
Los permisos predeterminados son demasiado liberales, debemos restringirlos para que solo el root pueda usar el archivo de intercambio. Úselo chmod
para cambiar los permisos del archivo :
sudo chmod 600 / swapfile
Esto elimina todos los permisos de los miembros del grupo de archivos y de otros, pero permite que el propietario del archivo, root, lea y escriba en el archivo.
Necesitamos usar el swapon
comando para que Linux sepa que hay un nuevo archivo de intercambio disponible para usar. Solo necesitamos proporcionar la ruta y el nombre del archivo:
sudo swapon / swapfile
El archivo de intercambio ahora está activo.
Agregar el archivo de intercambio a fstab
Para asegurarse de que su archivo de intercambio esté disponible después de un reinicio, agréguelo al /etc/fstab
archivo . Puede usar cualquier editor de texto que prefiera, pero mostraremos el proceso usando el editor de texto gráfico Gedit .
sudo gedit / etc / fstab
La línea que debemos agregar al final del archivo es:
/ swapfile ninguno swap sw 0 0
Los campos son:
- Sistema de archivos : la ruta y el nombre del archivo de intercambio.
- Punto de montaje : el archivo no se monta como un sistema de archivos, por lo que la entrada es «ninguno».
- Tipo : esto es «intercambio».
- Opciones : en el momento del arranque
swapon -a
(iniciar todos los dispositivos marcados como swap) serán llamados desde uno de los scripts de arranque. Esta opción le dice a Linux que trate esta entrada como un recurso de intercambio que debería estar bajo el control de eseswapon -a
comando. Es común que se usen «valores predeterminados» aquí porque algunos usuarios de Linux creen erróneamente que este campo se ignora. Como veremos, ese no es el caso. Entonces tiene sentido usar la opción correcta. - Volcado : se puede establecer en cero. Es irrelevante en este caso.
- Aprobado : esto se puede establecer en cero. Es irrelevante en este caso.
Guarde los cambios y cierre el editor.
Comprobación del uso de intercambio
Para ver si se está utilizando su espacio de intercambio, use el swapon
comando con la --show
opción:
swapon - show
Las columnas son:
- Nombre : el nombre de la partición de intercambio o del archivo de intercambio.
- Tipo : el tipo de dispositivo de intercambio.
- Tamaño : el tamaño del recurso de intercambio.
- Usado : la cantidad de espacio de intercambio usado.
- Prio : La prioridad de este espacio de intercambio.
La prioridad del espacio de intercambio
A cada espacio de intercambio se le asigna una prioridad. Si no proporciona uno, se asigna uno automáticamente. Las prioridades asignadas automáticamente son siempre negativas. El rango de prioridades que se pueden asignar manualmente es de 0 a 32767. Los recursos de intercambio con prioridades más altas se utilizan primero.
Si más de un espacio de intercambio tiene la misma prioridad, se utilizan alternativamente hasta que ambos estén llenos, entonces el sistema busca el espacio de intercambio con la siguiente prioridad más baja. Si solo tiene un espacio de intercambio, la prioridad es irrelevante, por supuesto. Pero cambiaremos la prioridad del archivo de intercambio que hemos creado para demostrar cómo hacerlo.
Para establecer una prioridad, agregue la pri=
opción (prioridad) a la /etc/fstab
entrada. Edite la línea que agregó para /etc/fstab
que se vea así:
/ swapfile ninguno swap sw, pri = 10 0 0
Es decir, agregue pri=10
al campo de opciones, separado del «sw» con una coma. No deje ningún espacio entre «sw», la coma y «pri = 10». Reinicie su computadora y use el swapon --show
comando:
swapon - mostrar
La prioridad de este espacio de intercambio se ha elevado a 10. Lo que es una prueba positiva de que /etc/fstab
no se ignora el campo de opciones en la entrada.
Intercambiar espacio de forma fácil
Continuando con la exposición y la explicación, podemos crear un nuevo archivo de intercambio tan fácil y rápidamente como este:
sudo dd if = / dev / zero / of = / swapfile2 bs = 1024 count = 104857
sudo mkswap / swapfile2
sudo chmod 600 / swapfile2
sudo swapon / swapfile2
Y comprobemos que funcionó:
swapon - show
Si desea hacer esa caída permanente, en su /etc/fstab
archivo.
Auge. Trabajo hecho.