Srovnávací test DTU
Platí pro: Azure SQL Database
Jednotka databázové transakce (DTU) je měrná jednotka představující kombinovanou míru procesoru, paměti, čtení a zápisů. Fyzické charakteristiky (procesor, paměť, vstupně-výstupní operace) přidružené k jednotlivým mírám DTU se kalibrují pomocí srovnávacího testu, který simuluje úlohy reálné databáze. Tento článek shrnuje srovnávací test DTU a sdílí informace o schématu, použitých typech transakcí, kombinaci úloh, uživatelích a pacingu, pravidlech škálování a metrikách přidružených k srovnávacímu testu.
Obecné informace o nákupním modelu založeném na DTU najdete v přehledu nákupního modelu založeného na DTU.
Souhrn srovnávacích testů
Srovnávací test DTU měří výkon kombinace základních databázových operací, ke kterým dochází nejčastěji v úlohách online zpracování transakcí (OLTP). I když je srovnávací test navržený s ohledem na cloud computing, schéma databáze, populace dat a transakce byly navrženy tak, aby byly široce reprezentativní pro základní prvky, které se nejčastěji používají v úlohách OLTP.
Korelace výsledků srovnávacích testů s výkonem reálné databáze
Je důležité si uvědomit, že všechny srovnávací testy jsou reprezentativní a orientační pouze. Míra transakcí dosažená pomocí srovnávací aplikace nebude stejná jako míra, která by mohla být dosažena s jinými aplikacemi. Srovnávací test se skládá z kolekce různých typů transakcí spuštěných se schématem obsahujícím rozsah tabulek a datových typů. Zatímco srovnávací test provádí stejné základní operace, které jsou společné pro všechny úlohy OLTP, nepředstavuje žádnou konkrétní třídu databáze nebo aplikace. Cílem srovnávacího testu je poskytnout rozumný průvodce relativním výkonem databáze, kterou lze očekávat při vertikálním navýšení nebo snížení kapacity mezi velikostmi výpočetních prostředků.
Ve skutečnosti mají databáze různé velikosti a složitost, narazí na různé kombinace úloh a budou reagovat různými způsoby. Například aplikace náročná na vstupně-výstupní operace může dříve dojít k dosažení prahových hodnot vstupně-výstupních operací nebo aplikace náročné na procesor může dříve dojít k dosažení limitů procesoru. Neexistuje žádná záruka, že se jakákoli konkrétní databáze bude škálovat stejným způsobem jako srovnávací test pod rostoucí zátěží.
Srovnávací test a jeho metodologie jsou podrobněji popsány v tomto článku.
Schéma
Schéma je navržené tak, aby bylo dostatečně různorodé a složité, aby podporovalo širokou škálu operací. Srovnávací test běží na databázi, která se skládá ze šesti tabulek. Tabulky spadají do tří kategorií: pevná velikost, škálování a růst. Existují dvě tabulky s pevnou velikostí; tři tabulky škálování; a jednu rozrůstající se tabulku. Tabulky s pevnou velikostí mají konstantní počet řádků. Tabulky škálování mají kardinalitu, která je úměrná výkonu databáze, ale během srovnávacího testu se nemění. Rostoucí tabulka má při počátečním načtení stejnou velikost jako škálovací tabulka, ale kardinalita se v průběhu spouštění srovnávacího testu mění při vkládání a odstraňování řádků.
Schéma zahrnuje kombinaci datových typů, včetně celých čísel, čísel, znaků a data a času. Schéma zahrnuje primární a sekundární klíče, ale ne žádné cizí klíče – to znamená, že mezi tabulkami neexistují žádná omezení referenční integrity.
Program generování dat vygeneruje data pro počáteční databázi. Celočíselná a číselná data se generují s různými strategiemi. V některých případech se hodnoty rozdělují náhodně do rozsahu. V jiných případech je sada hodnot náhodně permutována, aby se zajistilo, že je zachováno konkrétní rozdělení. Textová pole se generují z váženého seznamu slov, aby vznikla realistická data.
Velikost databáze je založená na faktoru škálování. Koeficient (zkrácený jako SF) určuje kardinalitu škálování a rostoucích tabulek. Jak je popsáno níže v části Uživatelé a pacing, velikost databáze, počet uživatelů a maximální výkon, a to v poměru k sobě.
Transakce
Úloha se skládá z devíti typů transakcí, jak je znázorněno v následující tabulce. Každá transakce je navržena tak, aby zvýrazňovala konkrétní sadu systémových charakteristik v databázovém stroji a systémovém hardwaru s vysokým kontrastem oproti ostatním transakcím. Tento přístup usnadňuje posouzení dopadu různých komponent na celkový výkon. Například transakce "Read Heavy" vytváří významný počet operací čtení z disku.
Typ transakce | Popis |
---|---|
Číst Lite | VYBRAT; v paměti; Jen pro čtení |
Číst médium | VYBRAT; většinou v paměti; Jen pro čtení |
Čtení heavy | VYBRAT; většinou není v paměti; Jen pro čtení |
Aktualizace Lite | AKTUALIZACE; v paměti; čtení i zápis |
Aktualizace Heavy | AKTUALIZACE; většinou není v paměti; čtení i zápis |
Vložit Lite | VLOŽIT; v paměti; čtení i zápis |
Vložit heavy | VLOŽIT; většinou není v paměti; čtení i zápis |
Odstranění | VYMAZAT; mix in-memory a not in-memory; čtení i zápis |
CPU Heavy | VYBRAT; v paměti; relativně vysoké zatížení procesoru; Jen pro čtení |
Kombinace úloh
Transakce jsou vybrány náhodně z váženého rozdělení s následujícím celkovým mixem. Celková kombinace má poměr čtení a zápisu přibližně 2:1.
Typ transakce | % mixu |
---|---|
Číst Lite | 35 |
Číst médium | 20 |
Čtení heavy | 5 |
Aktualizace Lite | 20 |
Aktualizace Heavy | 3 |
Vložit Lite | 3 |
Vložit heavy | 2 |
Odstranění | 2 |
CPU Heavy | 10 |
Uživatelé a pacing
Úloha srovnávacího testu je řízena nástrojem, který odesílá transakce napříč sadou připojení k simulaci chování řady souběžných uživatelů. I když se všechna připojení a transakce generují počítače, pro zjednodušení se na tato připojení odkazujeme jako na uživatele. I když každý uživatel pracuje nezávisle na všech ostatních uživatelích, všichni uživatelé provádějí stejný cyklus kroků uvedených níže:
- Vytvořte připojení k databázi.
- Opakujte, dokud se nezoznakuje ukončení:
- Výběr náhodné transakce (z váženého rozdělení)
- Proveďte vybranou transakci a změřte dobu odezvy.
- Počkejte na zpoždění pacingu.
- Zavřete připojení k databázi.
- Východ.
Zpoždění pacingu (v kroku 2c) je vybráno náhodně, ale s rozdělením, které má průměr 1,0 sekundy. Každý uživatel tedy může v průměru generovat maximálně jednu transakci za sekundu.
Pravidla škálování
Počet uživatelů je určen velikostí databáze (v jednotkách škálování). Pro každých pět jednotek škálování je jeden uživatel. Kvůli zpoždění pacingu může jeden uživatel vygenerovat v průměru maximálně jednu transakci za sekundu.
Například škálovací faktor 500 databází (SF=500) bude mít 100 uživatelů a může dosáhnout maximální rychlosti 100 TPS. Pokud chcete zvýšit rychlost TPS, vyžaduje více uživatelů a větší databázi.
Doba trvání měření
Platný srovnávací test vyžaduje dobu měření stabilního stavu nejméně jednu hodinu.
Metriky
Klíčové metriky v srovnávacím testu jsou propustnost a doba odezvy.
- Propustnost je základním měřítkem výkonu srovnávacího testu. Propustnost se hlásí v transakcích za jednotku času a počítá všechny typy transakcí.
- Doba odezvy je míra předvídatelnosti výkonu. Omezení doby odezvy se u třídy služby liší s vyššími třídami služby, které mají přísnější požadavek na dobu odezvy, jak je znázorněno níže.
Třída služby | Míra propustnosti | Požadavek na dobu odezvy |
---|---|---|
Premium | Transakce za sekundu | 95. percentil při 0,5 sekundách |
Standard | Transakce za minutu | 90. percentil při 1,0 sekundách |
Basic | Transakce za hodinu | 80. percentil při 2,0 sekundách |
Poznámka:
Metriky doby odezvy jsou specifické pro srovnávací test DTU. Doby odezvy pro jiné úlohy jsou závislé na úlohách a budou se lišit.
Další kroky
Další informace o nákupních modelech a souvisejících konceptech najdete v následujících článcích:
- Přehled nákupního modelu založeného na DTU
- Nákupní model virtuálních jader – Azure SQL Database
- Porovnání nákupních modelů založených na virtuálních jádrech a DTU služby Azure SQL Database
- Migrace služby Azure SQL Database z modelu založeného na DTU na model založený na virtuálních jádrech
- Limity prostředků pro izolované databáze využívající nákupní model DTU – Azure SQL Database
- Limity prostředků pro elastické fondy s využitím nákupního modelu DTU