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

Sammenligning af Windows Azure VM-ydeevne, del 1

Medmindre du har gjort en fælles indsats for at ignorere det, har du måske hørt, at Microsoft ville virkelig som for dig at flytte meget af din SQL Server-databaseinfrastruktur ind i et Microsoft-datacenter, uanset om du går til en Azure SQL-database (som jeg for nylig diskuterede her), eller om du hoster den på en Windows Azure Virtual Machine. Microsoft kalder disse vedvarende virtuelle maskiner for beregningsinstanser , og de har to hovedniveauer at vælge imellem, som inkluderer Basic Compute Tier og Standard Compute Tier. De beskriver disse to niveauer som:

Basic Compute Tier :Dette nye niveau af computerforekomster ligner i konfigurationen Standard-laget med lavere priser. Disse forekomster inkluderer ikke load balancer og automatisk skalering. De er velegnede til enkeltinstansproduktionsapplikationer, udviklingsarbejdsbelastninger, testservere og batchbehandlingsapplikationer, der muligvis ikke kræver disse funktioner. Det grundlæggende beregningsniveau er i øjeblikket kun tilgængeligt for de generelle instanser. Disse forekomster spænder fra Basic A0 til Basic A4.

Standard Compute Tier :Denne række af computerforekomster giver et optimalt sæt af computer-, hukommelses- og I/O-ressourcer til at køre en bred vifte af applikationer. Disse forekomster inkluderer både automatisk skalering og belastningsbalancering uden ekstra omkostninger. Standard compute tier er tilgængelig på tværs af General Purpose, Memory Intensive og Compute Intensive instanser. Disse forekomster spænder fra standard A0 til standard A7.

Der er flere vigtige fordele ved at hoste din SQL Server-infrastruktur på en Windows Azure Virtual Machine. For det første har du ingen kapitalomkostninger til opbevaring eller hardware, sammen med ingen løbende vedligeholdelse af lageret eller hardwaren. For det andet har du ingen OS- eller SQL Server-licensomkostninger (når du bruger et SQL-billede fra standard Azure VM-galleriet). For det tredje kan du oprette en ny Azure VM, der allerede har SQL Server installeret på få minutter (selvom det kan tage lidt længere tid at konfigurere operativsystemet og SQL Server-instansen fuldstændigt til dine nøjagtige krav). Fremover vil det stadig være op til dig at installere Windows- og SQL Server-opdateringer, men du behøver ikke at bekymre dig om ting som firmware, BIOS eller driveropdateringer.

Hvis du vil bruge Windows Azure Virtual Machines til at hoste hele eller dele af din SQL Server-infrastruktur, skal du være opmærksom på de aktuelle prisoplysninger, der er tilgængelige for det specifikke Azure-datacenter, som du ønsker at hoste dine virtuelle maskiner, da priser kan varierer på tværs af forskellige Microsoft-datacentre. Microsoft har i øjeblikket 13 forskellige Windows Azure virtuelle maskine-størrelser, som beskrevet i deres Virtual Machine og Cloud Service Sizes for Azure side. Microsoft reducerede timeprisen for de hukommelsesintensive tilfælde (Standard A5, Standard A6 og Standard A7) med 18 % i de fleste af deres datacentre den 1. maj 2014, og priserne vist i tabel 1 afspejler disse nye, lavere priser.

Single-Core Score og Multi-Core Score i de to højre kolonner i tabel 1 er de gennemsnitlige scores, som jeg observerede ved brug af 32-bit versionen af ​​Geekbench 3.05 processoren og hukommelse benchmark på et eksempel på Windows Server 2012 R2 Datacenter VM i East U.S. Data Center. Disse resultater er muligvis ikke repræsentative for, hvad du vil se.

