Eftersom Microsoft har förnyat licensmodellen för SQL Server 2012 är det särskilt viktigt att göra lite genomtänkt analys innan du bestämmer exakt vilken processor du ska använda för en databasserver som kommer att köra SQL Server 2012. Övergången till kärnbaserad licensiering för SQL Server 2012 Enterprise Edition innebär att ett slarvigt beslut om exakt vilken processor du ska köra på kan kosta både mycket pengar och mycket prestanda och skalbarhet. Samma problem finns (i mindre utsträckning) med SQL Server 2012 Standard Edition.
Skillnaden i licenskostnader för SQL Server 2012 mellan ett bra processorval och ett dåligt processorval kan mer än betala för din hårdvara och ditt lagringsundersystem i många fall. Med tanke på detta, hur går du tillväga för att göra ett optimalt processorval för SQL Server 2012 Enterprise Edition? Normalt sett skulle det första steget vara att bestämma om du vill använda en Intel Xeon-processor eller en AMD Opteron-processor (SQL Server 2012 stöder inte Intel Itanium-processorfamiljen).
Tyvärr är det mycket svårt att göra ett bra tekniskt eller affärsmässigt fall att välja en AMD Opteron-processor för användning med SQL Server 2012 Enterprise Edition. Sedan introduktionen av Intel Nehalem-arkitekturen (Intel Xeon 3500, 5500, 6500 och 7500-serien) 2008-2010 har AMD helt enkelt inte kunnat konkurrera med Intel när det kommer till entrådig processorprestanda. AMD har inte de ekonomiska eller tekniska resurserna för att konkurrera med Intel när det gäller prestanda eller energieffektivitet. Med varje ny version av processorfamiljen från Intel har AMD halkat längre efter. Detta är inte bra för I.T. industrin, eftersom en brist på hållbar konkurrens från AMD oundvikligen kommer att bromsa innovationstakten från Intel.
Eftersom en Intel Xeon-processor verkar vara det enda genomförbara valet för SQL Server 2012, är nästa steg att bestämma vilken av de många tillgängliga Xeon-familjerna och modellerna som skulle vara det bästa valet för din avsedda SQL Server 2012-arbetsbelastning. Intel har olika Xeon produktfamiljer för olika socket count servrar. För arbetsstationer och servrar med en enda uttag har de Intel Xeon E3-familjen. För arbetsstationer och servrar med två sockel har de Intel Xeon E5-familjen. Slutligen, för servrar med två socklar, fyra socklar och åtta socklar (eller fler) har de Intel Xeon E7-familjen.
Eftersom den här artikeln diskuterar SQL Server 2012 Enterprise Edition kommer vi att ignorera Intel Xeon E3-familjen med en sockel, eftersom Intel Xeon E3-processorer är begränsade till att använda 32 GB DDR3 RAM. Det finns vissa nischade scenarier där det kan vara mycket meningsfullt att använda en Intel Xeon E3-1290V2-processor i en enkelsocket server med 32 GB RAM i kombination med SQL Server 2012 Enterprise Edition. Kanske har du en relativt liten databas där du behöver den absolut snabbaste entrådiga prestandan och du behöver även specifika Enterprise Edition-funktioner som SQL Server AlwaysOn Availability Groups.
Det vanligaste valet är mellan en server med två uttag och en server med fyra uttag (eller fler). Du kommer att behöva bedöma din arbetsbelastningsstorlek och intensitet och bestämma om den kan köras på en mindre, men snabbare server med två socklar, eller om du måste ta steget till en större, långsammare server med fyra socklar eller större. Detta beslut påverkas direkt av din nödvändiga totala CPU-kapacitet, totala fysiska RAM-kapaciteten och din totala nödvändiga I/O-kapacitet (vilket är relaterat till antalet och typen av PCI-E-expansionsplatser i servern).
En vanlig missuppfattning är att större Intel-baserade servrar (när det gäller antalet socket) är snabbare servrar. Detta är helt enkelt inte sant, av flera anledningar. Försäljningsvolymen och marknadsandelen för servrar med två sockets är mycket högre än för servrar med fyra socklar och större. Det krävs också mindre ingenjörs- och valideringsarbete för Intel-processorer med två socklar jämfört med Intel-processorer med fyra socklar. På grund av dessa faktorer släpper Intel nya processorarkitekturer oftare och tidigare för servrar med lägre socketantal. För närvarande använder Intels E3-familj med en enda sockel 22nm Ivy Bridge och E5-familjen med två sockel använder 32nm Sandy Bridge-EP, medan Intel E7-familjen använder den äldre 32nm Westmere-EX-mikroarkitekturen.
En annan anledning är att du inte får linjär skalning när du ökar antalet socket, även med NUMA-arkitekturprocessorer (Non-uniform memory access), som skalas mycket bättre än den äldre arkitekturen för symmetrisk multiprocessing (SMP). Detta innebär att en server med fyra socklar inte kommer att ha dubbelt så hög processorprestanda eller kapacitet som en server med två socklar med samma modell av processor.
Detta kan bekräftas genom att jämföra TPC-E OLTP-referensresultaten för två-socket-system med Intel Xeon E7-2870-processorer med fyra-sockets-system med Intel Xeon E7-4870-processorer till åtta-sockets-system med Intel Xeon E7-8870-processorer. Även om dessa i huvudsak är samma processor med samma individuella prestandaegenskaper, fördubblas inte TPC-E benchmark-poäng eftersom du fördubblar antalet sockets, som du kan se i Tabell 1.
Processor | Antal uttag | TPC-E-poäng | Totalt antal kärnor | TPC-E-poäng/kärna |
---|---|---|---|---|
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 |
Tabell 1:Jämförelse av TPC-E-poäng när antalet uttag ökar
När jag tänker på att jämföra processorer med en sockel med två sockel, med processorer med fyra och åtta sockel, gillar jag att använda en bil- och lastbilsliknelse. En single-socket server är som en Formel-1 racerbil, den är extremt snabb men har väldigt liten lastkapacitet. En server med två uttag är som en Tesla Model S, den är väldigt snabb och har ganska bra lastkapacitet. En server med fyra uttag är som en stor SUV, den är långsammare men har mer lastkapacitet än en Tesla Model S. Slutligen är en server med åtta uttag som en Mack-lastbil, som kan dra en enorm last i mycket långsammare takt än en SUV.
Processor | Antal uttag | TPC-E-poäng | Totalt antal kärnor | TPC-E-poäng/kärna |
---|---|---|---|---|
Xeon E5-2690 | 2 | 1881.76 | 16 | 117,61 |
Xeon E5-4650 | 4 | 2651.27 | 32 | 82,85 |
Tabell 2:Jämförelse av TPC-E-poäng för två Xeon E5-processormodeller
Genom att jämföra Tabell 1 med Tabell 2 kan vi se att Intel Xeon E5-familjen klarar sig ganska mycket bättre på TPC-E än Intel Xeon E7-familjen gör, vilket inte är någon överraskning, eftersom vi jämför den nyare Sandy Bridge-EP:n äldre Westmere-EX mikroarkitektur. Ur ett prestandaperspektiv klarar sig Xeon E5-2690 med två sockel mycket bättre än Xeon E7-2870 med två sockel. Enligt min åsikt borde du verkligen inte använda två-sockets Xeon E7-2870 för SQL Server 2012 på grund av dess lägre enkeltrådiga prestanda och högre fysiska kärnantalet (vilket innebär en högre licenskostnad för SQL Server 2012).
För närvarande är min favorit Intel-serverprocessor Intel Xeon E5-2690. Det kommer att ge dig utmärkt enkeltrådad prestanda och relativt överkomliga licenskostnader för SQL Server 2012. Om du behöver gå upp till en server med fyra socklar, så skulle jag välja en Intel Xeon E5-4650-processor istället för att använda en Intel Xeon E7-4870-processor, eftersom du kommer att få bättre entrådig prestanda och lägre SQL Server 2012-licens kostar. Att använda TPC-E benchmarkpoäng är ett utmärkt sätt att jämföra prestanda och SQL Server 2012-licenseffektivitet för olika processorfamiljer.