sql >> Database >  >> RDS >> Sqlserver

Hardware selecteren en configureren voor SQL Server 2016 Standard Edition

Sinds de release van SQL Server 2016 Service Pack 1 op 16 november 2016, met veel zeer nuttige programmeerfuncties die voorheen alleen beschikbaar waren in Enterprise Edition, is het voor veel organisaties veel haalbaarder geworden om doelbewust voor SQL Server 2016 te kiezen. Standard Edition dan in het verleden.

Als u overweegt dit te doen, moet u zich bewust zijn van enkele veelvoorkomende problemen en valkuilen die u kunt tegenkomen wanneer u SQL Server 2016 Standard Edition installeert en gebruikt op een nieuwe server met moderne hardware.

Geheugenlimieten en configuratie

Het eerste probleem zijn de licentielimieten per exemplaar voor SQL Server 2016 Standard Edition. De eerste licentielimiet is de hoeveelheid geheugen die u kunt gebruiken voor de bufferpool voor elk exemplaar van SQL Server 2016 Standard Edition, die slechts 128 GB is, net als in SQL Server 2014 Standard Edition. Persoonlijk denk ik dat deze limiet kunstmatig laag is gezien de geheugendichtheid van moderne two-socket servers, maar het is een limiet waar we mee moeten dealen.

De huidige servers met twee sockets die Intel Xeon E5-2600 v4-processors uit de productfamilie gebruiken, kunnen tot 12 DIMM's per processor gebruiken, terwijl 32 GB DDR4 ECC DIMM's de hoogste capaciteit hebben die ook betaalbaar is per GB. Elke server met deze processorfamilie heeft 4 geheugenkanalen per processor, waarbij elk kanaal tot 3 DIMM's ondersteunt. Een volledig gevulde two-socket server met vierentwintig 32GB DIMM's zou 768GB RAM hebben, wat veel meer is dan een enkele instance van SQL Server 2016 Standard Edition mag gebruiken.

Aangezien SQL Server 2016 Standard Edition zo'n lage geheugenlimiet per exemplaar heeft, moet u met opzet een geschikte geheugenconfiguratie kiezen waarmee u al het geheugen met licentielimiet kunt gebruiken en tegelijkertijd de best mogelijke geheugenprestaties krijgt. Als u slechts één DIMM per geheugenkanaal vult, krijgt u absoluut de beste geheugenprestaties die worden ondersteund door uw processor(s).

De grote serverleveranciers, zoals Dell, bieden gedetailleerde richtlijnen voor de mogelijke geheugenconfiguraties voor hun servers, afhankelijk van het aantal en het specifieke type processor dat is geselecteerd. Voor SQL Server 2016 Standard Edition in een two-socket server met twee Intel Xeon E5-2600 v4-familie processors, zou het kiezen van acht 32GB DDR4 DIMM's 256GB RAM opleveren, draaiend op de maximaal ondersteunde snelheid van 2400MT/sec.

Hiermee kunt u het maximale servergeheugen (voor de bufferpool) instellen op 131.072 MB (128 GB), en u nog voldoende geheugen overhouden voor het besturingssysteem en voor mogelijk gebruik door columnstore-indexen en in-memory-OLTP. Je zou ook zestien lege DIMM-slots hebben die kunnen worden gebruikt voor toekomstige RAM-uitbreiding (waarvan je zou kunnen profiteren als je een latere editie-upgrade naar Enterprise Edition zou doen). Een ander gebruik voor sommige van die lege DIMM-slots is voor "tail of the log caching" op NVDIMM's (die wordt ondersteund in SQL Server 2016 Standard Edition met SP1).

Licenties voor processorlicentie

SQL Server 2016 Standard Edition is ook beperkt tot de minste van vier sockets of 24 fysieke processorcores. Met huidige en toekomstige processorfamilies van zowel Intel als AMD die tot 32 fysieke cores zullen hebben, is het heel gemakkelijk om per ongeluk de limiet voor processorcores per exemplaar te overschrijden, met een aantal ernstige gevolgen voor de prestaties en licentiekosten.

Het eerste negatieve effect hiervan is hoe SQL Server 2016 Standard Edition uw beschikbare fysieke kernen met licentielimiet toewijst aan uw NUMA-knooppunten. Als u bijvoorbeeld een nieuwe two-socket-server had met twee 16-core Intel Xeon E5-2697A v4-processors, zou SQL Server 2016 Standard Edition standaard zestien fysieke cores gebruiken op NUMA-knooppunt 0 en slechts acht cores op NUMA node 1, wat een ongebalanceerde configuratie is die niet zo goed zal presteren als zou kunnen. U kunt dit probleem oplossen met een ALTER SERVER CONFIGURATION-opdracht zoals ik hier beschrijf.

