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

Di quanta RAM ha bisogno il tuo nuovo server di database?

Una domanda che si pone abbastanza frequentemente è come determinare quanta RAM fisica dovrebbe essere presente in un server di database che esegue SQL Server 2012. Una delle prime informazioni necessarie per determinare questa è quale versione ed edizione di SQL Server verrà eseguita sul tuo nuovo server.

Diverse versioni ed edizioni di SQL Server a 64 bit hanno limiti di licenza diversi per la quantità di RAM fisica che possono utilizzare per scopi diversi, come mostrato nella Tabella 1.

Versione Edizione Limite motore Limite SSAS
SQL Server 2008 Standard

Limite OS

Limite OS
Impresa

Limite OS

Limite OS
SQL Server 2008 R2 Standard

64 GB

64 GB
Impresa

2 TB

2 TB
Centro dati

Limite OS

Limite OS
SQL Server 2012 Standard

64 GB

64 GB
Business Intelligence

64 GB

Limite OS
Impresa

Limite OS

Limite OS

Tabella 1:limiti della RAM di SQL Server per versione ed edizione

Come puoi vedere dalla tabella 1, SQL Server 2008 potrebbe utilizzare fino al limite del sistema operativo per la RAM fisica sia per le edizioni Standard che Enterprise. Quando Microsoft ha rilasciato SQL Server 2008 R2, ha avuto la cattiva idea (secondo me) di introdurre limiti di RAM fisica inferiori per entrambe le edizioni Standard ed Enterprise. Hanno anche introdotto una nuova edizione Data Center di SQL Server 2008 R2, che aveva il vecchio e familiare limite del sistema operativo come limite di licenza per la RAM fisica.

Limiti di memoria di SQL Server 2012

Quando Microsoft ha rilasciato SQL Server 2012, ha saggiamente eliminato la SKU Data Center Edition, ma ha mantenuto lo stesso limite di 64 GB di RAM artificialmente basso per la Standard Edition. Ho scritto a lungo sul motivo per cui questa è una cattiva idea, quindi non ricapitolerò di nuovo quegli argomenti qui. Basti dire che è un po' ridicolo limitarsi a utilizzare meno di $ 800,00 di RAM DDR3 ECC (64 GB per $ 12 / GB) in un nuovo server a due socket che potrebbe essere costato circa $ 10- $ 15.000 per il server stesso , oltre a circa $ 29.000 per sedici licenze Core di SQL Server 2012 Standard Edition, per non parlare dei costi di archiviazione.

Finora, non vi è alcuna indicazione che Microsoft abbia intenzione di modificare questo limite di RAM per SQL Server 2014, quindi potremmo dover continuare a gestirlo. Un piccolo aspetto positivo di questo limite di RAM è che è per istanza di SQL Server, non per server. Ciò significa che potresti, con un po' di riflessione e pianificazione, decidere di installare due o tre istanze di SQL Server 2012 Standard Edition sulla stessa macchina fisica per sfruttare tutta la memoria, il processore e le risorse di archiviazione della macchina, se lo desideri per gestire l'utilizzo aggiuntivo delle risorse e il sovraccarico di gestione delle istanze denominate. Ciò potrebbe farti risparmiare una notevole quantità di denaro in hardware e costi di licenza di SQL Server 2012 rispetto all'avere due o tre server separati.

