sql >> Databáze >  >> RDS >> Database

Úvahy o výkonu spravované instance Azure SQL

Spravovaná instance Azure SQL Database byla obecně dostupná na konci roku 2018. Od té doby začalo mnoho organizací migrovat na spravovanou instanci, aby využily výhody spravovaného prostředí. Organizace využívají výhod spravovaného zálohování, spousty vestavěných funkcí zabezpečení, 99,99% dostupnosti SLA a vždy aktuálního prostředí, kde již nenesou odpovědnost za opravy SQL Serveru nebo operačního systému.

Jedna velikost ne vždy se hodí všem.

Spravovaná instance poskytuje dvě úrovně výkonu. Obecný účel vrstva je navržena pro aplikace s typickými požadavky na výkon a I/O latenci a poskytuje vestavěnou HA. Kritické pro podnikání vrstva je navržena pro aplikace, které vyžadují nízkou I/O latenci a vyšší požadavky na HA. Business Critical také poskytuje dvě nečitelné sekundární a jednu čitelnou sekundární. Čitelná sekundární část je skvělý způsob, jak rozdělit pracovní zátěž mimo primární, což může snížit úroveň služeb požadovanou pro primární – a tím snížit celkové výdaje za instanci.

Když byla poprvé vydána Managed Instance, mohli jste si vybrat mezi procesory Gen4 a Gen5. Gen4 je stále popsán v dokumentaci, ale tato možnost je nyní většinou nedostupná. V tomto článku se budu zabývat pouze konfiguracemi využívajícími procesory Gen5.

Každá vrstva služeb podporuje kdekoli od 4 do 80 logických CPU – známých také jako virtuální jádra nebo vCores. Paměť je přidělena přibližně 5,1 GB na vCore. General Purpose poskytuje až 8 TB vysoce výkonného úložiště blob Azure, zatímco Business Critical poskytuje až 4 TB superrychlého místního úložiště SSD.

Paměť

S pouze 5,1 GB paměti na vCore by instance s menším počtem vCore mohla mít potíže. Možnosti pro konfigurace vCore jsou 4, 8, 16, 24, 32, 40, 64 a 80 vCore. Pokud spočítáte každou z možností vCore ((number of vCores) × (5.1 GB) ), získáte následující kombinace jádra a paměti:

 4 vCore =20,4 GB 8 vCores =40,8 GB 16 vCores =81,6 GB 24 vCores =122,4 GB 32 vCores =163,2 GB 40 vCores =204,0 GB 64 vCores =3206,4 GBpřed> 80 GB =806,4 GB. 

U mnoha organizací, kterým jsem pomáhal při přechodu z on-premise na Managed Instance, jsem zaznamenal výrazné snížení paměti. Typické místní konfigurace by byly 4 vCore a 32 GB paměti nebo 8 vCore a 64 GB. Oba mají na svědomí více než 30% snížení paměti. Pokud již instance byla pod tlakem paměti, může to způsobit problémy. Ve většině případů jsme byli schopni optimalizovat místní instanci, abychom pomohli zmírnit tlak na paměť před přechodem na spravovanou instanci, ale v několika případech musel zákazník použít vyšší instanci vCore, aby zmírnil tlak na paměť. .

Úložiště

Úložiště je o něco obtížnější naplánovat a zvážit, protože je třeba vzít v úvahu více faktorů. Pro úložiště musíte vzít v úvahu celkové požadavky na úložiště jak pro velikost úložiště, tak pro potřeby I/O. Kolik GB nebo TB je potřeba pro instanci SQL Server a jak rychlé musí být úložiště? Kolik IOPS a jakou propustnost používá místní instance? Chcete-li to provést, musíte pomocí perfmon zaznamenat průměrné a maximální MB/s a/nebo pořídit snímky sys.dm_io_virtual_file_stats, abyste zachytili využití propustnosti. To vám dá představu o tom, jaký typ I/O a propustnost v novém prostředí potřebujete. Několik zákazníků, se kterými jsem pracoval, tuto důležitou součást plánování migrace vynechalo a setkali se s problémy s výkonem kvůli výběru úrovně instance, která nepodporovala jejich pracovní zátěž.