VM-størrelse CPU-kerner Hukommelse (GB) Pris pr. time Månedlig pris Single-Core Score Multi-Core Score
Grundlæggende A0 1 (delt) 0,75 0,018 USD ~$14 507 498
Grundlæggende A1 1 1,75 0,074 USD ~$56 679 670
Grundlæggende A2 2 3,50 0,148 USD ~111 $ 709 1.358
Grundlæggende A3 4 7.00 0,296 USD ~221 $ 717 2.472
Grundlæggende A4 8 14.00 0,592 USD ~441 $ 724 4.042
Standard A0 1 (delt) 0,75 0,020 USD ~$15 492 502
Standard A1 1 1,75 0,090 USD ~67 $ 1.068 1.083
Standard A2 2 3,50 0,180 USD ~134 $ 1.069 2.002
Standard A3 4 7.00 0,360 USD ~268 $ 1.070 3.593
Standard A4 8 14.00 0,720 USD ~536 $ 1.094 6.446
Standard A5 2 14.00 0,330 USD ~246 $ 1.080 2.026
Standard A6 4 28.00 0,660 USD ~492 $ 1.080 3.686
Standard A7 8 56,00 1.320 USD ~983 $ 1.056 6.185

Tabel 1:Udvalgte specifikationer for virtuelle maskiner til Windows Azure i East U.S. Data Center

I øjeblikket har Microsoft ni datacentre, der kan være vært for nye vedvarende virtuelle maskiner, som omfatter Øst-USA, Vest-USA, Brasilien Syd (Preview), Nordeuropa, Vesteuropa, Østasien, Sydøstasien, Japan Vest og Japan Øst. Ifølge Microsoft er "A1 den mindste størrelse, der anbefales til produktionsbelastninger," og du bør vælge "en virtuel maskine med 4 eller 8 CPU-kerner, når du bruger SQL Server Enterprise Edition." En nyttig, om end noget dateret reference til at køre SQL Server på en Windows Azure Virtual Machine er Performance Guidance for SQL Server i Windows Azure Virtual Machines, der blev offentliggjort i juni 2013.

Windows Azure Virtual Machine Characteristics

Når du ser på CPU-egenskaberne på fanen Ydelse i Windows Server 2012 R2 Task Manager (i figur 1 og figur 2), vil du bemærke, at den rapporterer, at den bruger en relativt gammel, 45nm AMD Opteron 4171 HE-processor, der kører kl. en hastighed på 2,1 GHz. Denne særlige seks-core processor blev introduceret i juni 2010, som en del af to-socket Lissabon-familien. HE-suffikset betyder, at det er en "lav-powered" energieffektiv model, som ikke er et godt valg til SQL Server-brug, da den giver afkald på en betydelig mængde ydeevne for en relativt lille mængde reduceret energiforbrug. Efter at have gravet lidt, har jeg fået at vide, at denne processor er en speciel OEM-processor til Microsoft-datacentre.


Figur 1:Grundlæggende A0 Virtual Machine i East U.S. Data Center


Figur 2:Standard A7 Virtual Machine i East U.S. Data Center

Det andet store problem med denne processor udover dens alder og relativt dårlige enkelttrådede ydeevne er det faktum, at den kun har seks fysiske kerner. Dette er et problem med Basic A4-, Standard A4- og Standard A7 VM-størrelserne, som har to NUMA-noder og otte fysiske kerner i alt. Dette ville betyde, at en VM af den størrelse ville krydse en NUMA-node på den underliggende fysiske vært, hvilket ikke er en god idé for hukommelsesydelse. Jeg har svært ved at tro, at Microsoft ville gøre dette med vilje. Jeg har også svært ved at tro, at hver eneste Azure VM i hvert eneste datacenter, som jeg har prøvet indtil videre, bruger den nøjagtig samme ældre AMD-processor. Det er ret almindeligt kendt, at Microsoft har mindst tre forskellige generationer af hardware (Gen 1, Gen 2 og Gen 3), som de hidtil har brugt i deres Azure-datacentre, der tilbyder forskellig VM-ydeevne. Efter nogle flere forespørgsler har jeg opdaget, at denne AMD Opteron 4171 HE-processor er en Azure Gen 2-processor.

