sql >> Databasteknik >  >> RDS >> Sqlserver

Azure Virtual Machine Developments för SQL Server-användning

Microsoft har ett stort antal olika virtuella Azure-datorserier och storlekar tillgängliga om du är intresserad av att använda deras infrastruktur som en tjänst (IaaS)-alternativ för att vara värd för SQL Server-instanser. Ett första beslut du måste fatta är vilken serie och storlek av Azure VM du vill använda för just din SQL Server-arbetsbelastning.

För lokal användning av SQL Server vill du göra en noggrann analys av din arbetsbelastning och de tillgängliga servermodellerna och processormodellerna för att få en server med ett lämpligt processorval för att minimera dina SQL Server-licenskostnader och få bästa prestanda och kapacitet möjlig till en given SQL Server-licenskostnad. Kostnaden och prestandaskillnaden mellan ett bra processorval och ett dåligt processorval kan vara ganska dramatisk.

Med en Azure VM behöver du göra en liknande analys, men av något andra skäl. Licenskostnaden för SQL Server på en virtuell Azure-dator är direkt relaterad till antalet kärnor i den virtuella datorn. Du vill välja en virtuell datorstorlek som matchar dina förväntade behov av CPU-prestanda och kapacitet, minneskapacitet och lagringsprestanda.

Till skillnad från ett lokalt scenario kommer du att ha mycket mindre kontroll över det faktiska processorvalet i den underliggande värddatorn. Med en Azure VM väljer du en viss maskinserie (som en GS-serie) och storlek i ett visst Azure Data Center, och sedan får du den processor som Microsoft använder för den serien och storleken i det Azure Data Center. Microsoft har för närvarande 42 olika regioner som har Azure Data Centers, så du kan använda matrisen som visas på den här sidan för att upptäcka vilka VM-serier som erbjuds i varje region.

Azure Compute Unit (ACU)

Ett mycket viktigt koncept att förstå när du jämför och väljer en Azure VM SKU är Azure Compute Unit (ACU), som låter dig jämföra beräkningsprestanda (per kärn vCPU-prestanda) mellan olika Azure VM SKU:er. Denna ACU-mätning är för närvarande standardiserad på en liten (Standard_A1) virtuell dator med poängen 100 och alla andra Azure-SKU:er har sedan ACU-poäng som representerar ungefär hur mycket snabbare den specifika Azure-SKU:n kan köra ett standard-CPU-riktmärke. Så till exempel har en Standard_A1 en ACU/vCPU-poäng på 100 medan en Standard_GS5 har en ACU/vCPU-poäng på 240.

Att titta på ACU-poängen för en Azure VM SKU ger dig en bra uppfattning om den enkeltrådade CPU-prestandan för processorn som används i den underliggande värddatorn. Det är också viktigt att förstå om just den processorn stöder Intel Turbo Boost och/eller Intel Hyper-Threading, eftersom inte alla processorer som används i de olika Azure VM SKU:erna stöder dessa tekniker.

Du kan göra detta genom att identifiera den faktiska värdprocessorn i din virtuella dator på CPU-sidan på fliken Prestanda i Windows Task Manager eller genom att använda ett verktyg som CPU-Z. När du har identifierat den exakta processormodellen i värden kan du använda online Intel ARK Database för att få specifika detaljer om den processorn.

Nya Azure VM-storlekar för SQL Server

Ett vanligt problem med storleken på Azure VM för SQL Server har varit det faktum att du ofta var tvungen att välja en virtuell datorstorlek som hade mycket fler virtuella CPU-kärnor än du behövde eller önskade för att ha tillräckligt med minne och lagringsprestanda för att stödja din arbetsbelastning, vilket ökade din månatliga licenskostnad.

Lyckligtvis har Microsoft nyligen gjort beslutsprocessen lite enklare för SQL Server med en ny serie virtuella Azure-datorer som använder vissa speciella virtuella datorer (DS, ES, GS och MS), men som minskar vCPU-antalet till en fjärdedel eller en halv av den ursprungliga VM-storleken, samtidigt som samma minne, lagring och I/O-bandbredd bibehålls. Dessa nya virtuella datorer har ett suffix som anger antalet aktiva vCPU:er för att göra dem lättare att identifiera.

Till exempel skulle en Standard_DS14v2 Azure VM ha 16 vCPU:er, 112 GB RAM och stöd för upp till 51 200 IOPS eller 768 MB/sek sekventiell genomströmning (enligt Microsoft). En ny Standard_DS14-8v2 Azure VM skulle bara ha 8 vCPU:er, med samma minneskapacitet och diskprestanda som Standard_DS14v2, vilket skulle minska din SQL Server-licenskostnad per år med 50 %. Båda dessa Azure VM SKU:er skulle ha samma ACU-poäng på 160.

Ett något förvirrande problem med dessa nya Azure VM SKU:er är att den månatliga Compute-kostnaden (som inkluderar OS-licenser) för båda dessa SKU:er skulle vara densamma (989,52 USD/månad för det här exemplet). Där du sparar är de minskade månatliga licenskostnaderna för SQL Server.

Vad Microsoft gör här är att inaktivera kärnor i den virtuella datorn för att minska dina SQL Server-licenskostnader, vilket är något du inte får göra med lokal SQL Server. Med lokal SQL Server får du inte inaktivera processorkärnor i ditt UEFI/BIOS för att minska dina SQL Server-licenskostnader. Även om du inaktiverar kärnor i UEFI/BIOS, måste du fortfarande licensiera dessa kärnor för SQL Server.

Benchmarka din Azure VM med CPU-Z

Ett mycket snabbt CPU-riktmärke som du kan köra vilken maskin som helst (fysisk eller virtuell, Azure VM eller inte) är det inbyggda CPU-Z-riktmärket, som bara tar cirka 20 sekunder att slutföra. Jag skapade en Standard DS14-8_v2 i South Central US Data Center. Denna virtuella dator använde Intel Xeon E5-2673 v3 Haswell-EP-processor, som är en 12-kärnig processor med en basklockhastighet på 2,4 GHz och en turboklockhastighet på 3,2 GHz som verkar vara en specialanpassad processor SKU som finns inte i Intel Ark-databasen. Denna processorfamilj introducerades under tredje kvartalet 2014, så den har varit tillgänglig i över tre år. På just den här virtuella datorn såg jag inte att Turbo Boost användes under mina tester.

Om du tittar på figurerna 1 till 3 kan du se CPU-Z benchmarkresultaten för denna Azure VM, där figur 4 är resultaten för min visserligen snabba Dell Precision 5520 bärbara dator. Min bärbara dator har samma antal virtuella kärnor som Standard DS14-8_v2 Azure VM, men jag använder en mycket nyare Intel Xeon E3-1505M v6 Kaby Lake-processor med högre basklockhastighet och bättre enkeltrådad prestanda.

Figur 1:Task Manager från Standard DS14-8_v2 i södra centrala USA

Figur 2:CPU-Z CPU-fliken från Standard DS14-8_v2 i södra centrala USA

Figur 3:CPU-Z Bench Tab från Standard DS14-8_v2 i södra centrala USA

Figur 4:CPU-Z Bench Tab från Glenns bärbara dator


  1. Begäran misslyckades med HTTP-status 401:Obehörig I SSRS

  2. Hur ställer man in variabel från en SQL-fråga?

  3. IP-adress som lagras i MySQL-databas med PHP

  4. Förklara JOIN vs. LEFT JOIN och WHERE-förslag till prestanda mer detaljerat