¿Cómo aumentar el espacio de intercambio?

104

Tengo, por defecto, 250 MB de espacio de intercambio en Ubuntu, y quiero expandirlo a un tamaño mayor. Necesito 800 MB, que creo que será suficiente para abrir varias aplicaciones sin tener que alcanzar el límite actual de swap. Espero que alguien me pueda ayudar.

    
pregunta Bruno 21.08.2012 - 22:20

5 respuestas

139

Siempre puedes crear un archivo de intercambio

para agregar más espacio de intercambio. Esto no es lo mismo (en todos los aspectos) que la partición de intercambio, pero será fácil y dinámico.

Cambia /media/fasthdd/swapfile.img a lo que quieras, por ejemplo, también puede ser /swap.img . /media/fasthdd/swapfile.img es solo un nombre de archivo de ejemplo, si está usando este, por supuesto, debe haber un directorio /media/fasthdd/ con suficiente espacio libre para su nuevo archivo de intercambio.

Use cualquiera de las aplicaciones de terminal para ejecutar comandos. Todos los comandos deben ejecutarse con privilegios de administrador , para ello puede agregar sudo al comienzo de cada comando o ejecutar sudo bash antes de ejecutar los comandos.

1. Crear archivo vacío:
Este archivo contendrá los contenidos de la memoria virtual, por lo que conviene que el archivo sea lo suficientemente grande para sus necesidades. Éste creará un archivo de 1 Gb, lo que significa un espacio de intercambio de + 1 Gb para su sistema:

dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M

Si desea crear un archivo 3Gb, cambie el valor del conteo a count=3M . Ver man dd para más información.

2. Bake swap file:
El siguiente comando va a hacer "swap filesystem" dentro de su nuevo archivo swap.

mkswap /media/fasthdd/swapfile.img

3. Activar al inicio:
Para asegurarse de que su nuevo espacio de intercambio esté activado al arrancar la computadora, debe agregarlo al archivo de configuración del sistema de archivos /etc/fstab . Agréguelo al final del archivo, esto se recomienda porque otros sistemas de archivos ( al menos uno que contiene el archivo de intercambio ) deben montarse en modo lectura-escritura antes de que podamos acceder a cualquier archivo.

# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0

4. Activar:
Puede reiniciar su computadora o activar un nuevo archivo de intercambio manualmente con el siguiente comando:

swapon /media/fasthdd/swapfile.img

Si todo sale bien

debería ver que hay más espacio de intercambio disponible para su uso. Puede usar los siguientes comandos para verificar su nuevo intercambio y confirmar que esté activo:

cat /proc/swaps
  Filename                           Type       Size    Used    Priority
  /media/fasthdd/swapfile.img        file       8388604 2724    -1

grep 'Swap' /proc/meminfo
  SwapCached:         4772 kB
  SwapTotal:       8388604 kB
  SwapFree:        8355812 kB
    
respondido por el Sampo Sarrala 21.08.2012 - 22:59
30

Método GUI para aumentar el tamaño de la partición swap

Otra forma de aumentar el tamaño de intercambio es usar el Editor de particiones de GParted . En resumen, cambia el tamaño de la partición de intercambio, luego haz clic derecho sobre ella y elige "Swapon".

Es más fácil iniciar gparted-live-disk o un disco Ubuntu en vivo (de modo que todas las particiones /dev/sda se desmontarán). Si ejecuta Ubuntu live disk, entonces debe instalar gparted ejecutando los siguientes comandos:

sudo apt-get update
sudo apt-get install gparted && sudo gparted

Debe poder aumentar el tamaño de la partición de intercambio solo si hay un espacio sin asignar presente antes o después de la partición de intercambio. Si no había espacio sin asignar (el espacio que intentamos agregar con la partición de intercambio) debajo o encima de la partición de intercambio, entonces tenemos que cambiar el tamaño de las particiones y obtener ese espacio no asignado.

Caso 1: espacio no asignado presente antes o después de la partición de intercambio

En la captura de pantalla anterior, tenía 11.4 GB de espacio no asignado antes del intercambio de Linux y 12.8 GB después de la partición de intercambio.

  • Para cambiar el tamaño, haga clic con el botón derecho en la partición de intercambio (/ dev / sda9 aquí) y haga clic en la opción Cambiar tamaño / Mover. Se verá así:

  • Al arrastrar las flechas del control deslizante hacia la izquierda o hacia la derecha, haga clic en el botón Cambiar tamaño / Mover. Su partición de intercambio se redimensionará.

Caso 2: el espacio no asignado se encuentra entre las particiones

En la captura de pantalla de arriba, el espacio no asignado que queremos agregar a la partición de intercambio fue entre dev/sda7 y /dev/sda8 . Para mover el espacio no asignado de la partición de intercambio a la anterior, debemos seguir los sencillos pasos dado a continuación,

  • Haz clic derecho en la partición / dev / sda8 y haz clic en la opción Cambiar tamaño / Mover .

  • haga clic y mueva el control deslizante hacia el extremo izquierdo, de modo que el espacio no asignado que estaba justo por encima de la partición /dev/sda8 quede por debajo de /dev/sda8 . Después de eso, haga clic en el botón Redimensionar / Mover.

  • Y ahora el espacio no asignado estaba justo encima de la partición de intercambio, que era como Caso 1 . Ahora sigue el Caso 1.

