Post
Topic
Board Altcoins (criptomonedas alternativas)
Re: Problema con Blockchain de Monero XMR
by
rincadmo
on 10/09/2014, 00:11:48 UTC
Para el problema de la RAM, los usuarios de GNU/Linux tenéis una solución muy simple. Se pueden crear discos virtuales en la partición con dd y añadirlos a la memoria swap:

1. Crear un disco virtual del tamaño necesario. Por ejemplo, para 4Gb:
# bs = 512 bytes por bloque
# count =   (4Gb(4 * 2^30) / 512(2^9) = 4 * 2^21 = 4 * 2 * 2^20 = 8 * 1024 * 1024 = 8388608
Code:
$ dd if=/dev/zero of=vdisk1.img bs=512 count=8388608

2. Hacer que el sistema trate el fichero como dispositivo de bloques
Code:
$ sudo losetup -vf vdisk1.img
Loop device is /dev/loop0

3. Comprobar que el disco está en loop0
Code:
$ sudo fdisk -l /dev/loop0
Disco /dev/loop0: 4294 MB, 4294967296 bytes
...

4. Formatear como partición swap
Code:
$ sudo mkswap /dev/loop0
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=401db4c-57a9-4705-a522-31edbc220261

5. Montar la partición virtual en la Swap
Code:
sudo swapon /dev/loop0

6. Comprobar que la partición está montada como swap
Code:
$ sudo swapon -s
Filename                Type Size Used Priority
[...]
/dev/loop0                              partition 4194300 0    -2

# El comando free indica el total de RAM con swap incluida.
Code:
$ free

Para ver el uso de la RAM mientras carga el blockchain, cada 2 seg:
Code:
$ watch -n 2 free

Notas:
El ejemplo usa el editor vim, pero sirve cualquier otro editor como nano, pico o gedit.
El UUID es un identificador único del disco.

Para cargar el disco virtual de forma persistente cada vez que se reinicie el equipo, seguir estos pasos:

1. Montar loop0 persistentemente en el sistema. Editar /etc/rc.local y añadir antes de exit 0:
Code:
$ sudo vim /etc/rc.local
# Load virtual disk to /dev/loop0 for swap
losetup -vf vdisk1.img
exit 0

2. Automontar vdisk1.img como Swap en el arranque. Añadir al final de /etc/fstab
Code:
$ sudo vim /etc/fstab
# Swap from loop0
UUID=401db4c-57a9-4705-a522-31edbc220261       none swap sw 0 0

Si el sistema está basado en Red Hat:
Code:
UUID=401db4c-57a9-4705-a522-31edbc220261   swap swap defaults 0 0

3. Verificar que los datos en fstab son correctos.
Code:
$ mount

Si el paso 3 da error comprobar que el UUID es correcto con blkid y vdisk1 esté cargado en /dev/loop0:
Code:
$ sudo fdisk -l /dev/loop0
Disco /dev/loop0: 4294 MB, 4294967296 bytes
...

Code:
$ sudo blkid /dev/loop0
/dev/loop0: UUID="401db4c-57a9-4705-a522-31edbc220261" TYPE="swap"