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

Selezione pratica del processore per carichi di lavoro OLTP di SQL Server 2014/2016

Probabilmente non è la CPU che stai cercando.

Immagina di aver appena ottenuto l'approvazione della gestione per un nuovo server di database locale che eseguirà un carico di lavoro OLTP mission-critical con SQL Server 2014 Enterprise Edition in esecuzione su Windows Server 2012 R2 Standard Edition. Questo nuovo server sostituirà un server Dell PowerEdge R910 legacy che esegue SQL Server 2008 R2 Enterprise Edition su Windows Server 2008 R2 Enterprise Edition. Questo server esistente ha quattro processori Intel Xeon X7560 Nehalem-EX da 45 nm (che offrono 32 "core fisici totali nel sistema) e dispone di 512 GB di RAM, che era una configurazione premium quando è stato acquistato nel 2010.

Per questo esempio, hai un budget di licenza hardware e software piuttosto limitato disponibile per l'aggiornamento della piattaforma. Si desidera passare a SQL Server 2014 Enterprise Edition, su un nuovo server con prestazioni della CPU a thread singolo molto migliori (poiché si dispone di un carico di lavoro OLTP) e una maggiore capacità complessiva della CPU, riducendo al minimo i costi hardware e di licenza di SQL Server.

Date queste informazioni, come decideresti quale modello di server scegliere e quale processore esatto selezionare? Faresti entrare qualcuno nell'I.T. il dipartimento prende queste decisioni o verresti coinvolto nella valutazione e nel processo decisionale? Piuttosto che lasciare che "Shon the server guy" decida, voglio mostrarti un metodo semplice e pratico per capirlo, usando i punteggi dei benchmark TPC-E, un po' di semplice aritmetica e un po' di buon senso.

Il primo passo è controllare i punteggi dei risultati del benchmark TPC-E online, cercando il sistema equivalente più vicino al tuo sistema esistente. Se sei fortunato, troverai un invio di benchmark ufficiale che corrisponde esattamente al tuo sistema. Nel nostro caso, ho trovato una richiesta del 10 aprile 2010 che corrisponde esattamente al nostro sistema legacy. Questo sistema Dell PowerEdge R910 aveva un punteggio di throughput TPC-E effettivo di 1.933,96, con quattro processori Intel Xeon X7560 a otto core. Il punteggio effettivo di TPC-E Throughput è una buona misura della capacità complessiva della CPU del sistema, fornendo un'indicazione approssimativa di quante query simultanee è in grado di gestire (supponendo che non ci siano colli di bottiglia relativi alla memoria o alla memoria).

Il secondo passaggio consiste nel prendere il punteggio di throughput TPC-E effettivo per questo sistema e dividerlo per il numero di core del processore fisico nel sistema, per avere un'idea delle prestazioni del processore a thread singolo per il particolare processore nel sistema di riferimento . Per questo sistema, dividiamo semplicemente 1.933,96 per 32 core fisici, per ottenere un "punteggio per core" di 60,44. L'Intel Xeon X7560 ha una velocità di clock di base di 2,26 GHz, con una velocità di clock Turbo di 2,66 GHz. Ha una cache L3 condivisa da 24 MB e una velocità Intel QPI di 6,4 GT/s. Quick Path Interconnect (QPI) è un'interconnessione point-to-point tra la CPU e il controller di memoria integrato, quindi avere velocità QPI più elevate significa un accesso più rapido alla memoria.

Il terzo passaggio consiste nel cercare i risultati del benchmark TPC-E per i sistemi e i processori dell'attuale generazione, cercando di trovare un risultato per un sistema che sia più o meno equivalente al tipo di nuovo sistema che stai considerando. Sfortunatamente, questo a volte sarà difficile perché i fornitori di server non hanno inviato tanti nuovi sistemi come prima e perché inviano sempre sistemi che utilizzano il processore "flagship", il più alto numero di core per una data generazione e famiglia di processori. Ciò aumenta il punteggio di throughput TPC-E effettivo più elevato, ma rende anche un sistema che utilizza quel processore molto più costoso da concedere in licenza per SQL Server a causa del numero di core più elevato. Un altro problema con questi modelli di processori "ammiraglia" è che in genere scambiano conteggi di core fisici più elevati con velocità di clock di base inferiori, quindi si finisce per pagare costi di licenza molto più elevati e ottenere effettivamente prestazioni della CPU a thread singolo inferiori.

