¿Puede la incursión SSD ser más rápida que el disco RAM?

9

Por lo tanto, un SSD típico tendrá una velocidad de lectura de 250 - 500 mb / segundo. Y un carnero tendrá aproximadamente 10 veces más que eso.

Mi pregunta es: ¿puede 4 ssds con raid-0 ser más rápido que un solo bloque de memoria ram por alguna razón?

Voy a ir con mucho ram y ramdisk, o 4 ssds con raid-0. ¿Cual es mas rápido?

Koray Tugay
fuente

Respuestas:

12

Por lo tanto, un SSD típico tendrá una velocidad de lectura de 250 - 500 mb / segundo. Y un carnero tendrá aproximadamente 10 veces más que eso.

¿A qué tipo de RAM te refieres? Ciertamente, no es algo que haya sido de uso común en PC recientemente, parece.

DDR3 SDRAM puede darle trivialmente una velocidad de transferencia de alrededor de 10 GB / s (necesita DDR3-1333 para eso) y actualmente supera los 17 GB / s para DDR3-2133.

Digamos que seccionan cuatro SSD capaces de entregar 500 MB / sy el sistema en general es capaz de manejar eso (sin contención de bus, el sistema todavía está vinculado a E / S, etc.). Esto le proporciona un rendimiento teórico máximo de 2 GB / s. El 4xSSD pierde casi un factor de 10.

DDR3 SDRAM tiene una latencia en la región de 10 ns. Un buen SSD podría proporcionarle 100k IOPS, como máximo, lo que se traduce en una latencia de 10,000 ns. (Por ejemplo, el Intel 530 especifica un IOPS de 41k para lecturas aleatorias de 4k, lo que le proporciona una latencia de casi 25,000 ns).

Agrupe cuatro SSD rápidos e ignore todos los gastos generales, y puede obtener 400k IOPS o 2.500 ns de latencia. El 4xSSD pierde por un factor de 250.

Los datos del SSD tienen que ir a algún lado, y ese "en algún lugar" será RAM. La CPU puede capturarlo desde allí, pero no habla directamente con el SSD más de lo que habla directamente con una unidad de disco duro de disco giratorio.

Si suponemos que no sufre la contención del bus en el SSD, tiene sentido suponer lo mismo para la RAM. Lo que lleva a la conclusión de que, según cualquiera de estas métricas, un SSD es terriblemente lento en comparación con DDR3 SDRAM.

RAM tiene otros inconvenientes. Incluso en comparación con los SSD, es muy costoso por gigabyte y necesita energía constante para retener su contenido. Además, un disco RAM no funciona exactamente igual que la RAM, ya que es una construcción de software en el sistema operativo. Aún debe obtener la mayor parte del beneficio de rendimiento de la RAM, pero pierde la misma cantidad de RAM, lo que puede hacer que el sistema tenga que recurrir al intercambio con más frecuencia (que es una sentencia de muerte por rendimiento) y probablemente no lo hará. dar el mismo rendimiento que la RAM sin formato.

un CVn
fuente
ramdisk es entonces ..
Koray Tugay
1
@KorayTugay Si necesita el máximo rendimiento, debe usar un disco RAM, pero tenga en cuenta que un disco RAM no funciona exactamente igual que la RAM y tiene su propio conjunto de inconvenientes, entre los cuales el menor es el precio . (También, aunque aprecio la aceptan, te animo que esperar un día o dos antes de aceptar una respuesta en caso de que alguien da una respuesta aún mejor.)
un CVn
@KorayTugay: En general, la respuesta a "¿Necesito un disco RAM?" casi siempre es "No. Si realmente lo necesitaras, sabrías lo suficiente como para no tener que preguntar". ¿Qué haces que te hace pensar que lo necesitarás?
Afrazier
Desarrollo / prueba de @afrazier con una gran base de datos y accedo a ella muchas veces y se obtienen muchos datos de ella. Mantendré la base de datos en el carnero. Hago esto durante 8 10 horas al día y esperar 4 5 segundos parece demasiado tiempo después de algún tiempo. Necesito golpear el db más rápido.
Koray Tugay
55
Cualquier DBMS competente mantendrá la mayor cantidad de DB en RAM posible. Si su base de datos es lo suficientemente pequeña como para caber en un RAMdisk, es lo suficientemente pequeña como para caber en la RAM. Ajustar adecuadamente su DBMS con un SSD le dará el rendimiento que está buscando: para el desarrollo local, incluso puede aprovechar cosas como escribir en caché y preocuparse menos por ACID. Un disco RAM está luchando contra el sistema.
Afrazier
4