To je pro základní úroveň zásadní, protože u místních serverů je běžné mít úložiště poskytované ze superrychlé sítě SAN s vysokou propustností až po virtuální stroje menší velikosti. V Azure jsou vaše limity IOPS a propustnosti určeny velikostí výpočetního uzlu a v případě správy instance je to určeno počtem přidělených virtuálních jader. Pro obecné účely je limit 30–40 000 IOPS na instanci nebo 500 až 12 500 IOPS na soubor v závislosti na velikosti souboru. Propustnost na soubor je také založena na velikosti, která začíná na 100 MiB/s pro soubory o velikosti až 128 GB a až 480 MiB/s pro soubory o velikosti 4 TB a větší. V Business Critical se IOPS pohybují od 5,5 000 do 110 000 na instanci nebo 1 375 IOPS na vCore.

Spotřebitelé musí také počítat s propustností zápisu do protokolu pro instanci. General Purpose je 3 MB/s na vCore s max. 22 MB/s pro instanci a Business Critical je 4 MB/s na vCore s max. 48 MB/s pro celou instanci. Podle mých zkušeností s prací se zákazníky mnozí tyto limity pro propustnost zápisu daleko překročili. Pro některé to byla showstopper a pro jiné byli schopni optimalizovat a upravit svůj systém, aby snížili zátěž.

Kromě potřeby znát celkovou propustnost a požadavky na I/O je velikost úložiště také vázána na počet vybraných virtuálních jader. Pro obecné účely:

 4 virtuální jádra =2 TB max. 8 – 80 virtuálních jader =8 TB max.

Pro kritické podnikání:

 4 – 16 vCores =1 TB 24 vCores =2 TB 32 – 80 vCore =4 TB

Pro General Purpose, jakmile se dostanete na 8 vCores, můžete maximalizovat dostupné úložiště, což funguje dobře pro ty, kteří potřebují pouze General Purpose. Ale když potřebujete Business Critical, věci mohou být náročnější. Pracoval jsem s mnoha zákazníky, kteří mají více TB přidělených virtuálním počítačům se 4, 8, 16 a 24 logickými procesory. Každý z těchto zákazníků by musel posouvat alespoň 32 virtuálních jader, aby splnil svůj požadavek na úložiště, což je nákladná možnost. Azure SQL Database má podobný problém s maximální velikostí databáze a Microsoft přišel s možností Hyperscale. Očekáváme, že se to stane jednou z možností pro spravovanou instanci, která bude podobným způsobem řešit limity úložiště.

Velikost databáze tempdb také koreluje s počtem virtuálních jader. Na úrovni General Purpose získáte 24 GB na vCore (až 1 920 GB) pro datové soubory s limitem velikosti souboru protokolu tempdb 120 GB. Pro vrstvu Business Critical může tempdb narůst až na aktuálně dostupnou velikost úložiště instance.

OLTP v paměti

Pro ty, kteří v současné době využívají výhody In-Memory OLTP (nebo to plánují), vezměte na vědomí, že je podporováno pouze na úrovni služeb Business Critical. Množství místa dostupného pro tabulky In-Memory je také omezeno vCores:

 4 vCore =3,14 GB 8 vCores =6,28 GB 16 vCores =15,77 GB 24 vCores =25,25 GB 32 vCores =37,94 GB 40 vCores =52,23 GB 64 vCores =980,91 GB =86,3 vCores. 

Závěr

Při plánování migrace na spravovanou instanci Azure SQL je třeba vzít v úvahu několik věcí, než se rozhodnete migrovat. Nejprve musíte plně porozumět požadavkům na paměť, CPU a úložiště, protože to určí velikost instance. Stejně důležité je vědět, jaké jsou vaše I/O požadavky na úložiště. IOPS a propustnost pro úroveň General Purpose jsou přímo svázány s virtuálními jádry a velikostí databázových souborů. U Business Critical je vázán na počet virtuálních jader. Pokud máte velmi intenzivní I/O zátěž, Business Critical je atraktivnější vrstvou služeb, protože poskytuje vyšší IOPS a propustnost. Výzvou pro Business Critical je nižší kapacita úložiště a podpora pouze 1 TB pro celou instanci až do 16 virtuálních jader.

Při správném plánování a možné dekonsolidaci větších instancí na menší spravované instance může být tato nabídka pro mnoho organizací velmi životaschopnou možností migrace. Atraktivní jsou výhody spravovaných záloh, vestavěné HA s 99,99% SLA, přidané bezpečnostní funkce a možnosti a nemusíte se starat o záplatování instance OS nebo SQL Server.


  1. Otázky k pohovoru Oracle

  2. Co znamená znaménko (+) v klauzuli WHERE Oracle SQL?

  3. Vydán SQL Developer 4.0

  4. Aplikace se zhroutí při instalaci s chybou sqlite3_exec – Nepodařilo se nastavit synchronní režim =1 (normální)