Usando Linux, cuando arranco automáticamente tengo 16 discos RAM de 16 MB, sin embargo, me gustaría crear un disco RAM realmente grande para probar algún software.
Descubrí que puedo ajustar el tamaño de los ramdisks que ya están en el sistema con el parámetro de arranque del kernel ramdisk_size
, sin embargo, esto hace que los 16 ramdisks (/ dev / ram0 - / dev / ram15) tengan el tamaño especificado. Entonces, si quiero crear un disco RAM de 1 GB, necesitaría 16 GB de memoria.
Básicamente, quiero crear un disco RAM de 10 GB que sería / dev / ram0. ¿Cómo voy a hacer eso? Supongo que hay un parámetro de arranque del kernel, pero simplemente no lo he encontrado.
Para hacer un disco RAM grande después del arranque sin perder el tiempo con los parámetros del kernel. Use tmpfs, cree un archivo, móntelo a través de un bucle y móntelo a través de un sistema de archivos:
Probablemente un poco de penalización de rendimiento al pasar por varias capas diferentes ... pero al menos funciona.
fuente
Otra opción es usar los dispositivos de bucle (a diferencia de la función de paquete de soporte de montaje como se mencionó anteriormente):
Ahora / dev / loop es un dispositivo de bloque legítimo sobre el cual su aplicación actuaría como un dispositivo físico o un disco RAM, excepto que está respaldado por un archivo. Puede montarlo en algún lugar o hacer que su aplicación actúe sobre el nodo del dispositivo, que implementa los ioctls de bloque estándar. Guarda el sistema ram y es útil para guardarlo en casos de prueba, etc.
(Incluso puede fdisk myfs.img, crear particiones en él y usar --offset y --sizelimit con losetup para apuntar cada / dev / loopX a particiones específicas en la imagen, por lo que loop0, loop1 se vuelven como sdc1, sdc2, etc. )
fuente
En su lugar, podría usar un archivo de bucle. Simplemente cree un archivo de bucle del tamaño que desee (si desea ponerlo en un disco RAM tmpfs, bien), y luego formatee el archivo de bucle y móntelo.
fuente
El objeto de un ramdrive es la velocidad. Tmpfs no es un disco. Los dispositivos de bucle no son unidades, pero puede colocar una imagen de unidad en un dispositivo de bucle. Los discos Ram "son" unidades y unidades muy rápidas. Intenta correr:
y entonces:
¡Verás lo que quiero decir! Pero hdparm a veces destruye la memoria RAM. Entonces, tienes que hacerlo de nuevo.
A veces no hay dispositivos / dev / ram. Para hacer uno:
Pero no tendrá ningún tamaño. Para darle tamaño:
y se detendrá cuando la unidad esté llena. El tamaño máximo está determinado por la configuración del núcleo Parm:
CONFIG_BLK_DEV_RAM_SIZE
.Luego, simplemente formatee, es decir
Y montarlo:
Uno de mis favoritos es el código de depuración almacenado en una memoria RAM. Las compilaciones tienen al menos 10 veces la velocidad del código almacenado en un disco duro. Las tablas de la base de datos almacenadas en ramdrive también vuelan, pero debe tener un script que escriba periódicamente en el disco duro. La mayoría de los administradores no tienen las agallas para poner datos en discos ram. Y algunas mesas son demasiado grandes.
fuente
En el faro 64 (Linux puupy basado en slackware) hice esto;
Ahí tienes un disco RAM montado como un directorio
/mnt/dvd
donde puedes copiar y guardar y hacer todo como lo harías en un directorio HD, excepto en RAM. recuerde guardar sus archivos en hd antes del apagado.fuente