Linux: use el disco como RAM

Linux: use el disco como RAM

Tengo una VM y en ella un proceso que consume mucha memoria (~200GB). Algún tipo de base de datos en memoria. Necesito ejecutarlo en una computadora portátil estándar y no puedo recompilarlo ni ver el código.

Agregué 256 GB de espacio de intercambio con pri=32767 en /etc/fstab y vm.swappiness=100 en /etc/sysctl.conf pero simplemente no carga la base de datos lo suficientemente rápido (atascado en 4GB después de 24 horas; no Parece que ya no crece).

(EDITAR: cloné la máquina, cambié la RAM de 256 GB a 4 GB, agregué un disco duro, lo formateé como ext4 y creé un archivo de intercambio de tamaño 256 GB (dd -> mkswap -> swapon...))

¿Por qué dejó de crecer?

Sospecho que la lentitud se debe a que es un espacio de intercambio, por lo tanto, el sistema operativo está ocupado "intercambiando" (carga -> no hay suficiente espacio -> decidiendo qué intercambiar...).

Estoy buscando una manera de "agregar más memoria" pero hacer que el sistema operativo la trate como memoria normal. ¿O tal vez mi configuración de intercambio es incorrecta?

Sé que afectará el rendimiento, pero es aceptable para mí.

La máquina virtual es CentOS 6.

Respuesta1

¿Has probado varios archivos de intercambio? 4 gigas suena como si estuvieras alcanzando el límite de tamaño de archivo para un sistema de 32 bits.

Encontré este tutorial encentos.orgque explica claramente cómo crear archivos de intercambio manualmente.

Para agregar un archivo de intercambio:

  1. Determine el tamaño del nuevo archivo de intercambio en megabytes y multiplíquelo por 1024 para determinar la cantidad de bloques. Por ejemplo, el tamaño de bloque de un archivo de intercambio de 64 MB es 65536.
  2. En el símbolo del shell como root, escriba el siguiente comando siendo el recuento igual al tamaño de bloque deseado:

dd if=/dev/zero of=/swapfile bs=1024 count=65536

  1. Configure el archivo de intercambio con el comando:

mkswap /swapfile

  1. Para habilitar el archivo de intercambio inmediatamente pero no automáticamente en el momento del arranque:

swapon /swapfile

  1. Para habilitarlo en el momento del arranque, edite /etc/fstab para incluir la siguiente entrada:

/swapfile swap swap defaults 0 0

La próxima vez que se inicie el sistema, habilitará el nuevo archivo de intercambio.

Después de agregar el nuevo archivo de intercambio y habilitarlo, verifique que esté habilitado viendo el resultado del comando cat /proc/swapso free.

Respuesta2

Finalmente logré convertir los datos en una base de datos SQLite y escribíhttps://github.com/assafmo/SQLiteQueryServerpara poder acceder a él de forma remota. Funcionó perfectamente y fue súper rápido.

información relacionada