Sedan lanseringen av SQL Server 2016 Service Pack 1 den 16 november 2016, med många mycket användbara programmerbarhetsrelaterade funktioner som tidigare bara var tillgängliga i Enterprise Edition, har det blivit mycket mer genomförbart för många organisationer att medvetet välja att använda SQL Server 2016 Standardversionen än den var tidigare.
Om du funderar på att göra detta måste du vara medveten om några vanliga problem och fallgropar som du kan stöta på när du installerar och använder SQL Server 2016 Standard Edition på en ny server med modern hårdvara.
Minnesgränser och konfiguration
Det första problemet är licensgränserna per instans för SQL Server 2016 Standard Edition. Den första licensgränsen är mängden minne som du kan använda för buffertpoolen för varje instans av SQL Server 2016 Standard Edition, som bara är 128 GB, precis som det var i SQL Server 2014 Standard Edition. Personligen tycker jag att den här gränsen är konstlat låg med tanke på minnestätheten hos moderna servrar med två sockel, men det är en gräns vi måste hantera.
Aktuella servrar med två sockel som använder processorer i produktfamiljen Intel Xeon E5-2600 v4 kan använda upp till 12 DIMM per processor, medan 32 GB DDR4 ECC DIMM är den högsta kapaciteten som också är prisvärd per GB. Varje server med denna processorfamilj har 4 minneskanaler per processor, där varje kanal stöder upp till 3 DIMM. En fullt fylld två-socket server med tjugofyra 32 GB DIMM skulle ha 768 GB RAM, vilket är mycket mer än en enda instans av SQL Server 2016 Standard Edition är tillåten att använda.
Eftersom SQL Server 2016 Standard Edition har en så låg minnesgräns per instans bör du avsiktligt välja en lämplig minneskonfiguration som låter dig använda allt minne med licensbegränsningar samtidigt som du får bästa möjliga minnesprestanda. Att endast fylla i en DIMM per minneskanal ger dig den absolut bästa minnesprestanda som stöds av dina processorer.
De stora serverleverantörerna, som Dell, erbjuder detaljerad vägledning om möjliga minneskonfigurationer för sina servrar, beroende på antalet och den specifika typen av processor som valts. För SQL Server 2016 Standard Edition i en tvåsocket server med två Intel Xeon E5-2600 v4-processorer, skulle valet av åtta 32GB DDR4 DIMM:er ge dig 256GB RAM, körs med den maximala stödda hastigheten på 2400MT/s.
Detta skulle tillåta dig att ställa in max serverminne (för buffertpoolen) till 131 072 MB (128 GB), och fortfarande ha gott om minne över för operativsystemet och för eventuell användning av columnstore-index och in-memory-OLTP. Du skulle också ha sexton tomma DIMM-platser som kan användas för framtida RAM-expansion (vilket du kan dra nytta av om du gjorde en efterföljande uppgradering till Enterprise Edition). En annan användning för några av dessa tomma DIMM-kortplatser skulle vara för "tail of the log caching" på NVDIMM (vilket stöds i SQL Server 2016 Standard Edition med SP1).
Begränsningar för processorlicens
SQL Server 2016 Standard Edition är också begränsad till den minsta av fyra sockets eller 24 fysiska processorkärnor. Med nuvarande och kommande processorfamiljer från både Intel och AMD som kommer att ha upp till 32 fysiska kärnor, är det mycket lätt att oavsiktligt överskrida gränsen för processorkärnorna per instans, med ett antal allvarliga konsekvenser för prestanda och licenskostnader.
Den första negativa effekten av att göra detta är hur SQL Server 2016 Standard Edition kommer att allokera dina tillgängliga fysiska kärnor med licensgräns över dina NUMA-noder. Om du till exempel hade en ny två-socket server som hade två 16-kärniga Intel Xeon E5-2697A v4-processorer, som standard, skulle SQL Server 2016 Standard Edition använda sexton fysiska kärnor på NUMA nod 0 och endast åtta kärnor på NUMA nod 1, som är en obalanserad konfiguration som inte fungerar så bra som den skulle kunna. Du kan fixa det här problemet med kommandot ALTER SERVER CONFIGURATION som jag beskriver här.
För att lägga sten på skada i den här situationen förväntar sig Microsoft också att du köper kärnlicenser för alla 32 fysiska kärnor i maskinen, även om du bara får använda 24 fysiska kärnor per instans. Detta skulle vara en ytterligare licenskostnad på cirka 15 000 USD för kärnlicenser som du inte skulle kunna använda, om du inte bestämt dig för att köra flera instanser på samma värddator. Den extra licenskostnaden skulle betala för en typisk server med två uttag, beroende på hur den konfigurerades.
En annan vanlig fallgrop som du bör undvika med Standard Edition är att skapa en virtuell maskin som har fler än fyra sockets. Om du gör det kommer SQL Server Standard Edition bara att använda fyra sockets på grund av sockets licensgräns.
Processorval
För närvarande är den modernaste Intel Xeon-processorfamiljen för tvåsockelservrar produktfamiljen Intel Xeon E5-2600 v4 (Broadwell-EP) på 14 nm som släpptes under första kvartalet 2016. Intel är på väg att släppa nästa generations 14nm Intel Xeon E5-2600 v5 (Skylake-EP), som redan är tillgänglig i Google Cloud Platform. Min gissning är att dessa nya processorer (som kommer att kräva nya modellservrar) kommer att vara offentligt tillgängliga under andra kvartalet 2017.
Med tanke på denna 24-fysiska kärnlicensgräns är den extremt viktig att du inte väljer en processor som har fler än 12 fysiska kärnor (om du planerar att fylla båda sockerna på en server med två sockel). Detta begränsar ditt urval av processor-SKU:er något, men det finns fortfarande fyra fantastiska val tillgängliga, som visas i Tabell 1.
Modell | Kärnor | Uppsk. TPC-E-systempoäng | Poäng/fysisk kärna | Licenskostnad |
---|---|---|---|---|
Xeon E5-2687W v4 | 24 | 3 673,00 | 153.04 | 44 592,00 USD |
Xeon E5-2667 v4 | 16 | 2 611,91 | 163,24 | 29 728,00 USD |
Xeon E5-2643 v4 | 12 | 2 081,36 | 173,44 | 22 296,00 USD |
Xeon E5-2637 v4 | 8 | 1 428,39 | 178,54 | 14 864,00 USD |
Tabell 1:Jämförande mätvärden för två-socket-systemprocessor
Tabell 1 visar totala fysiska kärnor, uppskattad TPC-E-poäng, uppskattad TPC-E-poäng/fysisk kärna och total licenskostnad för SQL Server 2016 Standard Edition för ett system med två sockel, fyllt med två av den valda processorn. Du kanske märker att jag har en tolvkärnig processor, en åttakärnig processor, en sexkärnig processor och en fyrkärnig processor, men det finns ingen tiokärnig processor i Tabell 1. Detta är designat, eftersom tre tillgängliga tiokärniga processormodeller är alla mycket dåliga val för SQL Server, på grund av deras mycket låga basklockhastigheter.
Den uppskattade TPC-E-poängen för hela systemet är ett mått på systemets totala CPU-kapacitet, medan poängen/kärnan är ett mått på den entrådade CPU-prestanda för den specifika processorn.
Sammanfattning
Om du vill ha bästa möjliga prestanda till lägsta hårdvaru- och SQL Server-licenskostnad för en SQL Server 2016 Standard Edition-instans, bör du välja en minneskonfiguration som bara använder en DIMM per minneskanal (vilket betyder totalt åtta DIMMs i ett system med två socklar med två processorer i familjen Intel Xeon E5-2600 v4).
Du bör också medvetet välja en av de fyra processorerna som anges i Tabell 1. Alla andra processorval är ett potentiellt dyrt misstag ur detta perspektiv.
Slutligen, om du ska använda SQL Server 2016 Standard Edition, bör du undersöka och testa om Buffer Pool Extension (BPE) kan hjälpa prestanda med din arbetsbelastning. Beroende på din arbetsbelastning kan "tail of the log"-cachelagring på en NVDIMM också vara mycket fördelaktigt för din transaktionsloggprestanda.