Siden Microsoft har fornyet licensmodellen for SQL Server 2012, er det især vigtigt at lave nogle gennemtænkte analyser, før du beslutter dig for præcis, hvilken processor du skal bruge til en databaseserver, der skal køre SQL Server 2012. Skiftet til kernebaseret licensering til SQL Server 2012 Enterprise Edition betyder, at en skødesløs beslutning om, præcis hvilken processor du skal køre på, kan koste både mange penge og en hel del ydeevne og skalerbarhed. Det samme problem eksisterer (i mindre omfang) med SQL Server 2012 Standard Edition.
Forskellen i SQL Server 2012-licensomkostninger mellem et godt processorvalg og et dårligt processorvalg kan i mange tilfælde mere end betale for din hardware og dit lagerundersystem. Givet dette, hvordan går du frem for at træffe et optimalt processorvalg til SQL Server 2012 Enterprise Edition? Normalt vil det første skridt være at beslutte, om du vil bruge en Intel Xeon-processor eller en AMD Opteron-processor (SQL Server 2012 understøtter ikke Intel Itanium-processorfamilien).
Desværre er det meget svært at lave en god teknisk eller forretningsmæssig case at vælge en AMD Opteron-processor til brug med SQL Server 2012 Enterprise Edition. Siden introduktionen af Intel Nehalem-arkitekturen (Intel Xeon 3500, 5500, 6500 og 7500-serien) i 2008-2010, har AMD simpelthen ikke været i stand til at konkurrere med Intel, når det kommer til single-threaded processor ydeevne. AMD har ikke de økonomiske eller tekniske ressourcer til at konkurrere med Intel med hensyn til ydeevne eller strømeffektivitet. Med hver ny processorfamilieudgivelse fra Intel er AMD kommet længere bagud. Dette er ikke en god ting for I.T. industri, da mangel på levedygtig konkurrence fra AMD uundgåeligt vil bremse innovationstempoet fra Intel.
Da en Intel Xeon-processor ser ud til at være det eneste levedygtige valg til SQL Server 2012, er næste trin at beslutte, hvilken en af de mange tilgængelige Xeon-familier og -modeller, der ville være det bedste valg til din tilsigtede SQL Server 2012-arbejdsbyrde. Intel har forskellige Xeon-produktfamilier til forskellige socket count-servere. Til single-socket arbejdsstationer og servere har de Intel Xeon E3-familien. Til to-sockets arbejdsstationer og servere har de Intel Xeon E5-familien. Endelig har de Intel Xeon E7-familien til servere med to sockets, fire sockets og otte sockets (eller flere).
Da denne artikel diskuterer SQL Server 2012 Enterprise Edition, vil vi ignorere single-socket Intel Xeon E3-familien, da Intel Xeon E3-processorer er begrænset til at bruge 32 GB DDR3 RAM. Der er nogle nichescenarier, hvor det kan give rigtig god mening at bruge en Intel Xeon E3-1290V2-processor i en single-socket server med 32 GB RAM i kombination med SQL Server 2012 Enterprise Edition. Måske har du en relativt lille database, hvor du har brug for den absolut hurtigste enkelttrådede ydeevne, og du har også brug for specifikke Enterprise Edition-funktioner såsom SQL Server AlwaysOn Availability Groups.
Det mere almindelige valg er mellem en to-socket server og en fire-socket (eller flere) server. Du bliver nødt til at vurdere din arbejdsbyrdes størrelse og intensitet og beslutte, om den kan køre på en mindre, men hurtigere to-socket server, eller om du bliver nødt til at springe til en større, langsommere fire-socket eller større server. Denne beslutning er direkte påvirket af din nødvendige samlede CPU-kapacitet, samlede fysiske RAM-kapacitet og din samlede nødvendige I/O-kapacitet (som er relateret til antallet og typen af PCI-E-udvidelsesslots på serveren).
En almindelig misforståelse er, at større Intel-baserede servere (i form af socket-antal) er hurtigere servere. Dette er simpelthen ikke sandt, af flere årsager. Salgsvolumen og markedsandelen for to-socket-servere er meget højere, end den er for fire-socket og større servere. Der er også mindre ingeniør- og valideringsarbejde påkrævet for to-sockets-kompatible Intel-processorer sammenlignet med fire-sockets-kompatible Intel-processorer. På grund af disse faktorer frigiver Intel nye processorarkitekturer oftere og tidligere til servere med lavere socketantal. I øjeblikket bruger Intels single-socket E3-familie 22nm Ivy Bridge, og to-socket E5-familien bruger 32nm Sandy Bridge-EP, mens Intel E7-familien bruger den ældre 32nm Westmere-EX mikroarkitektur.
En anden grund er, at du ikke får lineær skalering, når du øger dit socketantal, selv med NUMA-arkitekturprocessorer (Non-uniform memory access), som skalerer meget bedre end den ældre symmetriske multiprocessing (SMP) arkitektur. Det betyder, at en fire-socket server ikke vil have dobbelt så stor processorydelse eller kapacitet som en to-socket server med samme model processor.
Dette kan bekræftes ved at sammenligne TPC-E OLTP-benchmark-resultaterne for to-socket-systemer med Intel Xeon E7-2870-processorer med fire-socket-systemer med Intel Xeon E7-4870-processorer til otte-socket-systemer med Intel Xeon E7-8870-processorer. Selvom disse i det væsentlige er den samme processor med de samme individuelle ydeevnekarakteristika, fordobles TPC-E benchmark-score ikke, når du fordobler antallet af socket, som du kan se i tabel 1.
Processor | Socket Count | TPC-E-score | Samlet antal kerne | TPC-E-score/kerne |
---|---|---|---|---|
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 |
Tabel 1:Sammenligning af TPC-E-scores, når antallet af socket stiger
Når jeg tænker på at sammenligne single-socket til to-socket, med fire og otte-socket processorer, kan jeg godt lide at bruge en bil- og lastbilanalogi. En single-socket server er som en Formel-1 racerbil, der er ekstremt hurtig, men har meget lidt lastkapacitet. En to-socket server er som en Tesla Model S, den er meget hurtig og har ret anstændig lastkapacitet. En server med fire sockets er som en stor SUV, der er langsommere, men har mere lastkapacitet end en Tesla Model S. Endelig er en server med otte sokkel ligesom en Mack-lastbil, der er i stand til at trække en enorm last i en meget langsommere hastighed end en SUV.
Processor | Socket Count | TPC-E-score | Samlet antal kerne | TPC-E-score/kerne |
---|---|---|---|---|
Xeon E5-2690 | 2 | 1881.76 | 16 | 117,61 |
Xeon E5-4650 | 4 | 2651.27 | 32 | 82,85 |
Tabel 2:Sammenligning af TPC-E-score for to Xeon E5-processormodeller
Ved at sammenligne tabel 1 med tabel 2 kan vi se, at Intel Xeon E5-familien klarer sig en del bedre på TPC-E end Intel Xeon E7-familien gør, hvilket ikke er nogen overraskelse, da vi sammenligner den nyere Sandy Bridge-EP med ældre Westmere-EX mikroarkitektur. Set fra et ydelsesperspektiv klarer to-sokkel Xeon E5-2690 sig meget bedre end to-sokkel Xeon E7-2870. Efter min mening bør du virkelig ikke bruge den to-socket Xeon E7-2870 til SQL Server 2012 på grund af dens lavere enkelttrådede ydeevne og højere fysiske kernetal (hvilket betyder en højere SQL Server 2012-licensomkostning).
I øjeblikket er min foretrukne Intel-serverprocessor Intel Xeon E5-2690. Det vil give dig fremragende single-threaded ydeevne og relativt overkommelige SQL Server 2012 licensomkostninger. Hvis du har brug for at gå op til en fire-socket server, så ville jeg vælge en Intel Xeon E5-4650 processor i stedet for at bruge en Intel Xeon E7-4870 processor, da du vil få bedre single-threaded ydeevne og lavere SQL Server 2012 licens omkostninger. Brug af TPC-E benchmarkscore er en glimrende måde at sammenligne ydeevnen og SQL Server 2012-licenseffektiviteten for forskellige processorfamilier.