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

Selezione di un processore per SQL Server 2012

Poiché Microsoft ha rinnovato il modello di licenza per SQL Server 2012, è particolarmente importante eseguire un'analisi ponderata prima di decidere esattamente quale processore utilizzare per un server di database che eseguirà SQL Server 2012. Il passaggio alle licenze basate su core per SQL Server 2012 Enterprise Edition significa che una decisione negligente su quale processore utilizzare può costare sia una grande quantità di denaro che una grande quantità di prestazioni e scalabilità. Lo stesso problema esiste (in misura minore) con SQL Server 2012 Standard Edition.

La differenza nei costi di licenza di SQL Server 2012 tra una buona scelta di processore e una cattiva scelta di processore può in molti casi pagare più che per l'hardware e il sottosistema di archiviazione. Detto questo, come si fa a scegliere un processore ottimale per SQL Server 2012 Enterprise Edition? Normalmente, il primo passo sarebbe decidere se si desidera utilizzare un processore Intel Xeon o un processore AMD Opteron (SQL Server 2012 non supporta la famiglia di processori Intel Itanium).

Sfortunatamente, è molto difficile creare un buon caso tecnico o aziendale per selezionare un processore AMD Opteron da utilizzare con SQL Server 2012 Enterprise Edition. Dall'introduzione dell'architettura Intel Nehalem (Intel Xeon serie 3500, 5500, 6500 e 7500) nel 2008-2010, AMD semplicemente non è stata in grado di competere con Intel quando si tratta di prestazioni del processore single-thread. AMD non ha le risorse finanziarie o tecniche per competere con Intel in termini di prestazioni o efficienza energetica. Con ogni nuova versione della famiglia di processori di Intel, AMD è rimasta sempre più indietro. Questa non è una buona cosa per l'I.T. industria, poiché la mancanza di una valida concorrenza da parte di AMD rallenterà inevitabilmente il ritmo dell'innovazione di Intel.

Poiché un processore Intel Xeon sembra essere l'unica scelta praticabile per SQL Server 2012, il passaggio successivo è decidere quale delle tante famiglie e modelli Xeon disponibili sarebbe la scelta migliore per il carico di lavoro di SQL Server 2012 previsto. Intel ha diverse famiglie di prodotti Xeon per diversi server con numero di socket. Per le workstation e i server a socket singolo hanno la famiglia Intel Xeon E3. Per workstation e server a due socket hanno la famiglia Intel Xeon E5. Infine, per i server a due, quattro e otto socket (o più), hanno la famiglia Intel Xeon E7.

Poiché questo articolo tratta SQL Server 2012 Enterprise Edition, ignoreremo la famiglia Intel Xeon E3 a socket singolo, poiché i processori Intel Xeon E3 sono limitati all'utilizzo di 32 GB di RAM DDR3. Esistono alcuni scenari di nicchia in cui potrebbe avere molto senso utilizzare un processore Intel Xeon E3-1290V2 in un server a socket singolo con 32 GB di RAM in combinazione con SQL Server 2012 Enterprise Edition. Forse hai un database relativamente piccolo in cui hai bisogno delle prestazioni a thread singolo più veloci in assoluto e hai anche bisogno di funzionalità specifiche dell'edizione Enterprise come i gruppi di disponibilità AlwaysOn di SQL Server.

La scelta più comune è tra un server a due socket e un server a quattro (o più) socket. Dovrai valutare la dimensione e l'intensità del tuo carico di lavoro e decidere se può essere eseguito su un server a due socket più piccolo, ma più veloce, o se dovrai passare a un server a quattro socket più grande e più lento o più grande. Questa decisione è direttamente influenzata dalla capacità totale della CPU richiesta, dalla capacità totale della RAM fisica e dalla capacità I/O totale richiesta (che è correlata al numero e al tipo di slot di espansione PCI-E nel server).