La saggezza convenzionale sarebbe che vorresti un nuovo server a quattro socket per sostituire il tuo server a quattro socket esistente. Con i moderni server a due socket, ciò potrebbe non essere più necessario, a seconda dell'entità del carico di lavoro. C'è stato un periodo, dall'inizio del 2012 all'inizio del 2014, in cui i nuovi processori per server della famiglia Xeon E5 a due socket erano molto più veloci per le prestazioni a thread singolo rispetto ai nuovi processori per server della famiglia Xeon E7 a quattro socket. Questo divario di prestazioni si è leggermente ridotto quando la famiglia Xeon E7 v2 Ivy Bridge-EX è stata rilasciata all'inizio del 2014. Da allora, le famiglie E5 ed E7 sono ancora più vicine ora poiché entrambe utilizzano la microarchitettura Haswell.

Data questa quasi parità di prestazioni della CPU, la scelta del modello di server si riduce alla capacità complessiva di memoria, CPU e IO. Gli attuali server a due socket sono praticamente limitati a 768 GB di RAM con DIMM da 32 GB, mentre gli attuali server a quattro socket possono avere 3 TB di RAM con DIMM da 32 GB. La maggior parte dei clienti in cui mi imbatto può eseguire comodamente il proprio carico di lavoro su 768 GB di RAM, ma alcuni in realtà ne hanno bisogno di più. Sia i server a due che a quattro socket possono utilizzare processori Haswell con 18 core fisici ciascuno, quindi hai un limite di 36 o 72 core fisici nel tuo sistema, a seconda del numero di socket.

Per questo esercizio, è disponibile un risultato del benchmark TPC-E per un sistema Fujitsu Primergy RX2540 M1 a due socket con un punteggio di throughput TPC-E effettivo di 3.772,08, utilizzando due processori Intel Xeon E5-2699 v3 a diciotto core Haswell-EP e 512 GB di RAM. Il processore Xeon E5-2699 v3 ha una velocità di clock di base di 2,3 GHz, con una velocità di clock Turbo di 3,6 GHz. Ha una cache L3 condivisa da 45 MB e una velocità Intel QPI di 9,6 GT/s. Per questo sistema, dividiamo il punteggio effettivo di 3.772,08 per 36 core fisici, per ottenere un "punteggio per core" di 104,78.

Questo nuovo sistema a due socket avrebbe quasi il doppio della capacità complessiva della CPU del sistema legacy, con circa 1,57 volte le prestazioni a thread singolo. Dal punto di vista della capacità della CPU e delle prestazioni a thread singolo, sarei abbastanza fiducioso che questo nuovo sistema a due socket sarebbe un buon sostituto del sistema legacy. Questo nuovo sistema avrebbe anche slot di espansione PCIe 3.0, quindi avrà una capacità IO totale maggiore rispetto al vecchio sistema. Sfortunatamente, ha 36 core fisici che richiederanno licenze di SQL Server 2014 Enterprise Edition, che saranno piuttosto costose.

Una scelta di processori migliore potrebbe essere l'Intel Xeon E5-2667 v3, che ha otto core fisici, con una velocità di clock di base di 3,2 GHz, una velocità di clock Turbo di 3,6 GHz, una cache L3 condivisa da 20 MB e un Intel da 9,6 GT/s Velocità QPI. Usando una semplice aritmetica, possiamo regolare le differenze tra Xeon E5-2699 v3 e Xeon E5-2667 v3, (poiché entrambi provengono dalla stessa generazione e famiglia di processori).

Innanzitutto, mi adeguo alla differenza nei conteggi dei core fisici. Se dividi 8 per 18, il risultato è 0,44, quindi moltiplichi 3.772,08 per 0,44, otteniamo un risultato di 1.676,48. Successivamente, dobbiamo regolare la differenza nella velocità di clock di base tra questi due processori. L'E5-2667 v3 ha una velocità di clock di base superiore del 39% rispetto al processore E5-2699 v3, quindi moltiplichiamo 1.676,48 per 1,39 per ottenere una stima finale Punteggio TPC-E di 2330,31. Se dividiamo questo punteggio stimato per 16 core fisici, otteniamo un risultato "punteggio per core" di 145,64.

Quindi, secondo questo calcolo, avremmo ancora una maggiore capacità complessiva della CPU rispetto al sistema legacy e prestazioni della CPU single-thread molto migliori utilizzando il numero di core inferiore, il processore Xeon E5-2667 v3 "ottimizzato in frequenza" nel nuovo due socket sistema. Il vantaggio finale di questa scelta di processori è costituito dai costi di licenza di SQL Server 2014 molto inferiori, poiché avremmo bisogno solo di 16 licenze core invece di 36 licenze core, con un risparmio di circa $ 136.000,00.

Si spera che sia un po' più chiaro come eseguire alcune semplici analisi per aiutarti a decidere il processore esatto che dovresti scegliere per un nuovo server di database, dati il ​​carico di lavoro e i vincoli di budget. Questa analisi è un po' più complicata quando devi confrontare processori di generazioni e famiglie diverse, ma possono essere utilizzati gli stessi principi di base. Approfondirò questo argomento in un prossimo articolo.