La verdadera causa de la respuesta "no" no es solo la comparación de diferencias entre los dos, sino también porque el sistema operativo almacenará en caché los datos leídos del SSD. Guardará esto en tu RAM . Por lo tanto, una lectura en bloque del SSD significa también una escritura en bloque en la RAM. Siempre.

Esta es la razón por la cual los discos RAM son más rápidos incluso en combinaciones de hardware muy especiales (por ejemplo, se combinó un SSD muy rápido con RAM muy lenta).

peterh - Restablece a Monica
fuente
1
Esta es realmente la mejor respuesta.
ChrisInEdmonton
sudo zfs set primarycache=none tankAhí va tu caché basada en RAM. (Suponiendo, por supuesto, que está usando ZFS.)
un CVn
@ MichaelKjörling Eso es correcto, e incluso en construcciones que no son zfs hay posibilidades de desactivar el caché de lectura. Pero incluso en este caso, si realiza una llamada $ read () $, en realidad será una copia del SSD a la RAM. No puede evitar esto, excepto si está leyendo los datos de alguna manera directamente en la memoria caché de la CPU (lo que también significa que de alguna manera evita el DMA), AMD cpus (y tal vez intels) tienen un administrador de memoria integrado, creo que su versión ligeramente modificada de alguna manera podría hacer eso. Pero incluso en este caso requeriría modificar la CPU.
peterh - Restablece a Mónica el
3

Para responder a su pregunta real: No. RAM tiene un orden de magnitud más ancho de banda y un orden de magnitud menos latencia. Ni siquiera está cerca.

Para responder la pregunta que no está haciendo: lo que planea hacer es una mala idea, a menos que tenga un caso de uso muy específico que requiera ese tipo de ancho de banda. Si realmente necesita ese tipo de velocidad, obtener un SSD basado en PCIe (como un ioDrive o un Intel 910 será mucho más rápido que una bolsa de SSD SATA en RAID-0.

Cualquier SSD actual será lo suficientemente rápido para las cargas de trabajo de los consumidores y entusiastas que va a ser el cuello de botella.

afrazier
fuente
En realidad, la latencia DDR3 no es un orden de magnitud menor que el de un SSD. Es de tres a cuatro órdenes de magnitud más bajo. Vea mi respuesta para algunos números reales. (Sin embargo, la diferencia de ancho de banda definitivamente está en el estadio).
un CVn
La latencia no es importante, porque el IO ocurre en bloques. Al menos en bloques de 4K. El ancho de banda es importante.
peterh - Restablecer Monica
@PeterHorvath: La latencia sigue siendo un gran problema con los SSD. Observe todas las investigaciones y los puntos de referencia en cuanto a la coherencia y los problemas de tartamudeo que tenían los SSD tempranos. Y como Michael Kjörling mencionó, la latencia de RAM es varios órdenes de magnitud menor que SSD. La latencia en cachés Lx es significativamente menor aún, y la latencia de registro de la CPU es aún menor. Y todo es importante para el rendimiento.
Afrazier
1

La RAM siempre será más rápida que cualquier sistema de bus periférico (como SATA) puede entregar.

Pero cuando se trata de un disco RAM, no se trata únicamente de RAM. También hay un montón de software (el sistema de archivos y los controladores de dispositivo) para considerar que "convierte" la RAM sin procesar en algo que el sistema operativo verá como almacenamiento en disco.

La velocidad de un disco RAM realmente dependerá totalmente de la calidad de ese software.

Habiendo dicho eso: normalmente aún debería ser varias veces más rápido como la solución de almacenamiento más rápida que puede conectar a la placa base.

Puede haber algunos casos en los que los patrones de uso específicos harán que la diferencia sea más pequeña o casi nula, pero sin más detalles sobre lo que va a hacer con dicho sistema, es imposible decir si eso se aplicará a su situación.

PD Tenga en cuenta que un disco RAM será volátil. Después del arranque de la máquina, tendrá que cargarla inicialmente con datos. Al apagar la máquina, deberá guardar el contenido (si lo necesita para la próxima ejecución). Si el sistema falla, pierde el disco RAM para guardar cualquier cosa.
Esto es algo que tendrá que tener en cuenta, especialmente si espera reinicios frecuentes. Guardar / Recargar el contenido del disco RAM puede ser menos que trivial.

Tonny
fuente
Mantendré mi base de datos en ram.
Koray Tugay