Il raid SSD può essere più veloce di ramdisk?


9

Quindi un tipico ssd avrà una velocità di lettura di 250 - 500 mb / secondo. E un montone avrà circa 10 volte.

La mia domanda è: 4 ssds con raid-0 possono essere più veloci di un singolo blocco di memoria RAM per qualche motivo?

O vado con un sacco di ram e ramdisk, o 4 SSD con raid-0. Qual è più veloce?

Risposte:


12

Quindi un tipico ssd avrà una velocità di lettura di 250 - 500 mb / secondo. E un montone avrà circa 10 volte.

A quale tipo di RAM ti riferisci? Certamente non qualcosa che è stato di uso comune nei PC di recente, sembrerebbe.

DDR3 SDRAM può banalmente darti una velocità di trasferimento di circa 10 GB / s (hai bisogno di DDR3-1333 per quello) e attualmente supera di circa 17 GB / s per DDR3-2133.

Supponiamo che si rimuovano quattro SSD in grado di erogare 500 MB / se l'intero sistema sia in grado di gestirlo (nessuna contesa sul bus, il sistema è ancora associato a I / O, ecc.). Questo ti dà un throughput massimo teorico di 2 GB / s. Il 4xSSD perde di quasi un fattore 10.

DDR3 SDRAM ha una latenza nell'area 10 ns. Un buon SSD potrebbe darti 100k IOPS, top, che si traduce in una latenza di 10.000 ns. (Ad esempio, l'Intel 530 specifica un IOPS 41k per letture 4k casuali, che ti dà una latenza di quasi 25.000 ns.)

Stripe quattro veloci SSD e ignora tutti i costi generali e potresti ottenere 400k IOPS o 2.500 ns di latenza. Il 4xSSD perde di un fattore 250.

I dati dall'SSD devono andare da qualche parte, e quel "da qualche parte" sarà la RAM. La CPU può catturarlo da lì, ma non parla direttamente con l'SSD più di quanto non parli direttamente con un disco rigido a disco rotante.

Se supponiamo che non si soffra di contese sul bus sull'SSD, ha senso assumere la stessa cosa per la RAM. Il che porta alla conclusione che da una di queste metriche, un SSD è terribilmente lento rispetto alla DDR3 SDRAM.

La RAM presenta altri inconvenienti. Anche rispetto agli SSD è molto costoso per gigabyte e ha bisogno di energia costante per conservare i suoi contenuti. Inoltre, un disco RAM non funziona esattamente come la RAM, poiché è un costrutto software nel sistema operativo. Dovresti comunque ottenere la maggior parte del vantaggio in termini di prestazioni della RAM, ma perdi la stessa quantità di RAM che potrebbe comportare la necessità per il sistema di ricorrere allo scambio più spesso (che è una condanna a morte per prestazioni) e probabilmente non lo farà offre le stesse prestazioni della RAM grezza.


ramdisk è allora ..
Koray Tugay,

