Een vraag die vaak opkomt, is hoe u kunt bepalen hoeveel fysiek RAM-geheugen moet zijn in een databaseserver met SQL Server 2012. Een van de eerste stukjes informatie die u nodig hebt om dit te bepalen, is welke versie en editie van SQL Server u gaat gebruiken. op je nieuwe server.
Verschillende versies en edities van 64-bits SQL Server hebben verschillende licentielimieten voor hoeveel fysiek RAM ze voor verschillende doeleinden kunnen gebruiken, zoals weergegeven in tabel 1.
Versie | Edition | Motorlimiet | SSAS-limiet |
---|---|---|---|
SQL Server 2008 | Standaard | OS-limiet | OS-limiet |
Onderneming | OS-limiet | OS-limiet | |
SQL Server 2008 R2 | Standaard | 64 GB | 64 GB |
Onderneming | 2 TB | 2 TB | |
Datacentrum | OS-limiet | OS-limiet | |
SQL Server 2012 | Standaard | 64 GB | 64 GB |
Business Intelligence | 64 GB | OS-limiet | |
Onderneming | OS-limiet | OS-limiet |
Tabel 1:SQL Server RAM-limieten per versie en editie
Zoals u in tabel 1 kunt zien, kan SQL Server 2008 de limiet van het besturingssysteem gebruiken voor fysiek RAM-geheugen voor zowel Standard- als Enterprise-edities. Toen Microsoft SQL Server 2008 R2 uitbracht, hadden ze (naar mijn mening) het slechte idee om lagere fysieke RAM-limieten in te voeren voor zowel Standard- als Enterprise-edities. Ze introduceerden ook een nieuwe Data Center-editie van SQL Server 2008 R2, die de oude, bekende limiet voor het besturingssysteem had als licentielimiet voor fysiek RAM-geheugen.
SQL Server 2012 geheugenlimieten
Toen Microsoft SQL Server 2012 uitbracht, hebben ze wijselijk de Data Center Edition-SKU verwijderd, maar ze hielden dezelfde kunstmatig lage 64 GB RAM-limiet voor Standard Edition. Ik heb uitgebreid geschreven over waarom dit een slecht idee is, dus ik zal die argumenten hier niet opnieuw samenvatten. Het volstaat om te zeggen dat het een beetje belachelijk is om te worden beperkt tot het gebruik van minder dan $ 800,00 aan DDR3 ECC RAM (64 GB maal $ 12 / GB) in een nieuwe server met twee sockets die mogelijk ongeveer $ 10- $ 15K heeft gekost voor de server zelf , plus ongeveer $ 29K voor zestien SQL Server 2012 Standard Edition Core-licenties, om nog maar te zwijgen van uw opslagkosten.
Tot nu toe zijn er geen aanwijzingen dat Microsoft van plan is deze RAM-limiet voor SQL Server 2014 te wijzigen, dus het kan zijn dat we ermee moeten doorgaan. Een klein positief aspect van deze RAM-limiet is dat deze per SQL Server-instantie is, niet per server. Dat betekent dat u, met een beetje nadenken en plannen, kunt besluiten om twee of drie SQL Server 2012 Standard Edition-instanties op dezelfde fysieke machine te installeren om te profiteren van alle geheugen-, processor- en opslagbronnen van de machine, als u dat wilt. om het extra resourcegebruik en de beheeroverhead van benoemde instanties aan te pakken. Dit kan u een aanzienlijke hoeveelheid geld besparen in hardware en licentiekosten voor SQL Server 2012 in vergelijking met het hebben van twee of drie afzonderlijke servers.
Als u besluit om slechts één standaardexemplaar van SQL Server 2012 Standard Edition te gebruiken (waar ik de voorkeur aan geef als ik beperkt ben tot Standard Edition), moet u dan 64 GB RAM krijgen voor de databaseserver? Ik denk dat het antwoord een nadrukkelijk nee is!
SQL Server 2012 Standard Edition geheugenconfiguratievoorbeeld
Sinds serverklasse is DDR3 ECC RAM zo betaalbaar; Ik denk dat een redelijke minimale hoeveelheid RAM voor een nieuwe server met twee sockets dichter bij 96 GB RAM ligt. Hiermee kunt u de maximale servergeheugeninstelling op instance-niveau instellen op 65536 MB, wat precies 64 GB RAM is, terwijl er voldoende overtollig RAM-geheugen overblijft voor het besturingssysteem en alle andere toepassingen die mogelijk op uw databaseserver worden uitgevoerd.
De belangrijkste serverleveranciers hebben documentatie en online geheugenconfiguratietools die ervoor zorgen dat u de best mogelijke geheugenconfiguratie krijgt voor een gewenste hoeveelheid fysiek geheugen. Je kunt ook een tool zoals CPU-Z gebruiken om de snelheid van je systeemgeheugen te controleren om er zeker van te zijn dat het werkt met de snelheid die je verwacht.
Dell heeft hier bijvoorbeeld een online configuratietool. Met deze tool kunt u het Dell-servermodel kiezen dat u wilt, inclusief de processorfamilie die u gaat gebruiken (wanneer u een keuze heeft) en het aantal fysieke processors dat daadwerkelijk in de server zal zitten. Vervolgens voert u in hoeveel fysiek RAM-geheugen u in de server wilt hebben en kiest u de gewenste opties voor geheugenbetrouwbaarheid (zoals geheugenspiegeling, rangsparing, enz.), en dan komt de tool met drie verschillende mogelijke geheugenconfiguraties:Nominale configuratie, Maximale prestaties en gebalanceerde configuratie. Deze configuraties tonen het type, het aantal en de grootte van de geheugenmodules die u moet gebruiken en welke geheugenkanalen en -slots u moet vullen om te voldoen aan de gekozen configuratieoptie.
Als u een Dell PowerEdge R720-server met twee sockets kiest, met twee van de nieuwe 22nm Intel Xeon E5-2600 v2 (Ivy Bridge-EP) processors en u 96 GB RAM selecteert zonder andere opties voor geheugenbetrouwbaarheid, krijgt u drie voorgestelde geheugens configuratie opties. De optie Maximale prestaties suggereert twaalf 8GB 1866MHz 1R x4 RDIMM's, met slot 0 op kanalen 1-4 en slot 1 op kanalen 1-2 voor elke processor. Dit geeft je een systeemgeheugensnelheid van 1866 MHz, het maximum dat wordt ondersteund door de nieuwe Intel Xeon E5-2600 v2-processorreeks.
Trouwens, als je SQL Server 2012 Standard Edition gaat gebruiken, is de exacte processor die je wilt in een Dell R720 de Intel Xeon E5-2667 v2, die acht fysieke kernen heeft met een basiskloksnelheid van 3,3 GHz. Het hebben van een model met een hoger aantal cores zou tegen de limiet van 16 fysieke core-licenties aanlopen voor SQL Server 2012 Standard Edition.
De gebalanceerde configuratieoptie stelt twaalf 8GB 1600MHz 1R x4 RDIMM's voor, met slot 0 op kanalen 1-4 en slot 1 op kanalen 1-2 voor elke processor. Dit geeft u een systeemgeheugensnelheid van 1600 MHz, die iets minder stroom verbruikt dan de optie Maximale prestatie.
De nominale configuratieoptie suggereert vierentwintig, 4GB 1333MHz 1R x8 RDIMM's met alle slots op alle kanalen voor elke processor. Dit geeft je een systeemgeheugensnelheid van 1333MHz, waarbij al je slots zijn gevuld met vrij kleine 4GB RDIMM's. Dit is een minder dan optimale keuze die is ontworpen om wat geld te besparen op geheugenkosten door DIMM's met een kleinere capaciteit en een lagere snelheid te gebruiken. Helaas zijn er hier weinig echte geldbesparingen, ten koste van het opgeven van een behoorlijke hoeveelheid geheugenprestaties en het ontbreken van lege geheugenslots.
Met de Intel Xeon E5-2600 en E5-2600 v2-serie processors krijgt u de hoogst mogelijke geheugenbandbreedte als u slechts één of twee slots per geheugenkanaal vult. Het vullen van het derde geheugenslot veroorzaakt een afname van de systeemgeheugensnelheid. De hoogste hoeveelheid geheugen die u kunt gebruiken bij maximale systeemgeheugensnelheid met behulp van voordelige 16 GB RDIMM's, is 256 GB, wat 16 zou zijn, 16 GB RDIMM's, waarmee alle slots op kanaal 1 en 2 worden gevuld. Er is geen voordeel van de systeemgeheugensnelheid als u minder dan 256 GB aan RAM in een two-socket server met twee Xeon E5-2600 of E5-2600 v2 serie processors.
Hoewel het beter is om te proberen een geheugenconfiguratie te bedenken die de hoogst mogelijke systeemgeheugensnelheid oplevert voor een bepaalde hoeveelheid RAM, is in mijn ervaring (en in de meeste feitelijke applicatiebenchmarks die ik heb gezien), het echte prestatieverschil tussen verschillende systeemgeheugensnelheden is veel kleiner dan je zou verwachten, vaak in het bereik van 5-10% of minder. Voor het gebruik van SQL Server Enterprise Edition heb ik liever genoeg RAM om mijn volledige werklast in de bufferpool te passen in plaats van een lagere hoeveelheid RAM te kiezen om de hoogst mogelijke geheugensnelheid te krijgen, ten koste van het feit dat ik gegevens uit het opslagsubsysteem moet halen. vaak. Zelfs "langzaam" RAM heeft een orde van grootte minder latentie dan welk type opslagsubsysteem dan ook, inclusief op flash gebaseerde opslag.
Als mijn werklast niet in 256 GB RAM paste, zou ik liever meer RAM toevoegen en de snelheidshit van het systeemgeheugen opvangen in plaats van vaker toegang te krijgen tot het veel langzamere opslagsubsysteem. Dus om samen te vatten, ik denk dat het geheugen voor SQL Server 2012 Standard Edition voor dit type server 96 GB is, oplopend tot 256 GB voor SQL Server 2012 Enterprise Edition (tenzij uw werkbelasting groter is dan 256 GB).