Du kan gennemse Geekbench 3 online-databasen over uploadede benchmark-resultater og lede efter systemer, der bruger AMD Opteron 4171 HE-processoren her. Du bemærker måske, at hvert eneste resultat for denne processor ser ud til at være for en Microsoft Virtual Machine, hvilket også er ret nysgerrigt. Windows Server 2012 R2 Task Manager rapporterer L1-cachen som "N/A" og viser ikke engang L2- og L3-cachestørrelserne på disse Azure VM'er. Et andet mærkeligt bevis er det faktum, at standardinstanserne har omkring 50 % højere Geekbench 3-score end de tilsvarende Basic-instanser, når de har nøjagtig det samme samlede antal processorkerner og hukommelsesstørrelser for både Single-Core-score og Multi-Core score. Så meget af en varians giver ingen mening, hvis den underliggende værtsmaskine faktisk bruger den samme processor.

Oversigt

Alle disse beviser førte mig til at konkludere, at Microsoft sandsynligvis tilslørede den faktiske processor i værtsmaskinen. Jeg tænkte, at de måske gør dette for at forsøge at forhindre folk i med vilje at klargøre flere VM'er, indtil de tilfældigvis får en VM kører på nyere, hurtigere, værtshardware. Det viser sig, at Microsoft ikke er helt så klog. Jeg er blevet forsikret om, at Microsoft ikke ændrer identiteten af ​​CPU'en i en Azure VM. Der er nyere Azure Gen 3-processorer, som du kan få i en Azure VM, da du klargør nye VM'er i fremtiden. En anden mulig årsag til mine resultater var, at de sandsynligvis bruger en form for styring til at begrænse VM-ydeevnen til et pålideligt, ensartet niveau, uanset den underliggende værtshardware, så de kan hoste flere VM'er på mindre hardware over tid. Dette ville være en smart fremgangsmåde for en IaaS-hoster.

De relativt lave Geekbench 3.05-scores (se figur 3) for selv de største Azure VM'er betyder, at du giver afkald på en betydelig mængde processor- og hukommelsesydelse sammenlignet med en tilsvarende fysisk to-socket server med det samme antal processorkerner og hukommelse.


Figur 3:32-bit Geekbench 3.05-resultater for Standard A4 Virtual Machine i East U.S. Data Center

Mange SQL Server-arbejdsbelastninger vil køre perfekt med dette niveau af VM-ydeevne, omend lidt langsommere, end du måske er vant til. Hvis du medregner SQL Server 2014 Enterprise Edition-licensbesparelserne fra en maskine med otte kerner, plus capex for en beskeden to-socket server og dens tilhørende lagerplads, har du råd til at køre en standard A7 virtuel maskine 24×7 i ca. fem til seks år. I betragtning af den slags ROI kan jeg se mange organisationer tage den økonomiske beslutning om at flytte i det mindste en del af deres SQL Server-infrastruktur til Azure Virtual Machines. Så længe din arbejdsbyrde kan køre på en 56 GB eller mindre VM, og så længe det er acceptabelt at have mindre CPU og hukommelsesydelse end en typisk nyere vintage bærbar computer, er dette en rationel fremgangsmåde. Microsoft annoncerede for nylig tilgængeligheden af ​​større, meget hurtigere A8 og A9 VM Compute Intensive Instances, der bruger Intel Xeon E5-2670-processorer. Dette vil være en enorm forbedring af ydeevnen i forhold til Azure Gen 2-processorerne.

Jeg vil tage et kig på I/O-ydeevne i Azure Virtual Machines i en kommende artikel.


  1. Sådan tilføjes ikke null-begrænsning til eksisterende kolonne i MySQL

  2. Opret en automatisk stigningskolonne i SQLite

  3. Salesforce SOQL fra Windows PowerShell

  4. Forstå deadlocks i MySQL og PostgreSQL