Caso 3: si el espacio no asignado estaba presente fuera de la partición extendida)

Tenía un espacio sin asignar de 18 GB justo debajo de la partición extendida . Para agregar este espacio a la partición de intercambio de linux (que estaba presente dentro de la partición extendida), tenemos que seguir el debajo de los pasos,

  • Haz clic derecho en la partición extendida y selecciona la opción Cambiar tamaño / Mover , será como la siguiente captura de pantalla

  • Haga clic y arrastre la flecha hacia la extrema derecha y haga clic en Redimensionar / Mover , de modo que la el espacio no asignado de 18 GB vendrá en la parte inferior de la partición extendida. Tenía un espacio no asignado de 14.80 GB ya presente en la parte inferior y ahora los 18.34 GB se combinan con eso para crear un espacio no asignado de (18.34 + 14.80 GB) en la parte inferior de la partición extendida.

  • Ahora había un espacio no asignado justo debajo de la partición de intercambio, será como Caso 1 , luego siga el caso 1.

NOTA: no olvide hacer una copia de seguridad de todos sus datos importantes antes de continuar con las operaciones anteriores.

    
respondido por el Avinash Raj 11.12.2013 - 07:11
19

También puede usar fallocate si desea reservar espacio para su archivo de intercambio, sin la necesidad de llenar el archivo con 0 hasta dd .

de la página MAN :

DESCRIPTION
   fallocate  is  used  to preallocate blocks to a file.  For filesystems which support the fallocate system call, this is done quickly by
   allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.  This is much faster than creating a  file  by
   filling it with zeros.

Si ya tiene un swap definido, puede eliminarlo o conservarlo, y su * nix lo administrará (incluso mejor definiendo una prioridad swapon ). Esto podría ser útil, en caso de que desee expandir su intercambio entre diferentes dispositivos, unidad (según su velocidad u otras necesidades personalizadas, consulte ¿Cuál es el propósito de múltiples archivos de intercambio en StackExchange? ).

Uso simple de fallocate para agregar un segundo archivo de intercambio

Verificar situación de intercambio:

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

Crear un archivo de intercambio 4G

Forma estándar de crear y activar un archivo de intercambio.

$ size="4G" && file_swap=/swapfile_$size.img && sudo touch $file_swap && sudo fallocate -l $size /$file_swap && sudo mkswap /$file_swap && sudo swapon -p 20 /$file_swap

Haga que su intercambio sea permanente

Agregue una línea en su archivo /etc/fstab para que el intercambio se inicialice en el próximo reinicio (también actualizamos aquí la prioridad del espacio de intercambio recién creado y actualizamos la prioridad del antiguo archivo de intercambio

# in your /ets/fstab file
/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

Comprobar la situación de intercambio después de reiniciar:

$ sudo swapon  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/swapfile_4G.img       file     4194300     0       20

Eliminar uno de los espacios de intercambio (por ejemplo, los 256Mb originales)

Editar /etc/fstab

Elimina la línea relacionada con el intercambio que deseas eliminar

Eliminar ese intercambio

Eliminar y eliminar el archivo de intercambio.

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

Recursos:

respondido por el Jean-Christophe Meillaud 09.10.2014 - 15:24
3

En mi caso, ya tenía un archivo de intercambio que pensé que era de 1GB, pero cuando lo analicé más de cerca, solo pesaba 256 MB y cuando precompilaba mis recursos de rieles, el servidor se quedaba sin memoria

Errno::ENOMEM: Cannot allocate memory - nodejs

Creé mi archivo de intercambio como se describe aquí: enlace

Ahora la línea que crea un archivo vacío llamado /swapfile es la siguiente:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

Ahora, para cambiar el tamaño del archivo de intercambio, tuve que seguir estos sencillos pasos:

# Reboot the system to be able to switch swapping off
sudo reboot

# Turn swap off
sudo swapoff -a

# Delete the '/swapfile'
rm -f /swapfile

# Recreate the swapfile but with double file size memory
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Turn swap back on
sudo swapon -s

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

El archivo fue creado (536870912/1024/1024 = 512 MB):

ls -lia /swapfile 
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile

Utilizando el comando free -m pude ver que el archivo ahora es de 512 MB como se esperaba:

    
respondido por el Besi 27.04.2016 - 14:03
2

cómo agregar un archivo de intercambio

  1. archivo .img de creat

    sudo dd if = / dev / zero of = / swap.img bs = 1M count = 1000

nota !: bs = cuenta 1M = 1000 == & gt; 1GB

(bs * count = tamaño en megabytes)

otro ejemplo:

sudo dd if = / dev / zero of = / swap.img bs = 10M count = 100

  1. archivo .img de formato

    sudo mkswap /swap.img

  2. habilitar archivo de intercambio

    sudo swapon /swap.img

  3. agregar archivo de intercambio a fstab

agrega esta línea a tu fstab (/ etc / fstab)

/swap.img   none            swap    sw              0       0
    
respondido por el Jonas 03.10.2015 - 13:13

Lea otras preguntas en las etiquetas