Qualcuno è a conoscenza di confronti che mostrano come gli SSD si confrontano con gli HDD per le prestazioni in un ambiente SQL?
Sto cercando di capire quale tipo di vantaggio in termini di prestazioni potrebbe essere ottenuto passando a SSD.
Qualcuno è a conoscenza di confronti che mostrano come gli SSD si confrontano con gli HDD per le prestazioni in un ambiente SQL?
Sto cercando di capire quale tipo di vantaggio in termini di prestazioni potrebbe essere ottenuto passando a SSD.
Risposte:
Se stai facendo una grande quantità di letture piccole, gli SSD sono molto più veloci. Ecco uno dei pochi confronti che ruotano attorno alle prestazioni del database. Guarda il grafico in basso per la risposta breve.
Per le prestazioni non elaborate, gli SSD offrono molti vantaggi, il principale è che il tempo di ricerca è effettivamente 0, il che significa che tutti i piccoli hit HD che un database fa vengono gestiti molto più velocemente.
Ci sono tuttavia alcune preoccupazioni con l'attuale generazione sulla vita in scrittura, poiché dopo così tante scritture un blocco non è più utilizzabile. Riescono a scrivere un bel po ', credo che le informazioni fornite dicano intorno a un petabyte di byte per le loro unità da 32 GB prima che inizino a raggiungere livelli pericolosi di articoli ... questo migliorerà solo con il tempo.
Per una migliore comprensione del motivo per cui funzionano in modo molto migliore, leggi questo articolo di Anandtech sugli SSD . Entra nel dettaglio delle unità, di ciò che è buono, di ciò che non lo è e dei dettagli di come funzionano. Nella parte superiore è anche presente un collegamento a un articolo di follow-up che copre le ultime serie di unità.
È possibile installare il sistema operativo e il software SQL su un disco rigido standard e quindi aggiungere un SSD per contenere solo i file del database. Ciò dovrebbe limitare il numero di scritture riscontrate dall'unità SSD e massimizzare anche la quantità di spazio disponibile per i dati sull'unità.
ti consiglio di leggere il seguente documento Migrazione dell'archiviazione server su SSD: Analisi dei compromessi , è una lettura piuttosto piacevole.
Secondo me non ci sono ancora abbastanza benefici dagli SDD nell'area server. Forse tra qualche anno potrebbe valere la pena acquistarlo, i bot per ora HDD sono una scelta migliore.
La risposta di Nick Craver è buona; Voglio solo aggiungere due avvertimenti agli SSD di cui penso che le persone dovrebbero essere a conoscenza:
a) I problemi di SSD con l'usura della scrittura non stanno scomparendo, sono fondamentali per le celle flash utilizzate. Le celle SLC hanno una resistenza di scrittura molto più elevata rispetto a MLC, quindi l'OP dovrebbe prendere in considerazione l'idea di ottenere un'unità SLC su MLC. Naturalmente, SLC è anche significativamente più costoso.
b) I dati correnti memorizzano nella cache i dati sull'unità prima di scriverli. Pertanto esiste il rischio di perdita di dati se si interrompe l'alimentazione durante un'operazione di scrittura. È qualcosa su cui puoi aggirare, ma la cache è lì sia per le prestazioni, sia per ridurre l'amplificazione della scrittura.
IMHO nessuno dei precedenti è un dealbreaker. Sarei pronto a distribuire gli SSD alla produzione oggi, ma con una pianificazione prima.
Qualcosa da tenere a mente.
Se stai colpendo il database abbastanza da rallentare le tue letture e hai bisogno di SSD, allora devi correggere i tuoi indici o cercare di aggiungere più RAM al server.
La maggior parte dei server di database, una volta ottimizzati, non necessita di SSD per funzionare correttamente.
Leggi questo articolo (abbastanza vecchio - 2009):
Riepilogo: sostituisci le unità SAS RPM 24 x 15k con 6 (sì sei) SSD e ottieni ancora il 35% di prestazioni in più. Questo è accaduto con gli Intel X25M che non sono più i migliori per gli SSD.
Per gli utenti del database questo è fantastico poiché puoi avere server più piccoli e più veloci che consumano meno energia.
Una cosa da considerare è avere il log delle transazioni su un HDD e il tuo MDF su un SSD. Anche la durata della vita dipenderà molto dal tipo di applicazione. OLTP può masterizzare rapidamente anche se i dati staticamente ragionevoli non dovrebbero avere problemi.
La mia esperienza è stata mescolata qui ...
Test su Windows 7 con SQL Server 2008 Express R2. In esecuzione su un desktop i7 con un Sandy Bridge e un ram installato 12G (penso DDR3?). Scusate il fatto che l'installazione sia desktop, subito dopo ho visto quanti record posso gestire sulla piattaforma i7 prima di creare un server.
Ho eseguito questi test per la prima volta sull'unità 7200rpm da 1,5 TB installata per ottenere i tempi di base.
10k record con procs di aggiornamento, ottimizzato le tabelle per archiviare i dati precedentemente correlati in una tabella piatta, aggiunti indici fino a quando non ho ridotto i tempi a pochi secondi come punto di partenza, quindi ho duplicato i record fino a 1,2 milioni e ho ottenuto un timing di 0: 3: 37 per gli stessi aggiornamenti. 3 1/2 minuti non sono male per questa configurazione non raid.
La duplicazione dei record fino a 2,56 milioni mi ha portato a un tempo di 0:15:57 - quasi un aumento di 5 volte. Probabilmente dovuto principalmente al paging oltre la memoria 12G installata.
Installato il disco SSD e spostato i database, il tempo è effettivamente aumentato a poco più di 20 minuti. Suppongo che ciò sia dovuto al fatto che i file di paging sono per disco rigido e non ce n'era nessuno per impostazione predefinita sull'unità SSD in quanto non era installato come unità del sistema operativo (bluescreens a volontà quando l'ho provato).
Aggiunto un file di paging all'unità SSD e rieseguito il test, 0: 5: 52 -m, quindi il file di paging sembra aver fatto il trucco, ma non sono sicuro che un file di paging sia adatto per un'unità SSD per tutti i motivi sopra indicati, sono fortemente scritti e possono aggiungere un'eccessiva usura sull'unità.
Un avvertimento, ho anche abilitato Smartboost su quell'unità e che potrebbe anche aver influenzato i tempi, si ripeterà senza di essa.
Il mio miglior senso è che è più facile aggiungere memoria in questi giorni, e per il costo forse un raid 0 + 1 di dischi ibridi farebbe un lavoro altrettanto buono senza i problemi.
modifica: disabilita il file di paging sull'SSD e lascia che smart boost faccia il suo lavoro, i tempi sono migliorati da 5:52 minuti a 4:55 minuti per 2,56 milioni di record con una serie di 3 aggiornamenti ciascuno. Adesso proverò la cache ssd 8G sull'unità ibrida seagate 750G. quindi se non è male, li proverò nel raid 0 + 1.
ultimo aggiornamento su questo dato che si tratta di un vecchio thread - ma volevo mettere i risultati che ho ottenuto lì in modo che qualcuno possa trovarli.
Spostando il database su Seagate 750G Hybrid con una cache SSD 8G, ho eseguito il test alcune volte in modo che la cache SSD potesse apprendere. Mi dà un tempo di 5:15 m: s per lo stesso test, aggiornando 2,56 milioni di record, il che è abbastanza vicino alle prestazioni dell'SSD (4:55 m: s con Intel Smartboost) per me da considerare il costo.
A circa $ 50 in più ($ 239 contro $ 189 in questo momento) l'ibrido fornisce oltre 6 volte lo spazio di archiviazione e quasi le stesse prestazioni, senza eseguire alcun software aggiuntivo per l'ottimizzazione. In un raid 0 + 1 mi aspetto di migliorare notevolmente i tempi e questa unità ha una garanzia di 5 anni, spera che non ne avrò bisogno.
Personalmente, non userei SSD per i motivi già menzionati; rallenteranno gradualmente prima di fallire. Non sappiamo ancora veramente quando sarà - le stime attuali sono proprio questo - stime. Ricordi quando acquistammo tutti quei CD "indistruttibili" all'inizio / metà degli anni '80? Alcuni anni dopo, abbiamo considerato la memorizzazione a termine dei dati su CD tanto folle quanto l'utilizzo di floppy disk.
Se l'hardware, il sistema operativo e il DB sono tutti configurati correttamente, non sarà necessario giocare d'azzardo su SSD.
Tra qualche anno, quando i prodotti saranno maturati un po ', sarà uno scenario diverso. Ma fino ad allora ...
L'articolo di Microsoft Research riguarda il costo per GB anziché il guadagno in termini di prestazioni. In realtà non si adatta e testa le unità ma utilizza un algoritmo di retro-casting basato su file di registro provenienti da server reali.
Alcune cose che vengono in mente con SSD e SQL:
1 / Se trascuri di aggiungere gli indici giusti, SSD sarà molto più indulgente poiché i tempi di ricerca casuali sono così bassi.
2 / I costi sono decisamente inferiori rispetto a quando lo studio è stato svolto e per le piccole applicazioni Web, ad esempio per l'esecuzione del back-end di un'app del telefono, non dei server Exchange aziendali, le prestazioni potrebbero ridurre le spese per l'assunzione di un consulente per ottimizzare SQL Server.
3 / Una singola unità SSD con copia shadow deve sicuramente essere più economica di un gruppo di mandrini in un armadio RAID, controller e connessioni. Per non parlare della potenza, del riscaldamento e dello spazio del rack.
4 / I mandrini sono noti per essere la parte che più comunemente muore su un computer. L'SSD non ha parti in movimento e un'ora di inattività potrebbe costare il prezzo di un SSD in una volta sola.
5 / L'usura è un problema ma hanno dei modi per gestirlo (che coinvolgono blocchi di scattering) che sono possibili perché i dati frammentati casualmente non rallentano un SSD. Inoltre, un piccolo database su un disco di grandi dimensioni probabilmente non si esaurirà in tempo per acquistarne uno più economico in futuro.
6 / C'è una tendenza verso database non relazionali e fare join nel livello intermedio. Questo potrebbe davvero cambiare le cose: I / O a semplici tabelle non indicizzate su unità SSD su frammenti senza penalità per le prestazioni e con una proposta di ridimensionamento molto più semplice. Risparmio anche sulle licenze di SQL Server per frammento.
7 / Questo è tutto teorico. Se qualcuno ha test delle prestazioni del mondo reale contro i mandrini, mi piacerebbe vedere.
Luca