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

Hvor meget RAM har din nye databaseserver brug for?

Et spørgsmål, der dukker op ret ofte, er, hvordan man bestemmer, hvor meget fysisk RAM der skal være i en databaseserver, der kører SQL Server 2012. En af de første oplysninger, du skal bruge for at bestemme dette, er hvilken version og udgave af SQL Server, du skal køre på din nye server.

Forskellige versioner og udgaver af 64-bit SQL Server har forskellige licensgrænser for, hvor meget fysisk RAM de kan bruge til forskellige formål, som vist i tabel 1.

Version Udgave Motorgrænse SSAS-grænse
SQL Server 2008 Standard

OS-grænse

OS-grænse
Enterprise

OS-grænse

OS-grænse
SQL Server 2008 R2 Standard

64 GB

64 GB
Enterprise

2 TB

2 TB
Datacenter

OS-grænse

OS-grænse
SQL Server 2012 Standard

64 GB

64 GB
Business Intelligence

64 GB

OS-grænse
Enterprise

OS-grænse

OS-grænse

Tabel 1:SQL Server RAM-grænser efter version og udgave

Som du kan se fra tabel 1, kunne SQL Server 2008 bruge op til operativsystemgrænsen for fysisk RAM for både Standard- og Enterprise Editions. Da Microsoft udgav SQL Server 2008 R2, havde de den dårlige idé (efter min mening) at indføre lavere fysiske RAM-grænser for både Standard- og Enterprise Editions. De introducerede også en ny Data Center Edition af SQL Server 2008 R2, som havde den gamle, velkendte operativsystemgrænse som licensgrænse for fysisk RAM.

SQL Server 2012 Hukommelsesgrænser

Da Microsoft udgav SQL Server 2012, slap de klogt nok af med Data Center Edition SKU, men de holdt den samme kunstigt lave 64 GB RAM-grænse for Standard Edition. Jeg har skrevet længe om, hvorfor dette er en dårlig idé, så jeg vil ikke opsummere disse argumenter igen her. Det er tilstrækkeligt at sige, at det er lidt latterligt at være begrænset til at bruge mindre end $800.00 værd af DDR3 ECC RAM (64GB gange $12/GB) i en ny to-socket server, der kan have kostet omkring $10-$15K for selve serveren , plus omkring $29K for seksten SQL Server 2012 Standard Edition Core-licenser, for ikke at nævne dine lageromkostninger.

Indtil videre er der intet, der tyder på, at Microsoft har til hensigt at ændre denne RAM-grænse for SQL Server 2014, så vi bliver måske bare nødt til at fortsætte med at håndtere det. Et lille positivt aspekt ved denne RAM-grænse er, at den er pr. SQL Server-instans, ikke pr. server. Det betyder, at du med lidt omtanke og planlægning kunne beslutte dig for at installere to eller tre SQL Server 2012 Standard Edition-instanser på den samme fysiske maskine for at udnytte alle maskinens hukommelse, processor og lagerressourcer, hvis du er villig. til at håndtere det ekstra ressourceforbrug og administrationsomkostninger for navngivne forekomster. Dette kan spare dig for en betydelig mængde penge i hardware- og SQL Server 2012-licensomkostninger sammenlignet med at have to eller tre separate servere.

Hvis du beslutter dig for bare at holde dig til en enkelt standardforekomst af SQL Server 2012 Standard Edition (som jeg foretrækker, hvis jeg er begrænset til Standard Edition), skal du så bare få 64 GB RAM til databaseserveren? Jeg tror, ​​at svaret er et klart nej!

SQL Server 2012 Standard Edition-hukommelseskonfigurationseksempel

Siden serverklasse er DDR3 ECC RAM så overkommelig; Jeg tror, ​​at en rimelig minimumsmængde RAM for en ny to-socket server er tættere på 96 GB RAM. Dette giver dig mulighed for at indstille maks. serverhukommelsesindstillingen på instansniveau til 65536 MB, hvilket er nøjagtigt 64 GB RAM, mens du efterlader masser af overskydende RAM til operativsystemet og andre applikationer, der muligvis kører på din databaseserver.

De store serverleverandører har dokumentation og online hukommelseskonfigurationsværktøjer, der hjælper med at sikre, at du får den bedst mulige hukommelseskonfiguration for en ønsket mængde fysisk hukommelse. Du kan også bruge et værktøj som CPU-Z til at kontrollere din systemhukommelseshastighed for at sikre, at den kører med den hastighed, du forventer.

For eksempel har Dell et online konfigurationsværktøj her. Dette værktøj lader dig vælge den Dell-servermodel, du ønsker, inklusive hvilken processorfamilie du vil bruge (når du har et valg), og antallet af fysiske processorer, der rent faktisk vil være i serveren. Herefter indtaster du, hvor meget fysisk RAM du vil have i serveren, og vælger dine ønskede hukommelsespålidelighedsmuligheder (såsom hukommelsesspejling, rangsparing osv.), og så kommer værktøjet med tre forskellige mulige hukommelseskonfigurationer:Nominel konfiguration, Maksimal ydeevne og afbalanceret konfiguration. Disse konfigurationer viser typen, antallet og størrelsen af ​​de hukommelsesmoduler, du skal bruge, og hvilke hukommelseskanaler og slots du skal udfylde for at opfylde den valgte konfigurationsmulighed.

