¿Cómo hago un disco RAM?

55

Quiero hacer una partición hecha de ram ...

Ejemplo

En Windows 7 puedes hacer una partición que está hecha de ram

ingrese la descripción de la imagen aquí

He creado 1 GB de partición en ram. utilizando Primo RamDisk

¿Hay alguna buena alternativa en Ubuntu?

Un cero
fuente
3
Ubuntu viene con tmpfs. No necesita crear un RAMDISK.
mixdev
Dependiendo de su caso de uso previsto, es posible que no necesite un disco RAM para Ubuntu (o la mayoría de las distribuciones de Linux). El sistema operativo almacena en caché las actividades de lectura y escritura en la RAM mientras trabaja con discos normales. Si lee un archivo pequeño varias veces, solo se recuperará del disco una vez y luego se recuperará de la memoria caché de RAM en los siguientes momentos. Si tiene mucha RAM, todo lo que haga se almacenará en caché de esta manera, por lo que obtendrá muy poca actividad de repetición del disco. Si desea el uso de memoria rápida no persistente en lugar de archivos, aún necesita un RAMDISK. Visite linuxatemyram.com para más detalles.
TafT

Respuestas:

77

Esto le mostrará cómo hacer un RAMDISK súper rápido y fácil. Con un RAMDISK puede usar su memoria para espacio temporal y también es mucho más rápido que su disco duro.

Ahora comencemos usando los siguientes 2 comandos para hacer su RAMDISK.

Ponga lo que quiera que llame su RAMDISK donde escribí "nameme".

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
Los comandos anteriores usarían 2 GB de mi RAM para RAMDISK. Si no tienes tanta memoria RAM como yo, usaría 512 MB o 1 GB. Entonces, a continuación, crearíamos un comando para Terminal que creará automáticamente el DISCO RAM para usted.

Fuente: Cómo crear un disco RAM en Linux

Mitch
fuente
3
¿Cómo puedo hacer que esto persista entre reinicios?
Chovy
1
Al ser RAM, es volátil, cuando reinicia, todo se pierde, incluso si un arranque en caliente como BIOS / EFI borrará la RAM. Lo mejor que puede hacer es crear un script de shell que ejecute los comandos al iniciar sesión.
Brandon MacEachern
1
@chovy para persistir, tienes un par de opciones, pienso en 2 en este momento. 1. escribir api para escribir en el disco ram y escritura asincrónica en disco hdd. Siempre lea desde el ram, solo en el arranque de calentamiento ram desde el disco. 2. De vez en cuando, llame a algún script que copie cualquier cosa en el disco RAM en algún disco HDD y vuelva a copiar una vez después del arranque.
Lukas
otra opción sería designar algo así /tmp/cachecomo su directorio de caché, donde ese directorio es en realidad el punto de montaje de un overlayfs (usando un tmpfs como upperdir, y cualquier otra cosa en su sistema de archivos normal con el que normalmente interactuaría como lowerdir). esto le permitiría tener una capa rápida y efímera, y algo capaz de sincronizarse trivialmente si ocasionalmente deseara que partes de ella sean persistentes.
mway
chovy lo agrega a /etc/rc.local y automáticamente montará la partición ... pero los datos se perderán.
777Anon
49

El sistema de archivos tmpfs es un RAMDISK. Lo siguiente creará un DISCO RAM 2G que siempre estará disponible.

sudo mkdir -p /media/ramdisk
sudo mount -t tmpfs -o size=2048M tmpfs /media/ramdisk

La carpeta ramdisk es propiedad de root, ya que debe estar disponible al reiniciar. Los permisos de ramdisk deben ser escribibles por todos. Los permisos predeterminados de tmpfs (chmod 1777) son correctos.

sudo chmod 1777 /media/ramdisk
drwxrwxrwt 2 root root 180 Apr 23 07:34 /media/ramdisk

Para que el ramdisk esté permanentemente disponible, agréguelo a / etc / fstab.

grep /media/ramdisk /etc/mtab | sudo tee -a /etc/fstab

Verá que la línea se movió de mtab a fstab. Se verá algo como esto.

tmpfs /media/ramdisk tmpfs rw,size=2048M 0 0

RAMDISK no consumirá memoria hasta que lo use. Verifique sus requisitos de memoria durante la carga máxima del sistema. Si el RAMDISK es demasiado grande, su sistema consumirá almacenamiento de intercambio para compensar la diferencia.

Para ajustar el tamaño del RAMDISK, edite / etc / fstab y verifique volviendo a montar el ramdisk (perderá el contenido actual de RAMDISK como lo hará al reiniciar). Lo siguiente cambiará el tamaño del ramdisk a 512M

# Check the existing ramdisk size.
df /media/ramdisk
# change size=512M for a 512 megabyte ram drive.
sudo vi /etc/fstab
# Remount the ramdisk, you will lose any existing content.
sudo mount -a /media/ramdisk
# Verify the new ramdisk size.
df /media/ramdisk
rickfoosusa
fuente
1
Técnicamente, tmpfses un ramfs, no ramdisk .
heemayl
2
De acuerdo. Elegí usar RAMDISK ya que es el nombre común para esto en Windows.
rickfoosusa
¿Cómo se puede verificar si el ramdisk está realmente en uso? Siempre lo veo como Usado 0%.
BTR Naidu
9

Agregando mi 2 centavo para el caso no tiene privilegios de root:

Citando de esta respuesta de unix.stackexchange

Linux proporciona un dispositivo tmpfs que cualquier usuario puede usar, / dev / shm. No está montado en un directorio específico de forma predeterminada, pero aún puede usarlo como uno.

Simplemente cree un directorio en / dev / shm y luego haga un enlace simbólico a donde quiera. Puede otorgar al directorio creado los permisos que elija, para que otros usuarios no puedan acceder a él.

Este es un dispositivo respaldado por RAM, por lo que hay en la memoria de forma predeterminada. Puede crear cualquier directorio que necesite dentro de / dev / shm

Naturalmente, los archivos colocados aquí no sobrevivirán al reinicio, y si su máquina comienza a intercambiarse, / dev / shm no lo ayudará.

Yuval Atzmon
fuente