StorageReview.com

Välja den bästa DRAM-konfigurationen för SQL Server 2012

Företag  ◇  I labbet

Att bygga den ideala produktionsservern för Microsoft SQL Server 2012 kan vara en skrämmande uppgift, med variabler som lagring, RAM eller processorval som överväldigar även erfarna IT-administratörer. Vi publicerade senast en analys kring att välja den bästa Intel Xeon E5-2600 v2-processorn för att köra SQL Server 2012 i icke-virtualiserade miljöer. Förutom CPU är RAM en annan viktig komponent när man överväger prestandabehoven för SQL som körs på Iron. För denna testning använde vi samma testbädd som Intel-processorstudien, den här gången med fokus på att jämföra Micron PC3-12800 RAM med den bäst presterande CPU:n och lagringen för att mäta dess prestandapåverkan.

Traditionellt sett ger mer RAM för SQL Server högre prestanda. Att utnyttja ytterligare RAM-minne sänker I/O-fotavtrycket på en given lagringsuppsättning och ger också vissa cachningsfördelar. Med allt likadant tittar vi på hur mycket RAM-minne du kan dedikera till SQL Server samtidigt som du har en låg latensprofil. I den här artikeln visar vi prestandaeffekten av att allokera 128 GB dedikerat till SQL Server, vilket är där vi för närvarande testar enheter för företagsrecensioner, ner till 8 GB.

Testbädd

För denna analys utvärderar vi Micron PC3-12800 DDR3-minne i en Supermicro SuperStorage Server 2027R-AR24NV som kör Windows Server 2012, vilket är en 2U-dubbla sockelbox som stöder E5-2600- och E5-2600 v2-familjen av Intel-processorer. System-RAM-minnet består av sexton 16 GB Micron PC3-12800 DIMM-minnen som förblir statiska för varje test. För att ändra mängden RAM som används av SQL Server ändrar vi allokeringsinställningen och begränsar den till en mängd som valts för varje steg. Vi använde 2.6 TB Fusion ioMemory PX600 för lagring i värddatorn, som har visat mycket bra latenssiffror för SQL Server (den snabbaste nuvarande generationens produkt som vårt labb har testat).

Server Configuration

  • 2 x Intel Xeon-processor E5-2687W v2 – 25M cache, 3.40 GHz, 8 kärnor
  • Intel C602 Chipset
  • Minne – 256GB (16x 16GB) 1600MHz Micron DDR3-registrerade RDIMM-enheter (128GB dedikerade till systemet, 8-128GB dedikerade till SQL)
  • Windows Server Standard 2012
  • 3 x Supermicro SAS3 HBA (LSI SAS 3008-kontroller)
  • 200 GB Micron P400m Boot SSD
  • 1 x Mellanox ConnectX-3 Dual-Port VPI PCIe 3.0-adapter (InfiniBand LoadGen-tyg)
  • 1 x Emulex OCe11102 Dual-Port 10GbE-adapter

Lagringskonfiguration

  • SanDisk Fusion ioMemory PX600 2.6TB
    • 80 % överprovisionering i högpresterande läge
    • Full strömförbrukning aktiverad
    • VSL 4.1.1 Firmware/drivrutiner

Prestanda

Varje specificerat RAM-stegintervall testades på samma sätt: vi utnyttjade vårt SQL Server 2012 OLTP-benchmark med databasen som finns på PX600 inuti den ennodiga 2P Supermicro-servern. Som med de flesta lagringsenheter i samma klass oroar vi oss inte så mycket för transaktioner per sekund; tonvikten ligger egentligen på latensen för var och en av dessa transaktioner att slutföras.

Som väntat gav större mängder RAM-minne tilldelat SQL-servern högre transaktionsprestanda. Mellan 128 GB ner till 64 GB såg vi ingen stor förändring i TPS. Faktum är att minskningen mellan 96 GB och 64 GB höll sig ungefär inom samma felmarginal. Skillnaden från 16 GB till 8 GB gav beloppet den största förändringen, vilket säger oss att 16 GB förmodligen är den minsta användbara tröskeln för just denna test- och serverkonfiguration.

Med fokus på latens ser vi hur väl Fusion ioMemory PX600 bibehöll sin prestanda med låg latens med resultaten på 128 GB, 96 GB och 64 GB som fick mellan 2-3 ms. Nedgången till 32 GB ökade latensen med cirka 66 %, men nästa nedgång på 16 GB var mycket mer dramatisk. Den förändringen ökade latensen med 200 %, som sedan ökade ytterligare 153 % när RAM-minnet minskades till 8 GB.

Även om lagringseffekten inte visades som en del av detta test, minskade varje steg upp i DRAM-allokeringen dramatiskt belastningen som sågs av lagringsenheten som databasen fanns på. Kort sagt, mer minne översätts till färre förfrågningar som träffar lagring, istället stannar i systemminnet. Medan 128 GB RAM hade en bakgrundsbelastning på 50-100 MB/s, ökade 16 GB till 800 MB/s (inte under loggskrivningsaktivitet som kan orsaka stora toppar för alla DRAM-konfigurationer). Med ett mindre lagringsmedium skulle dessa resultat bli ännu högre.

Slutsats

När man sätter ihop en högpresterande icke-virtualiserad SQL Server finns det många överväganden. I den första delen tittade vi på CPU och dess inverkan på SQL-prestanda. Här använder vi den bäst presterande värdlagringen och CPU:erna för att testa RAM. Tillsammans med Micron körde vi samma tester, från 8 GB till 128 GB RAM dedikerat till SQL. Resultaten är ganska intuitiva, med generellt sett bättre RAM-minne när det gäller latens. Det finns dock en brytpunkt där latensen ser en dramatisk topp i denna konfiguration. Vid 16 GB fördröjning ökar 3X jämfört med 32 GB och vid 8 GB är effekten ännu allvarligare. För bästa möjliga prestanda genererar 128 GB RAM för SQL med högsta klockhastighetsprocessorer och ledande PCIe-lagring en latens på bara 2ms. 

Crucial/Micron produktsida

Att välja den bästa Intel Xeon E5-2600 v2 CPU för SQL Server 2012

Diskutera denna recension

Engagera dig med StorageReview

Nyhetsbrev | YouTube | Podcast iTunes / Spotify | Instagram | Twitter | TikTok | RSS-flöde

Kevin OBrien

Inne i StorageReview Lab utvärderar produkter och arbetar med branschledare för att utveckla nya testmiljöer. Hemma skaffar jag familj.