Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzo di Intel Optane Storage per SQL Server

Nozioni di base su Intel Optane SSD DC P4800X

La serie Intel Optane SSD DC P4800X è stata introdotta nel primo trimestre del 2017, inizialmente con una capacità di 375 GB e successivamente con una capacità di 750 GB rilasciata più avanti nel 2017. Intel ha anche recentemente rilasciato una versione da 1,5 TB di questa unità che è ancora difficile da inserire il canale di vendita al dettaglio. Tutte queste unità utilizzano un'interfaccia PCIe NVMe 3.0 x4 e sono disponibili in due diversi fattori di forma, il primo è una scheda aggiuntiva HHHL (half-height half-length) (AIC) che va in uno slot di espansione PCIe e il secondo è un fattore di forma U.2 da 15 mm per unità da 2,5 pollici che si collegano tramite PCIe 3.0.

La tecnologia di archiviazione 3D XPoint di Intel è fondamentalmente diversa dalla tradizionale memoria flash NAND. Le elevate prestazioni dell'SSD DC P4800X a profondità di coda ridotte lo rendono un'unità molto più semplice da cui ottenere prestazioni molto elevate nel mondo reale, soprattutto per l'utilizzo di SQL Server. Gli SSD Intel Optane hanno una latenza circa 10 volte inferiore e un throughput 5-8 volte migliore a basse profondità della coda rispetto agli SSD PCIe NVMe NAND più veloci. Hanno anche una maggiore resistenza in scrittura rispetto allo storage flash NAND aziendale "ad alta intensità di scrittura" e le loro prestazioni non si deteriorano poiché sono quasi esaurite. Hanno tempi di risposta in lettura coerenti con un carico di lavoro di scrittura molto pesante e, a differenza delle tradizionali unità flash NAND, non si verificano perdite di prestazioni con unità di capacità inferiore rispetto alle unità di capacità maggiore della stessa linea di prodotti. Per i carichi di lavoro a bassa latenza, attualmente non c'è nulla che si avvicini all'unità SSD Intel Optane DC P4800X.

Specifiche Intel Optane SSD DC P4800X

Intel valuta la serie Optane SSD DC P4800X a 2500 MB/s per le letture sequenziali, 2200 MB/s per le scritture sequenziali e 550.000 IOPS sia per le letture che per le scritture. La loro latenza nominale è di 10 µs (microsecondi) sia in lettura che in scrittura. A scopo di confronto, Intel valuta l'attuale generazione 3D-NAND, SSD DC P4600 a celle a tre livelli a 3200 MB/s per le letture sequenziali, 1575 MB/s per le scritture sequenziali e 610.000 IOPS per le letture e 196.650 IOPS per scrive. La loro latenza nominale è di 85 µs per le letture e 15 µs per le scritture.

Il prezzo attuale è di circa $ 1200,00 per la dimensione da 375 GB e di circa $ 2500,00 per la dimensione da 750 GB. La dimensione di 1,5 TB è ancora difficile da ottenere nel canale di vendita al dettaglio, ma il prezzo dovrebbe essere più o meno lo stesso per GB delle unità di capacità inferiore. Nella maggior parte dei casi, vorrai ottenere due unità identiche e quindi creare un array RAID 1 software utilizzando gli spazi di archiviazione di Windows per ottenere la ridondanza senza alcuna perdita di prestazioni.

È necessario assicurarsi di scaricare e installare i driver Intel Datacenter NVMe Microsoft Windows per SSD Intel anziché utilizzare il driver Microsoft NVMe generico. Dovrai anche scaricare e installare lo strumento di aggiornamento del firmware Intel SSD per assicurarti di avere il firmware più recente installato su ciascuna unità Optane.

Scenari di utilizzo primari di SQL Server

Queste caratteristiche prestazionali rendono queste schede Intel Optane estremamente adatte per molti carichi di lavoro tempdb intensi, in particolare carichi di lavoro OLTP pesanti e situazioni in cui si utilizza l'isolamento degli snapshot in lettura (RCSI) sui database degli utenti (che inserisce il carico di lavoro dell'archivio delle versioni risultante su tempdb).

