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

Valg og konfiguration af hardware til SQL Server 2016 Standard Edition

Siden udgivelsen af ​​SQL Server 2016 Service Pack 1 den 16. november 2016, med mange meget nyttige programmerbarhedsrelaterede funktioner, som tidligere kun var tilgængelige i Enterprise Edition, er det blevet meget mere muligt for mange organisationer med vilje at vælge at bruge SQL Server 2016 Standardudgave, end den var tidligere.

Hvis du overvejer at gøre dette, skal du være opmærksom på nogle almindelige problemer og faldgruber, som du kan løbe ind i, når du installerer og bruger SQL Server 2016 Standard Edition på en ny server med moderne hardware.

Hukommelsesgrænser og -konfiguration

Det første problem er licensgrænserne pr. instans for SQL Server 2016 Standard Edition. Den første licensgrænse er mængden af ​​hukommelse, som du kan bruge til bufferpuljen for hver forekomst af SQL Server 2016 Standard Edition, som kun er 128 GB, ligesom det var i SQL Server 2014 Standard Edition. Personligt synes jeg, at denne grænse er kunstigt lav i betragtning af hukommelsestætheden på moderne to-socket servere, men det er en grænse, vi skal forholde os til.

Nuværende to-socket-servere, der bruger Intel Xeon E5-2600 v4-produktfamilieprocessorer, kan bruge op til 12 DIMM'er pr. processor, mens 32GB DDR4 ECC DIMM'er er den højeste kapacitet, der også er overkommelige pr. GB. Hver server med denne processorfamilie har 4 hukommelseskanaler pr. processor, hvor hver kanal understøtter op til 3 DIMM'er. En fuldt udfyldt to-socket server med fireogtyve 32 GB DIMM'er ville have 768 GB RAM, hvilket er langt mere end en enkelt forekomst af SQL Server 2016 Standard Edition er tilladt at bruge.

Da SQL Server 2016 Standard Edition har så lav en hukommelsesgrænse pr. forekomst, bør du med vilje vælge en passende hukommelseskonfiguration, der giver dig mulighed for at bruge hele licensbegrænsningshukommelsen, samtidig med at du får den bedst mulige hukommelsesydelse. Kun at udfylde én DIMM pr. hukommelseskanal vil give dig den absolut bedste hukommelsesydelse, der understøttes af din(e) processor(er).

De store serverleverandører, såsom Dell, tilbyder detaljeret vejledning om mulige hukommelseskonfigurationer for deres servere, afhængigt af antallet og den specifikke type processor, der er valgt. For SQL Server 2016 Standard Edition i en to-socket-server med to Intel Xeon E5-2600 v4-familieprocessorer vil valg af otte 32GB DDR4 DIMM'er give dig 256GB RAM, der kører med den maksimalt understøttede hastighed på 2400MT/s.

Dette vil give dig mulighed for at indstille maks. serverhukommelse (til bufferpuljen) til 131.072 MB (128 GB), og stadig have masser af hukommelse tilbage til operativsystemet og til eventuel brug af columnstore-indekser og in-memory-OLTP. Du ville også have seksten tomme DIMM-slots, der kunne bruges til fremtidig RAM-udvidelse (som du kunne drage fordel af, hvis du lavede en efterfølgende Edition-opgradering til Enterprise Edition). En anden anvendelse for nogle af disse tomme DIMM-slots ville være "hale af log-caching" på NVDIMM'er (som understøttes i SQL Server 2016 Standard Edition med SP1).

Processorlicensgrænser

SQL Server 2016 Standard Edition er også begrænset til den mindste af fire sockets eller 24 fysiske processorkerner. Med nuværende og kommende processorfamilier fra både Intel og AMD, der vil have op til 32 fysiske kerner, er det meget nemt at utilsigtet overskride grænsen for processorkerner pr. instans, med en række alvorlige konsekvenser for ydeevne og licensomkostninger.