1
@KorayTugay Se hai bisogno del massimo in termini di prestazioni, dovresti andare con un disco RAM, ma tieni presente che un disco RAM non funziona esattamente come la RAM e ha il suo set di svantaggi, non ultimo dei quali è il prezzo . (Inoltre, anche se apprezzo l'accettazione, ti incoraggio ad aspettare circa un giorno prima di accettare una risposta nel caso in cui qualcun altro fornisca una risposta ancora migliore.)
un CVn

@KorayTugay: in generale, la risposta a "Ho bisogno di un RAMDisk?" è quasi sempre "No. Se ne avessi davvero bisogno, sapresti abbastanza che non dovresti chiedere." Cosa stai facendo che ti fa pensare che ne avrai bisogno?
Afrazier

@afrazier sviluppo / test con un enorme database e accedo molte volte per e molti dati vengono recuperati da esso. Terrò il db nel montone. Lo faccio per 8 10 ore al giorno e aspettare 4 5 secondi sembra troppo lungo dopo un po 'di tempo. Devo colpire il db più velocemente.
Koray Tugay,

5
Qualsiasi DBMS competente manterrà il maggior numero possibile di DB nella RAM. Se il tuo DB è abbastanza piccolo da stare in un disco RAM, è abbastanza piccolo da stare solo nella RAM. L'ottimizzazione corretta del DBMS con un SSD ti fornirà le prestazioni che stai cercando: per lo sviluppo locale, puoi persino trarre vantaggio da cose come scrivere nella cache e preoccuparti meno di ACID. Un disco RAM sta combattendo il sistema.
Afrazier

4

La vera causa della risposta "no" non è solo il confronto delle differenze tra i due, ma perché il sistema operativo alla fine memorizzerà nella cache i dati letti dall'SSD. Memorizzerà questo nella tua RAM . Quindi una lettura a blocchi dall'SSD significa anche una scrittura a blocchi nella RAM. Sempre.

Questo è il motivo per cui i dischi RAM sono più veloci anche in combinazioni hardware molto speciali (ad esempio un SSD molto veloce è stato combinato con una RAM molto lenta).


1
Questa è in realtà la migliore risposta.
ChrisInEdmonton,

sudo zfs set primarycache=none tankEcco la tua cache basata su RAM. (Supponendo ovviamente che stai usando ZFS.)
un CVn

@ MichaelKjörling Esatto, e anche su costruzioni non zfs ci sono possibilità di disattivare la cache di lettura. Ma anche in questo caso, se si effettua una chiamata $ read () $, sarà effettivamente una copia dall'SSD alla RAM. Non puoi evitarlo, tranne se stai leggendo i dati in qualche modo direttamente nella cache della CPU (il che significa anche che eviti in qualche modo il DMA), AMD cpus (e forse Intel) hanno un gestore di memoria integrato, penso che la loro versione leggermente modificata potrebbe in qualche modo farlo. Ma anche in questo caso sarebbe necessario modificare la CPU.
Peter - Ripristina Monica il

3

Per rispondere alla domanda attuale: No. La RAM ha un ordine di grandezza maggiore larghezza di banda e un ordine di grandezza minore latenza. Non è nemmeno vicino.

Per rispondere alla domanda che non stai ponendo: quello che stai pianificando di fare è una cattiva idea, a meno che tu non abbia un caso d'uso molto specifico che richiede quel tipo di larghezza di banda. Se hai davvero bisogno di quel tipo di velocità, ottenere un SSD basato su PCIe (come un ioDrive o un Intel 910 sarà molto più veloce di un sacco di SSD SATA in RAID-0.

Qualsiasi SSD attuale sarà abbastanza veloce per i carichi di lavoro dei consumatori e degli entusiasti da essere il collo di bottiglia.


In realtà, la latenza DDR3 non è un ordine di grandezza inferiore a quello di un SSD. È tre o quattro ordini di grandezza inferiori. Vedi la mia risposta per alcuni numeri reali. (La differenza di larghezza di banda è sicuramente nel campo di gioco, tuttavia.)
un CVn il

La latenza non è importante, perché l'IO avviene in blocchi. Almeno in blocchi 4K. La larghezza di banda è importante.
Peter - Ripristina Monica

@PeterHorvath: la latenza è ancora un grosso problema con gli SSD. Guarda tutte le ricerche e i parametri di riferimento sulla coerenza e sui problemi di balbuzie che i primi SSD avevano. E come menzionato da Michael Kjörling, la latenza della RAM è inferiore di diversi ordini di grandezza rispetto a SSD. La latenza nelle cache Lx è ancora significativamente più bassa e la latenza del registro CPU è ancora inferiore. E tutto conta per le prestazioni.
Afrazier

1

La RAM sarà sempre più veloce di qualsiasi sistema di bus periferico (come SATA) possa offrire.

Ma quando hai a che fare con un disco RAM non hai a che fare solo con la RAM. C'è anche un sacco di software (il file system e i driver di dispositivo) per considerare che "converte" la RAM grezza in qualcosa che il sistema operativo vedrà come memoria del disco.

La velocità con cui un disco RAM sarà realmente dipende totalmente dalla qualità di quel software.

Detto questo: normalmente dovrebbe essere ancora più volte più veloce come soluzione di archiviazione più veloce che puoi collegare alla scheda madre.

Potrebbero esserci alcuni casi angolari in cui specifici schemi di utilizzo ridurranno la differenza o quasi lo zero, ma senza ulteriori dettagli su ciò che si intende fare con un tale sistema è impossibile dire se ciò si applicherà alla propria situazione.

PS Tieni presente che un disco RAM sarà volatile. Dopo l'avvio della macchina dovrai inizialmente caricarlo con i dati. Allo spegnimento della macchina dovrai salvare il contenuto (se necessario per la prossima esecuzione). Se il sistema si arresta in modo anomalo, si perde il disco RAM con l'obiettivo di salvare qualcosa.
Questo è qualcosa che dovrai prendere in considerazione, specialmente se ti aspetti riavvii frequenti. Salvare / Ricaricare il contenuto del disco RAM potrebbe essere meno che banale.


Terrò il mio database in ram.
Koray Tugay,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.