Costruire il server di produzione ideale per Microsoft SQL Server 2012 può essere un'impresa ardua, con variabili come lo storage, la RAM o la scelta del processore che mettono in difficoltà anche gli amministratori IT più esperti. Abbiamo pubblicato di recente un'analisi sulla scelta della migliore CPU Intel Xeon E5-2600 v2 per l'esecuzione di SQL Server 2012 in ambienti non virtualizzati. Oltre alla CPU, la RAM è un altro componente chiave da considerare quando si valutano le prestazioni di SQL in esecuzione su hardware fisico. Per questo test abbiamo utilizzato la stessa piattaforma di test dello studio sui processori Intel, concentrandoci questa volta sul confronto tra la RAM Micron PC3-12800 e la CPU e lo storage con le migliori prestazioni per valutarne l'impatto sulle performance.
Tradizionalmente, una quantità maggiore di RAM per SQL Server offre prestazioni più elevate. L'utilizzo di RAM aggiuntiva riduce l'ingombro di I/O su un determinato array di storage e offre anche alcuni vantaggi di memorizzazione nella cache. Mantenendo tutto invariato, esaminiamo quanta RAM puoi dedicare a SQL Server pur mantenendo un profilo a bassa latenza. In questo articolo mostriamo l'impatto sulle prestazioni dell'allocazione di 128 GB dedicati a SQL Server, che è il luogo in cui attualmente testiamo i dispositivi per le revisioni aziendali, fino a 8 GB.
Banco di prova
Per questa analisi stiamo valutando la memoria DDR3 Micron PC3-12800 all'interno di un server Supermicro SuperStorage Server 2027R-AR24NV con Windows Server 2012, un server 2U dual-socket che supporta le CPU Intel della famiglia E5-2600 e E5-2600 v2. La RAM di sistema è composta da sedici DIMM Micron PC3-12800 da 16 GB che rimangono statici per ogni test. Per modificare la quantità di RAM utilizzata da SQL Server, modifichiamo l'impostazione di allocazione, limitandola a una quantità selezionata per ogni step. Abbiamo utilizzato l' unità Fusion ioMemory PX600 da 2.6 TB per l'archiviazione interna, che ha registrato ottimi valori di latenza per SQL Server (il prodotto di attuale generazione più veloce testato nel nostro laboratorio).
Configurazione del server
- 2 processori Intel Xeon E5-2687W v2 – 25 MB di cache, 3.40 GHz, 8 core
- Chipset Intel C602
- Memoria: RDIMM registrati Micron DDR256 da 16 GB (16x 1600 GB) a 3 MHz (128 GB dedicati al sistema, 8-128 GB dedicati a SQL)
- Windows Server Standard 2012
- 3 HBA Supermicro SAS3 (controller LSI SAS 3008)
- SSD di avvio Micron P200m da 400 GB
- 1 adattatore Mellanox ConnectX-3 VPI PCIe 3.0 a doppia porta (tessuto InfiniBand LoadGen)
- 1 adattatore Emulex OCe11102 doppia porta 10GbE
Configurazione di archiviazione
- SanDisk Fusion ioMemory PX600 da 2.6 TB
- Provisioning eccessivo dell'80% in modalità ad alte prestazioni
- Assorbimento di piena potenza abilitato
- Firmware/driver VSL 4.1.1
Cookie di prestazione
Ciascun intervallo di incremento della RAM specificato è stato testato nello stesso modo: utilizzando il nostro benchmark OLTP di SQL Server 2012 con il database residente sul PX600 all'interno del server Supermicro 2P a nodo singolo. Come per la maggior parte dei dispositivi di storage della stessa classe, non ci preoccupiamo tanto delle transazioni al secondo; l'attenzione si concentra piuttosto sulla latenza necessaria al completamento di ciascuna transazione.
Come previsto, quantità maggiori di RAM allocata al server SQL hanno consentito prestazioni transazionali più elevate. Tra 128 GB e 64 GB non abbiamo riscontrato un enorme cambiamento nel TPS. In effetti, il calo tra 96 GB e 64 GB è rimasto all'incirca nello stesso margine di errore. La differenza da 16 GB a 8 GB ha comportato il cambiamento più grande, il che ci dice che 16 GB è probabilmente la soglia minima utile per questo particolare test e configurazione del server.
Concentrandoci sulla latenza, vediamo quanto bene Fusion ioMemory PX600 abbia mantenuto le sue prestazioni a bassa latenza con risultati di 128 GB, 96 GB e 64 GB con punteggi compresi tra 2 e 3 ms. Il calo a 32 GB ha aumentato la latenza di circa il 66%, ma il successivo calo a 16 GB è stato molto più drammatico. Questa modifica ha aumentato la latenza del 200%, che è poi aumentata di un altro 153% quando la RAM è stata ridotta a 8 GB.
Sebbene l'impatto sullo spazio di archiviazione non sia stato mostrato nell'ambito di questo test, ogni aumento nell'allocazione della DRAM ha ridotto drasticamente il carico rilevato dal dispositivo di archiviazione su cui risiedeva il database. In breve, più memoria si traduce in un minor numero di richieste che colpiscono lo spazio di archiviazione, rimanendo invece nella memoria di sistema. Mentre 128 GB di RAM avevano un carico in background di 50-100 MB/s, 16 GB sono aumentati a 800 MB/s (non durante l'attività di scrittura dei log che può causare picchi elevati per qualsiasi configurazione DRAM). Con un supporto di memorizzazione minore questi risultati sarebbero ancora più elevati.
Conclusione
Quando si mette insieme un SQL Server non virtualizzato ad alte prestazioni ci sono molte considerazioni. Nel primo pezzo abbiamo esaminato la CPU e il suo impatto sulle prestazioni SQL. Qui utilizziamo lo storage interno all'host e le CPU più performanti per mettere alla prova la RAM. In collaborazione con Micron abbiamo eseguito gli stessi test, spaziando da 8 GB a 128 GB di RAM dedicata a SQL. I risultati sono piuttosto intuitivi, generalmente una quantità maggiore di RAM è migliore in termini di latenza. C'è però un punto di rottura in cui la latenza vede un picco drammatico in questa configurazione. A 16 GB la latenza aumenta di 3 volte rispetto a 32 GB e a 8 GB l'impatto è ancora più grave. Per prestazioni ottimali, 128 GB di RAM per SQL con CPU alla massima velocità di clock e uno spazio di archiviazione PCIe leader generano una latenza di soli 2 ms.
Pagina del prodotto Crucial/Micron
Selezione della migliore CPU Intel Xeon E5-2600 v2 per SQL Server 2012




Amazon