Un malinteso comune è che i server più grandi basati su Intel (in termini di numero di socket) siano server più veloci. Questo semplicemente non è vero, per una serie di ragioni. Il volume delle vendite e la quota di mercato dei server a due socket è molto più elevato di quanto non lo sia per i server a quattro socket e di dimensioni maggiori. C'è anche meno lavoro di progettazione e convalida richiesto per i processori Intel con capacità a due socket rispetto ai processori Intel con capacità a quattro socket. A causa di questi fattori, Intel rilascia nuove architetture di processori più frequentemente e prima per server con un numero di socket inferiore. Attualmente, la famiglia Intel E3 a socket singolo utilizza Ivy Bridge a 22 nm e la famiglia E5 a due socket utilizza Sandy Bridge-EP a 32 nm, mentre la famiglia Intel E7 utilizza la precedente microarchitettura Westmere-EX a 32 nm.

Un altro motivo è che non si ottiene la scalabilità lineare man mano che si aumenta il numero di socket, anche con i processori con architettura NUMA (Non-uniform memory access), che scalano molto meglio rispetto alla vecchia architettura SMP (simmetrica multiprocessing). Ciò significa che un server a quattro socket non avrà il doppio delle prestazioni o della capacità del processore di un server a due socket con lo stesso modello di processore.

Ciò può essere confermato confrontando i risultati del benchmark TPC-E OLTP di sistemi a due socket con processori Intel Xeon E7-2870 con sistemi a quattro socket con processori Intel Xeon E7-4870 e sistemi a otto socket con processori Intel Xeon E7-8870. Anche se si tratta essenzialmente dello stesso processore con le stesse caratteristiche prestazionali individuali, il punteggio del benchmark TPC-E non raddoppia quando si raddoppia il numero di socket, come puoi vedere nella Tabella 1.

Processore Conteggio socket Punteggio TPC-E Numero totale di core Punteggio/core TPC-E
Xeon E7-2870

2

1560.70

20

78.04
Xeon E7-4870

4

2862.61

40

71.57
Xeon E7-8870

8

4614.22

80

57.68

Tabella 1:confronto dei punteggi TPC-E con l'aumento del numero di socket

Quando penso di confrontare processori a socket singolo con due socket, a quattro e otto socket, mi piace usare un'analogia tra auto e camion. Un server a socket singolo è come un'auto da corsa di Formula 1, essendo estremamente veloce ma con una capacità di carico molto ridotta. Un server a due socket è come una Tesla Model S, essendo molto veloce e con una capacità di carico abbastanza decente. Un server a quattro socket è come un grande SUV, essendo più lento ma con una capacità di carico maggiore rispetto a una Tesla Model S. Infine, un server a otto socket è come un camion Mack, in grado di trasportare un carico enorme a una velocità molto più lenta di un SUV.

Processore Conteggio socket Punteggio TPC-E Numero totale di core Punteggio/core TPC-E
Xeon E5-2690

2

1881.76

16

117.61
Xeon E5-4650

4

2651.27

32

82.85

Tabella 2:confronto dei punteggi TPC-E per due modelli di processore Xeon E5

Confrontando la tabella 1 con la tabella 2, possiamo vedere che la famiglia Intel Xeon E5 fa un po' meglio su TPC-E rispetto alla famiglia Intel Xeon E7, il che non sorprende, dal momento che stiamo confrontando il nuovo Sandy Bridge-EP con il microarchitettura Westmere-EX precedente. Dal punto di vista delle prestazioni, l'Xeon E5-2690 a due socket fa molto meglio dell'Xeon E7-2870 a due socket. A mio parere, non dovresti davvero utilizzare Xeon E7-2870 a due socket per SQL Server 2012 a causa delle sue prestazioni a thread singolo inferiori e dei conteggi di core fisici più elevati (il che significa un costo di licenza di SQL Server 2012 più elevato).

Attualmente, il mio processore per server Intel preferito è l'Intel Xeon E5-2690. Ti offrirà eccellenti prestazioni a thread singolo e costi di licenza di SQL Server 2012 relativamente convenienti. Se è necessario passare a un server a quattro socket, sceglierei un processore Intel Xeon E5-4650 invece di utilizzare un processore Intel Xeon E7-4870, poiché otterrai prestazioni a thread singolo migliori e una licenza SQL Server 2012 inferiore costi. L'utilizzo dei punteggi dei benchmark TPC-E è un modo eccellente per confrontare le prestazioni e l'efficienza delle licenze di SQL Server 2012 di diverse famiglie di processori.