Sdílet prostřednictvím


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:

  1. Vytvořte připojení k databázi.
  2. 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.
  3. Zavřete připojení k databázi.
  4. 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: