sql >> Databasteknik >  >> RDS >> Database

Jämför prestanda för Windows Azure VM, del 1

Om du inte har ansträngt dig för att ignorera det kanske du har hört att Microsoft skulle verkligen som för dig att flytta mycket av din SQL Server-databasinfrastruktur till ett Microsoft-datacenter, oavsett om du går till en Azure SQL-databas (som jag nyligen diskuterade här), eller om du är värd för den på en Windows Azure Virtual Machine. Microsoft kallar dessa beständiga virtuella maskiner för beräkningsinstanser , och de har två huvudnivåer att välja mellan, som inkluderar Basic Compute Tier och Standard Compute Tier. De beskriver dessa två nivåer som:

Basic Compute Tier :Denna nya nivå av beräkningsinstanser liknar konfigurationen Standardnivån med lägre priser. Dessa instanser inkluderar inte lastbalanserare och automatisk skalning. De är väl lämpade för enstaka instansproduktionsapplikationer, utvecklingsarbetsbelastningar, testservrar och batchbearbetningsapplikationer som kanske inte kräver dessa funktioner. Den grundläggande beräkningsnivån är för närvarande endast tillgänglig för allmänna ändamål. Dessa instanser sträcker sig från Basic A0 till Basic A4.

Standard Compute Tier :Denna nivå av beräkningsinstanser ger en optimal uppsättning beräknings-, minnes- och I/O-resurser för att köra ett brett utbud av applikationer. Dessa instanser inkluderar både automatisk skalning och lastbalansering utan extra kostnad. Standardberäkningsnivån är tillgänglig för allmänna ändamål, minnesintensiva och beräkningsintensiva instanser. Dessa instanser sträcker sig från standard A0 till standard A7.

Det finns flera viktiga fördelar med att vara värd för din SQL Server-infrastruktur på en Windows Azure Virtual Machine. För det första har du inga kapitalkostnader för lagring eller hårdvara, tillsammans med inget pågående underhåll av lagringen eller hårdvaran. För det andra har du inga OS- eller SQL Server-licenskostnader (när du använder en SQL-avbildning från det vanliga Azure VM-galleriet). För det tredje kan du skapa en ny Azure VM som redan har SQL Server installerad på några minuter (även om det kan ta lite längre tid att helt konfigurera operativsystemet och SQL Server-instansen till dina exakta krav). Framöver kommer det fortfarande att vara upp till dig att installera Windows- och SQL Server-uppdateringar, men du behöver inte oroa dig för saker som firmware, BIOS eller drivrutinsuppdateringar.

Om du vill använda Windows Azure Virtual Machines för att vara värd för hela eller delar av din SQL Server-infrastruktur bör du vara medveten om de aktuella prisuppgifterna som är tillgängliga för det specifika Azure-datacenter som du vill vara värd för dina virtuella maskiner, eftersom prissättning kan variera mellan olika Microsoft-datacenter. Microsoft har för närvarande 13 olika storlekar på virtuella Windows Azure-datorer, som beskrivs i deras virtuella maskin- och molntjänststorlekar för Azure-sidan. Microsoft sänkte timpriset för de minnesintensiva instanserna (Standard A5, Standard A6 och Standard A7) med 18 % i de flesta av deras datacenter den 1 maj 2014, och priset som visas i Tabell 1 återspeglar de nya, lägre priserna.

Single-Core-poängen och multi-Core-poängen i de två högra kolumnerna i Tabell 1 är de genomsnittliga poängen som jag observerade med 32-bitarsversionen av Geekbench 3.05-processorn och minnesriktmärket på ett exempel på Windows Server 2012 R2 Datacenter VM i East U.S. Data Center. Dessa poäng kanske eller kanske inte är representativa för vad du kommer att se.

VM-storlek CPU-kärnor Minne (GB) Timkostnad Månadskostnad Single Core-poäng Multi-Core Score
Grundläggande A0 1 (delad) 0,75 0,018 USD ~14 USD 507 498
Grundläggande A1 1 1,75 0,074 USD ~56 USD 679 670
Grundläggande A2 2 3,50 0,148 USD ~111 USD 709 1 358
Grundläggande A3 4 7.00 0,296 USD ~221 USD 717 2 472
Grundläggande A4 8 14.00 0,592 USD ~441 USD 724 4 042
Standard A0 1 (delad) 0,75 0,020 USD ~15 USD 492 502
Standard A1 1 1,75 0,090 USD ~67 USD 1 068 1 083
Standard A2 2 3,50 0,180 USD ~134 USD 1 069 2 002
Standard A3 4 7.00 0,360 USD ~268 USD 1 070 3 593
Standard A4 8 14.00 0,720 USD ~536 USD 1 094 6 446
Standard A5 2 14.00 0,330 USD ~246 USD 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 USD 1 056 6 185

Tabell 1:Specifikationer för utvalda virtuella datorer för Windows Azure i East U.S. Data Center

För närvarande har Microsoft nio datacenter som kan vara värd för nya beständiga virtuella maskiner, som inkluderar östra USA, västra USA, södra Brasilien (förhandsgranskning), norra Europa, västra Europa, östra Asien, Sydostasien, västra Japan och östra Japan. Enligt Microsoft är "A1 den minsta storleken som rekommenderas för produktionsbelastningar", och du bör välja "en virtuell maskin med 4 eller 8 CPU-kärnor när du använder SQL Server Enterprise Edition." En användbar, om än något föråldrad referens för att köra SQL Server på en Windows Azure Virtual Machine är prestandaguiden för SQL Server i Windows Azure Virtual Machines som publicerades i juni 2013.

Karakteristika för Windows Azure Virtual Machine

När du tittar på CPU-egenskaperna på fliken Prestanda i Windows Server 2012 R2 Task Manager (i figur 1 och figur 2), kommer du att märka att den rapporterar att den använder en relativt gammal 45nm AMD Opteron 4171 HE-processor, som körs kl. en hastighet på 2,1 GHz. Denna speciella sexkärniga processor introducerades i juni 2010, som en del av Lissabonfamiljen med två sockel. HE-suffixet betyder att det är en "lågdriven" energieffektiv modell som inte är ett bra val för SQL Server-användning, eftersom den ger upp en betydande mängd prestanda för en relativt liten mängd minskad energianvändning. Efter att ha grävt lite har jag fått veta att den här processorn är en speciell OEM-processor för Microsofts datacenter.


Figur 1:Basic A0 Virtual Machine in East U.S. Data Center


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

Det andra stora problemet med denna processor förutom dess ålder och relativt dåliga entrådiga prestanda är det faktum att den bara har sex fysiska kärnor. Detta är ett problem med VM-storlekarna Basic A4, Standard A4 och Standard A7, som har två NUMA-noder och totalt åtta fysiska kärnor. Detta skulle innebära att en virtuell dator av den storleken skulle korsa en NUMA-nod på den underliggande fysiska värden, vilket inte är en bra idé för minnesprestanda. Jag har svårt att tro att Microsoft skulle göra detta med flit. Jag har också svårt att tro att varenda Azure VM i varenda datacenter som jag har provat hittills använder exakt samma äldre AMD-processor. Det är ganska allmänt känt att Microsoft har minst tre olika generationer av hårdvara (Gen 1, Gen 2 och Gen 3) som de hittills har använt i sina Azure-datacenter, som erbjuder olika VM-prestanda. Efter några fler förfrågningar har jag upptäckt att denna AMD Opteron 4171 HE-processor är en Azure Gen 2-processor.

Du kan bläddra i Geekbench 3 onlinedatabas med uppladdade benchmarkresultat och leta efter system som använder AMD Opteron 4171 HE-processorn här. Du kanske märker att varje enskilt resultat för den här processorn verkar vara för en Microsoft Virtual Machine, vilket också är ganska nyfiket. Windows Server 2012 R2 Task Manager rapporterar L1-cachen som "N/A" och listar inte ens L2- och L3-cachestorlekarna på dessa virtuella Azure-datorer. Ett annat konstigt bevis är det faktum att standardinstanserna har cirka 50 % högre Geekbench 3-poäng än motsvarande Basic-instanser när de har exakt samma totala antal processorkärnor och minnesstorlekar, för både Single-Core-poängen och Multi-Core Göra. Denna stora variation är inte meningsfull om den underliggande värddatorn faktiskt använder samma processor.

Sammanfattning

Alla dessa bevis ledde mig till en början till slutsatsen att Microsoft förmodligen skymmer den faktiska processorn i värddatorn. Jag trodde att de kan göra det här för att försöka förhindra människor från att medvetet tillhandahålla flera virtuella datorer tills de råkar få en virtuell dator körs på nyare, snabbare värdhårdvara. Det visar sig att Microsoft inte är riktigt så smart. Jag har försäkrats om att Microsoft inte ändrar identiteten för CPU:n i en Azure VM. Det finns nyare Azure Gen 3-processorer som du kan få i en virtuell Azure, eftersom du tillhandahåller nya virtuella datorer i framtiden. En annan möjlig orsak till mina resultat var att de sannolikt använder någon form av styrning för att begränsa virtuella datorers prestanda till en pålitlig, enhetlig nivå, oavsett den underliggande värdhårdvaran, så att de kan vara värd för fler virtuella datorer på mindre hårdvara över tiden. Detta skulle vara en smart handling för en IaaS-värd.

De relativt låga Geekbench 3.05-poängen (se figur 3) för även de största virtuella Azure-datorerna innebär att du ger upp en betydande mängd processor- och minnesprestanda jämfört med en likvärdig fysisk server med två sockel med samma antal processorkärnor och minne.


Figur 3:32-bitars Geekbench 3.05-resultat för Standard A4 Virtual Machine i East U.S. Data Center

Många SQL Server-arbetsbelastningar kommer att fungera utmärkt med den här nivån av VM-prestanda, om än lite långsammare än du kanske är van vid. Om du räknar in SQL Server 2014 Enterprise Edition-licensbesparingarna från en åttakärnig maskin, plus capex för en blygsam, två-socket server och dess tillhörande lagring, har du råd att köra en standard A7 virtuell maskin 24×7 i ca. fem till sex år. Med tanke på den typen av ROI kan jag se många organisationer fatta det ekonomiska beslutet att flytta åtminstone en del av sin SQL Server-infrastruktur till Azure Virtual Machines. Så länge som din arbetsbelastning kan köras på en virtuell dator på 56 GB eller mindre, och så länge det är acceptabelt att ha mindre CPU- och minnesprestanda än en typisk ny vintage bärbar dator, är detta ett rationellt tillvägagångssätt. Microsoft tillkännagav nyligen tillgången till större, mycket snabbare A8 och A9 VM Compute Intensive Instances, som använder Intel Xeon E5-2670-processorer. Detta kommer att vara en enorm förbättring av prestanda jämfört med Azure Gen 2-processorer.

Jag kommer att ta en titt på I/O-prestanda i Azure Virtual Machines i en kommande artikel.


  1. 4 sätt att ändra tidszonen i Oracle

  2. SQL Server 2012 Service Pack 1 och kumulativ uppdatering 1

  3. Lagra flera bitvärden i en enda tabellkolumn

  4. Hur språkinställningar kan påverka dina FORMAT()-resultat i SQL Server (T-SQL-exempel)