Se decidi di limitarti a una singola istanza predefinita di SQL Server 2012 Standard Edition (che preferisco se sono limitato all'edizione Standard), dovresti semplicemente ottenere 64 GB di RAM per il server di database? Penso che la risposta sia un deciso no!

Esempio di configurazione della memoria per SQL Server 2012 Standard Edition

Poiché è di classe server, la RAM DDR3 ECC è così conveniente; Penso che una quantità minima ragionevole di RAM per un nuovo server a due socket sia più vicina a 96 GB di RAM. Ciò ti consentirà di impostare l'impostazione della memoria massima del server a livello di istanza su 65536 MB, che corrisponde esattamente a 64 GB di RAM, lasciando molta RAM in eccesso per il sistema operativo e qualsiasi altra applicazione che potrebbe essere in esecuzione sul server del database.

I principali fornitori di server dispongono di documentazione e strumenti di configurazione della memoria online che consentono di ottenere la migliore configurazione di memoria possibile per la quantità di memoria fisica desiderata. Puoi anche utilizzare uno strumento come CPU-Z per controllare la velocità della memoria del tuo sistema per assicurarti che funzioni alla velocità prevista.

Ad esempio, Dell ha uno strumento di configurazione online qui. Questo strumento ti consente di scegliere il modello di server Dell che desideri, inclusa la famiglia di processori che utilizzerai (quando puoi scegliere) e il numero di processori fisici che saranno effettivamente nel server. Quindi inserisci la quantità di RAM fisica che desideri nel server e scegli le opzioni di affidabilità della memoria desiderate (come mirroring della memoria, rank sparing, ecc.), Quindi lo strumento visualizzerà tre diverse possibili configurazioni di memoria:configurazione nominale, Massime prestazioni e configurazione bilanciata. Queste configurazioni mostrano il tipo, il numero e la dimensione dei moduli di memoria che dovresti usare e quali canali di memoria e slot dovresti popolare per soddisfare l'opzione di configurazione scelta.

Se scegli un server Dell PowerEdge R720 a due socket, con due dei nuovi processori Intel Xeon E5-2600 v2 (Ivy Bridge-EP) a 22 nm e selezioni 96 GB di RAM senza altre opzioni di affidabilità della memoria, otterrai tre memorie suggerite opzioni di configurazione. L'opzione Prestazioni massime suggerisce dodici RDIMM 1R x4 da 8 GB a 1866 MHz, con slot 0 sui canali 1-4 popolati e slot 1 sui canali 1-2 popolati per ciascun processore. Questo ti offre una velocità di memoria di sistema di 1866 MHz, che è la massima supportata dalla nuova serie di processori Intel Xeon E5-2600 v2.

A proposito, se utilizzerai SQL Server 2012 Standard Edition, il processore esatto che desideri in un Dell R720 è l'Intel Xeon E5-2667 v2, che ha otto core fisici con una velocità di clock di base di 3,3 GHz. Avere un modello con un numero di core più elevato comporterebbe il limite di 16 licenze core fisiche per SQL Server 2012 Standard Edition.

L'opzione di configurazione bilanciata suggerisce dodici RDIMM 1R x4 da 8 GB a 1600 MHz, con slot 0 sui canali 1-4 popolati e slot 1 sui canali 1-2 popolati per ciascun processore. Questo ti dà una velocità di memoria di sistema di 1600 MHz, che consumerà un po' meno energia elettrica rispetto all'opzione Prestazioni massime.

L'opzione di configurazione nominale suggerisce ventiquattro RDIMM da 4 GB 1333 MHz 1R x8 con tutti gli slot su tutti i canali popolati per ciascun processore. Questo ti dà una velocità di memoria di sistema di 1333 MHz, con tutti i tuoi slot popolati con RDIMM da 4 GB piuttosto piccoli. Questa è una scelta non ottimale, progettata per risparmiare sui costi della memoria utilizzando DIMM di capacità inferiore e velocità inferiore. Sfortunatamente, qui ci sono pochi risparmi monetari reali, al costo di rinunciare a una discreta quantità di prestazioni di memoria e di non avere slot di memoria vuoti.

Con i processori Intel Xeon serie E5-2600 ed E5-2600 v2, otterrai la larghezza di banda di memoria più elevata possibile se si popolano solo uno o due slot per canale di memoria. Il popolamento del terzo slot di memoria provoca una diminuzione della velocità della memoria di sistema. La quantità massima di memoria che è possibile utilizzare alla massima velocità di memoria di sistema utilizzando RDIMM economici da 16 GB è 256 GB, che sarebbero sedici RDIMM da 16 GB, che popolano tutti gli slot sui canali 1 e 2. Non vi è alcun vantaggio in termini di velocità della memoria di sistema avendo meno di 256 GB di RAM in un server a due socket con due processori della serie Xeon E5-2600 o E5-2600 v2.

Anche se è meglio cercare di trovare una configurazione di memoria che produca la massima velocità di memoria di sistema possibile per una determinata quantità di RAM, nella mia esperienza (e nella maggior parte dei benchmark applicativi effettivi che ho visto), la differenza di prestazioni nel mondo reale tra diverse velocità della memoria di sistema è molto più piccola di quanto ci si potrebbe aspettare, abbastanza spesso nell'intervallo del 5-10% o meno. Per l'utilizzo di SQL Server Enterprise Edition, preferirei disporre di RAM sufficiente per contenere l'intero carico di lavoro nel pool di buffer piuttosto che selezionare una quantità inferiore di RAM per ottenere la massima velocità di memoria possibile al costo di dover estrarre più dati dal sottosistema di archiviazione spesso. Anche la RAM "lenta" ha una latenza di ordini di grandezza inferiore rispetto a qualsiasi tipo di sottosistema di archiviazione, incluso lo spazio di archiviazione basato su flash.

Se il mio carico di lavoro non rientrasse in 256 GB di RAM, preferirei aggiungere più RAM e prendere il colpo di velocità della memoria di sistema piuttosto che dover accedere più spesso al sottosistema di archiviazione molto più lento. Quindi, per ricapitolare, penso che il punto debole della memoria per SQL Server 2012 Standard Edition per questo tipo di server sia 96 GB, salendo a 256 GB per SQL Server 2012 Enterprise Edition (a meno che il carico di lavoro non sia maggiore di 256 GB).