¿Usar SSD como RAM?

13

¿Cómo puedo usar el espacio en disco SSD como RAM para ejecutar trabajos de memoria grande en Raspberry Pi? ¿Es lo mismo en Linux como crear "ramdisk" según estas preguntas y respuestas ?

719016
fuente
44
La respuesta corta es: ¡No es posible! Puede usarlo como un disco de intercambio o mantener archivos temporales allí, pero no puede extender su RAM usando la unidad. Simplemente no es posible.
Piotr Kula
3
Intente usar GParted para formatear su SSD con una linux-swappartición, luego ejecute sudo swapon /dev/sda1(o lo que sea la partición de intercambio). Ramdisk usa su RAM como almacenamiento, el espacio de intercambio es básicamente lo contrario: use el almacenamiento como RAM.
JamesTheAwesomeDude

Respuestas:

8

¿Supongo que te refieres a SD en lugar de SSD? Crear una partición de intercambio en la tarjeta SD debería funcionar como una especie de RAM para la unidad.

Si te refieres a SSD, no hay una forma real de conectar una unidad SSD a Pi en primer lugar. Si se conecta por USB, no habrá un gran aumento, ni siquiera un HDD normal conectado externamente puede funcionar a toda velocidad.

Ryan Walmsley
fuente
7

Esto no es posible.

La memoria para Raspberry Pi está fija en la placa y no hay una interfaz para extenderla o reemplazarla.

Creo que la confusión proviene del hecho de que SSD (disco de estado sólido) está utilizando chips de memoria para almacenar los datos. Pero ahí es donde terminan las similitudes. Los chips de memoria en el SSD son muy diferentes a la RAM normal. No es posible reemplazar uno por el otro.

El SSD tiene una interfaz de disco SATA. La RAM tiene una interfaz de bus de memoria. Son tan diferentes que la mejor analogía que puedo ofrecer es como comparar un horno de gas con un microondas.

Intenté simplificar la información que sigue, así que para cualquiera que lea esto con una comprensión más profunda, tenga en cuenta que este es solo un resumen de muy alto nivel:

Los chips SSD son memoria Flash y tienen una capacidad de almacenamiento no volátil, similar a los discos USB. Esto significa que pueden retener sus datos incluso sin energía. También necesitan un chip controlador especial para hablar con ellos. Este chip está conectado a una interfaz de disco SATA y sigue el protocolo SATA. En mi analogía, el SSD es el horno de gas y el bus SATA es el suministro de gas a la casa.

Los chips de RAM típicos se conocen como DRAM, es decir, RAM dinámica (también conocida como DDR SDRAM, etc.). Almacenan datos durante muy poco tiempo, lo que hace que sea necesario desconectarlos (desconectar estos chips del resto de los circuitos) para actualizar sus datos almacenados. Esto ocurre varios cientos o miles de veces por segundo y es transparente para el usuario. Si se corta la corriente, esta actualización se detiene y sus datos se pierden para siempre. Los chips de RAM dinámica siguen un protocolo completamente diferente de los chips de memoria Flash y se conectan a un controlador de memoria dinámica, que a su vez, se conecta a un bus de memoria de muy alta velocidad. Este bus de memoria va directamente al corazón del chip de la CPU. En mi analogía, la RAM dinámica es el horno de microondas y el bus de memoria de alta velocidad es la fuente de alimentación eléctrica.

La CPU Rapsberry Pi tiene una conexión especial para la RAM y nada más que Dynamic RAM puede conectarse allí. Las conexiones SATA y USB se mantienen por separado.

Entonces, aunque ambos hacen el mismo trabajo (código de almacenamiento SSD y RAM y datos, cocinas de gas y microondas cocinan alimentos y calientan comidas) hacen este trabajo de maneras completamente diferentes e incompatibles. Uno no puede ser sustituido por el otro.

Finalmente, el Disco RAM es un truco del sistema operativo que finge que parte de la RAM disponible es en realidad un disco de almacenamiento. Esto reduce la RAM disponible como lenik señala muy correctamente en su respuesta.

Vassilis Papanikolaou
fuente
1
¿Qué pasa cuando Windows (Ready Boost) le permite usar unidades Flash como RAM adicional, podría funcionar? ¿O es como tratar de agregar SWAP que no hará la diferencia esperada en el rendimiento?
rima
ReadyBoost en Windows no funciona como RAM, consulte Wikipedia: en.wikipedia.org/wiki/ReadyBoost . En resumen: ReadyBoost es una solución de almacenamiento en caché de disco para acelerar discos más lentos. Normalmente, esto implica copiar datos de discos giratorios a unidades flash para reducir los tiempos de acceso a los datos.
Vassilis Papanikolaou
3

Agregar intercambio a la Raspberry Pi

Puede usar un archivo de intercambio o una partición de intercambio. Si decide utilizar una partición de intercambio, asegúrese de leer detenidamente, ya que no desea arruinar ningún dato importante.

Crear archivo de intercambio

  • dd if=/dev/zero of=/SWAPFILE bs=1024 count=524288
    • Esto creará un archivo en blanco de 512 MB.
    • Cambie la cuenta = a su tamaño preferido.
  • chown root:root /SWAPFILE
  • chmod 0600 /SWAPFILE
  • mkswap /SWAPFILE
  • swapon /SWAPFILE

Crear partición de intercambio

  • dd if=/dev/zero of=/dev/sdXN bs=1024
    • Esto llenará toda la partición de / dev / sdXN
  • mkswap /dev/sdXN
  • swapon /dev/sdXN

Persistente en el arranque (agregar a / etc / fstab)

  • vim /etc/fstab
  • Agregar cualquiera:
    • / SWAPFILE swap swap por defecto 0 0
    • / dev / sdXN swap swap por defecto 0 0

Prueba si está activo

  • free -m
earthmeLon
fuente
1
Si bien los SSD son rápidos y pueden ser buenos para el espacio de intercambio, tenga en cuenta que los datos solo se pueden escribir en ellos un número limitado de veces.
earthmeLon
No olvide que está acelerado a través de la interfaz USB2, por lo que el SSD tendrá menos del 10% de su velocidad nativa. Realmente no creo que deba preocuparse por usar el flash por accidente.
John La Rooy
1

El disco RAM es totalmente opuesto a lo que quieres hacer. crea un disco en la RAM, cuando necesita velocidad adicional y no le importa la memoria.

usando SSD como RAM ... no sé, tal vez cree una partición de intercambio en SSD y déjelo intercambiar allí.

lenik
fuente