Den første negative effekt ved at gøre dette er, hvordan SQL Server 2016 Standard Edition vil allokere dine tilgængelige fysiske kerner med licensbegrænsning på tværs af dine NUMA-noder. Hvis du f.eks. havde en ny to-socket server, der havde to 16-core Intel Xeon E5-2697A v4-processorer, ville SQL Server 2016 Standard Edition som standard bruge seksten fysiske kerner på NUMA node 0 og kun otte kerner på NUMA node 1, som er en ubalanceret konfiguration, der ikke vil fungere så godt, som den kunne. Du kan løse dette problem med en ALTER SERVER CONFIGURATION-kommando, som jeg beskriver her.

For at føje spot til skade i denne situation, forventer Microsoft også, at du køber kernelicenser til alle 32 fysiske kerner i maskinen, selvom du kun må bruge 24 fysiske kerner pr. instans. Dette ville være en ekstra licensomkostning på omkring 15.000 USD for kernelicenser, som du ikke ville være i stand til at bruge, medmindre du besluttede at køre flere forekomster på den samme værtsmaskine. De ekstra licensomkostninger ville betale for en typisk to-socket server, afhængigt af hvordan den blev konfigureret.

En anden almindelig faldgrube, som du bør undgå med Standard Edition, er at skabe en virtuel maskine, der har mere end fire sockets. Hvis du gør det, vil SQL Server Standard Edition kun bruge fire sockets på grund af socket-licensgrænsen.

Processorvalg

I øjeblikket er den mest moderne Intel Xeon-processorfamilie til to-socket-servere 14nm Intel Xeon E5-2600 v4-produktfamilien (Broadwell-EP), der blev frigivet i Q1 af 2016. Intel er på nippet til at frigive den næste generation af 14nm Intel Xeon E5-2600 v5 (Skylake-EP), som allerede er tilgængelig i Google Cloud Platform. Mit gæt er, at disse nye processorer (som vil kræve nye modelservere) vil være offentligt tilgængelige i 2. kvartal af 2017.

I betragtning af denne 24-fysiske kernelicensgrænse er det ekstremt vigtigt at du ikke vælger en processor, der har mere end 12 fysiske kerner (hvis du planlægger at udfylde begge sockets på en to-socket server). Dette begrænser dit valg af processor-SKU'er noget, men der er stadig fire gode valg tilgængelige, som vist i tabel 1.

Model Kerner Estimeret. TPC-E System Score Score/fysisk kerne Licensomkostninger
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

Tabel 1:Sammenlignende to-socket systemprocessormålinger

Tabel 1 viser de samlede fysiske kerner, estimeret TPC-E-score, estimeret TPC-E-score/fysisk kerne og samlede SQL Server 2016 Standard Edition-licensomkostninger for et to-socket system, udfyldt med to af de valgte processorer. Du bemærker måske, at jeg har en 12-core processor, en otte-core processor, en seks-core processor og en fire-core processor, men der er ingen ti-core processor i tabel 1. Dette er ved design, da tre tilgængelige ti-core processormodeller er alle meget dårlige valg til SQL Server på grund af deres meget lave basis-urhastigheder.

Den estimerede TPC-E-score for hele systemet er et mål for systemets samlede CPU-kapacitet, mens scoren/kernen er et mål for den enkelte processors enkelttrådede CPU-ydeevne.

Oversigt

Hvis du ønsker den bedst mulige ydeevne til de laveste hardware- og SQL Server-licensomkostninger for en SQL Server 2016 Standard Edition-instans, bør du vælge en hukommelseskonfiguration, der kun bruger én DIMM pr. hukommelseskanal (dvs. otte DIMM'er i alt i et to-socket system med to Intel Xeon E5-2600 v4-familieprocessorer).

Du bør også med vilje vælge en af ​​de fire processorer, der er angivet i tabel 1. Ethvert andet processorvalg er en potentielt dyr fejl fra dette perspektiv.

Endelig, hvis du skal bruge SQL Server 2016 Standard Edition, bør du undersøge og teste, om Buffer Pool Extension (BPE) kan hjælpe med ydeevnen med din arbejdsbyrde. Afhængigt af din arbejdsbyrde kan "hale af loggen"-cache på et NVDIMM også være meget gavnligt for din transaktionslogydelse.


  1. PostgreSQL-baseret applikationsydelse:latens og skjulte forsinkelser

  2. Oracle In-Memory omkostninger

  3. Hvordan beskrives ydeevneproblemet i relationel database?

  4. Indsæt et billede i postgresql database