Hvis du vælger en Dell PowerEdge R720 to-socket server med to af de nye 22nm Intel Xeon E5-2600 v2 (Ivy Bridge-EP) processorer, og du vælger 96 GB RAM uden andre muligheder for hukommelsespålidelighed, får du tre foreslåede hukommelse konfigurationsmuligheder. Indstillingen Maksimal ydeevne foreslår tolv, 8GB 1866MHz 1R x4 RDIMM'er, med plads 0 på kanalerne 1-4 udfyldt og plads 1 på kanalerne 1-2 for hver processor. Dette giver dig en systemhukommelseshastighed på 1866MHz, hvilket er det maksimale, der understøttes af den nye Intel Xeon E5-2600 v2-serie af processorer.

Forresten, hvis du skal bruge SQL Server 2012 Standard Edition, er den nøjagtige processor, du vil have i en Dell R720, Intel Xeon E5-2667 v2, som har otte fysiske kerner med en basisklokhastighed på 3,3 GHz. At have en model med et højere antal kerner ville løbe ind i grænsen på 16 fysiske kerner for SQL Server 2012 Standard Edition.

Indstillingen Balanceret konfiguration foreslår tolv, 8GB 1600MHz 1R x4 RDIMM'er, med plads 0 på kanalerne 1-4 udfyldt og plads 1 på kanalerne 1-2 udfyldt for hver processor. Dette giver dig en systemhukommelseshastighed på 1600MHz, som vil bruge lidt mindre strøm end indstillingen Maksimal ydeevne.

Indstillingen Nominel konfiguration foreslår fireogtyve, 4GB 1333MHz 1R x8 RDIMM'er med alle slots på alle kanaler udfyldt for hver processor. Dette giver dig en systemhukommelseshastighed på 1333MHz, hvor alle dine slots er fyldt med ganske små 4GB RDIMM'er. Dette er et mindre end optimalt valg, der er designet til at spare nogle penge på hukommelsesomkostninger ved at bruge DIMM'er med mindre kapacitet og lavere hastighed. Desværre er der få reelle pengebesparelser her, til en pris af at give afkald på en anstændig mængde hukommelsesydelse og ikke have nogen tomme hukommelsespladser.

Med Intel Xeon E5-2600- og E5-2600 v2-seriens processorer får du den højest mulige hukommelsesbåndbredde, hvis du kun udfylder en eller to slots pr. hukommelseskanal. Udfyldning af den tredje hukommelsesplads forårsager et fald i systemhukommelseshastigheden. Den højeste mængde hukommelse, du kan bruge ved maksimal systemhukommelseshastighed ved at bruge økonomiske 16 GB RDIMM'er, er 256 GB, hvilket ville være seksten, 16 GB RDIMM'er, der fylder alle slots på kanal 1 og 2. Der er ingen fordel for systemhukommelseshastigheden ved at have mindre end 256 GB RAM i en to-socket server med to Xeon E5-2600 eller E5-2600 v2 serie processorer.

Selvom det er bedre at prøve at komme med en hukommelseskonfiguration, der giver den højest mulige systemhukommelseshastighed for en given mængde RAM, efter min erfaring (og i de fleste faktiske applikationsbenchmarks, som jeg har set), er forskellen i den virkelige verdens ydeevne. mellem forskellige systemhukommelseshastigheder er meget mindre, end du kunne forvente, ganske ofte i intervallet 5-10% eller mindre. Til brug af SQL Server Enterprise Edition vil jeg hellere have nok RAM til at passe hele min arbejdsbyrde i bufferpuljen i stedet for at vælge en lavere mængde RAM for at få den højest mulige hukommelseshastighed på bekostning af at skulle trække data fra lagerundersystemet mere tit. Selv "langsom" RAM har størrelsesordener mindre latency end nogen form for lagerundersystem, inklusive flash-baseret lager.

Hvis min arbejdsbyrde ikke passede ind i 256 GB RAM, ville jeg hellere tilføje mere RAM og tage systemhukommelseshastigheden i stedet for at blive ramt af at skulle tilgå det meget langsommere lagerundersystem oftere. Så for at opsummere, tror jeg, at hukommelsen for SQL Server 2012 Standard Edition for denne type server er 96 GB, stigende til 256 GB for SQL Server 2012 Enterprise Edition (medmindre din arbejdsbyrde er større end 256 GB).


  1. Måder at migrere SQL Server Database til Azure SQL Database

  2. Returner en liste over tidszoner, der understøttes af PostgreSQL

  3. Introduktion til SQL Server

  4. Generer SQL for at opdatere primærnøgle