Om nog erger te maken in deze situatie, zou Microsoft ook verwachten dat je core-licenties aanschaft voor alle 32 fysieke cores in de machine, ook al mag je maar 24 fysieke cores per instance gebruiken. Dit zou ongeveer $ 15.000 extra licentiekosten zijn voor kernlicenties die u niet zou kunnen gebruiken, tenzij u besluit om meerdere instanties op dezelfde hostcomputer uit te voeren. De extra licentiekosten zouden betalen voor een typische two-socket server, afhankelijk van hoe deze is geconfigureerd.

Een andere veelvoorkomende valkuil die u met Standard Edition moet vermijden, is het maken van een virtuele machine met meer dan vier sockets. Als u dat doet, gebruikt SQL Server Standard Edition slechts vier sockets vanwege de socketlicentielimiet.

Processorselectie

Momenteel is de meest moderne Intel Xeon-processorfamilie voor servers met twee sockets de 14nm Intel Xeon E5-2600 v4-productfamilie (Broadwell-EP) die werd uitgebracht in het eerste kwartaal van 2016. Intel staat op het punt om de volgende generatie 14nm Intel uit te brengen Xeon E5-2600 v5 (Skylake-EP), die al beschikbaar is in het Google Cloud Platform. Ik vermoed dat deze nieuwe processors (waarvoor nieuwe modelservers nodig zijn) in het tweede kwartaal van 2017 voor het publiek beschikbaar zullen zijn.

Gezien deze limiet van 24 fysieke kernlicenties, is het uiterst belangrijk dat u geen processor kiest die meer dan 12 fysieke cores heeft (als u van plan bent beide sockets van een two-socket server te vullen). Dit beperkt uw selectie van processor-SKU's enigszins, maar er zijn nog steeds vier geweldige keuzes beschikbaar, zoals weergegeven in tabel 1.

Model Kern Est. TPC-E-systeemscore Score/Fysieke kern Licentiekosten
Xeon E5-2687W v4 24 3.673,00 153.04 $44.592,00
Xeon E5-2667 v4 16 2.611,91 163.24 $29.728,00
Xeon E5-2643 v4 12 2.081,36 173.44 $22.296,00
Xeon E5-2637 v4 8 1.428,39 178,54 $14.864.00

Tabel 1:Vergelijkende gegevens over processors met twee sockets

Tabel 1 toont de totale fysieke cores, geschatte TPC-E-score, geschatte TPC-E-score/fysieke core en totale SQL Server 2016 Standard Edition-licentiekosten voor een systeem met twee sockets, gevuld met twee van de geselecteerde processors. Het is je misschien opgevallen dat ik een processor met twaalf kernen, een processor met acht kernen, een processor met zes kernen en een processor met vier kernen heb, maar er is geen processor met tien kernen in Tabel 1. Dit is zo ontworpen, aangezien de drie beschikbare tien-core processormodellen zijn allemaal erg slechte keuzes voor SQL Server, vanwege hun zeer lage basiskloksnelheden.

De geschatte TPC-E-score voor het hele systeem is een maatstaf voor de totale CPU-capaciteit van het systeem, terwijl de score/core een maatstaf is voor de single-threaded CPU-prestaties van die specifieke processor.

Samenvatting

Als u de best mogelijke prestaties wilt tegen de laagste hardware- en SQL Server-licentiekosten voor een SQL Server 2016 Standard Edition-instantie, moet u een geheugenconfiguratie kiezen die slechts één DIMM per geheugenkanaal gebruikt (wat in totaal acht DIMM's betekent in een systeem met twee sockets). met twee Intel Xeon E5-2600 v4-familieprocessors).

U moet ook met opzet een van de vier processors kiezen die in Tabel 1 worden vermeld. Elke andere processorkeuze is vanuit dit perspectief een potentieel dure fout.

Als u tot slot SQL Server 2016 Standard Edition gaat gebruiken, moet u onderzoeken en testen of Buffer Pool Extension (BPE) de prestaties van uw werklast kan verbeteren. Afhankelijk van uw werklast, kan "de staart van het logboek" op een NVDIMM ook zeer gunstig zijn voor de prestaties van uw transactielogboek.


  1. 5 manieren om hoofdletterongevoelig zoeken in SQLite te implementeren met volledige Unicode-ondersteuning

  2. ProxySQL 2.0 uitvoeren en configureren voor MySQL Galera Cluster op Docker

  3. SQL, hoe resultaten samen te voegen?

  4. Bestel een MySQL-tabel met twee kolommen