Ho ottenuto ottimi risultati utilizzando queste unità Intel Optane SSD DC P4800X per istanze di SQL Server con carichi di lavoro tempdb estremamente impegnativi. Diversi client recenti hanno spostato i file di database tempdb da un altro tipo di archiviazione a un'unità logica supportata da un paio di schede di archiviazione Intel Optane SSD DC P4800X PCIe NVMe (in un array RAID 1 software). Un caso d'uso classico è lo spostamento di tempdb dall'archiviazione condivisa su una SAN con un'istanza del cluster di failover tradizionale all'archiviazione locale su ciascun nodo del cluster, operazione che è possibile eseguire con SQL Server 2012 e versioni successive. Un altro caso d'uso è semplicemente lo spostamento dei file tempdb dalla posizione corrente alla nuova unità logica mappata all'array RAID 1 Optane su un'istanza del server autonomo, indipendentemente dalla versione di SQL Server in uso.

Queste unità Optane sono relativamente economiche e offrono il tipo di storage tradizionale in modalità blocco più veloce attualmente disponibile, nessuno escluso. Sono trasparenti per SQL Server e funzionano in qualsiasi sistema che supporta slot PCIe 3.0 x4 come schede aggiuntive HHHL o unità collegate U.2. Funzioneranno anche con versioni legacy di SQL Server (purché il tuo sistema operativo e hardware lo supportino). È abbastanza comune vedere un'elevata latenza di scrittura a livello di file sui file di dati tempdb dal DMV sys.dm_io_virtual_file_stats, quindi il semplice spostamento dei file di dati tempdb nell'archiviazione Optane è un modo per risolvere direttamente il problema, che potrebbe essere più rapido e molto più semplice di ottimizzazione del carico di lavoro convenzionale.

Se riscontri problemi di contesa di allocazione in tempdb (che di solito ha poco a che fare con le prestazioni sottostanti delle unità in cui si trova tempdb), dovresti seguire le indicazioni di Pam Lahoud di Microsoft nel suo post sul blog TEMPDB – Files e traccia flag e aggiornamenti, oh mio! Avere un'archiviazione estremamente veloce per tempdb aiuterà indirettamente con i problemi di contesa di allocazione in tempdb, ma è molto importante seguire le attuali linee guida Microsoft relative alla configurazione di tempdb, ai flag di traccia e alle patch di SQL Server per risolvere più direttamente i problemi di contesa di allocazione in tempdb.

Un altro possibile utilizzo dell'archiviazione Intel Optane è come una casa per i file di registro delle transazioni del database utente, soprattutto se si dispone di più database utente che hanno il file di registro delle transazioni situato sulla stessa unità logica o se si vedono attese WRITELOG elevate la tua istanza È una possibile alternativa all'utilizzo della proprietà di durabilità ritardata di SQL Server (che richiede SQL Server 2014 e presenta un rischio di perdita di dati) o all'utilizzo della funzionalità del buffer di registro permanente di SQL Server (che richiede SQL Server 2016 SP1 e NV-DIMM per l'hosting di File di registro delle transazioni "tail of the log" da 20 MB).

Ho anche un paio di client (con database più piccoli) che hanno semplicemente spostato TUTTI i dati del database utente e i file di registro, insieme ai file tempdb nell'archiviazione Optane con risultati eccellenti.

Risultati del test CrystalDiskMark

Intel produce una versione consumer di fascia alta di Optane SSD DC P4800X, che è Intel Optane 900P. Hanno anche un Intel Optane 905P leggermente più nuovo e veloce. Ho una scheda Intel Optane 900P PCIe da 480 GB nella mia workstation AMD Ryzen Threadripper 2950X, insieme a una vecchia scheda Intel SSD 750 PCIe da 400 GB basata su NAND. Un rapido test CrystalDiskMark fornisce i risultati mostrati nelle Figure 1 e 2. Il test più rilevante è il trasferimento 4K con un QD di 1 con 1 thread di esecuzione, come mostrato nella riga inferiore.

Figura 1:risultati Intel Optane 900P da 480 GB

Figura 2:risultati Intel SSD 750 PCIe NVMe da 400 GB

Se si riscontrano un'elevata latenza di archiviazione o colli di bottiglia di I/O casuali con il carico di lavoro, è possibile ottenere un notevole miglioramento delle prestazioni semplicemente spostando i file SQL Server pertinenti da dove si trovano ora all'archiviazione Intel Optane. Questo può essere fatto per una quantità di denaro relativamente piccola e funzionerà con qualsiasi versione di SQL Server. Questo potrebbe aiutarti a ottenere una durata extra da un server legacy esistente fino a quando non sarai in grado di eseguire l'aggiornamento.