Test porównawczy jednostek DTU

Dotyczy:Azure SQL Database

Jednostka transakcji bazy danych (DTU) to jednostka miary reprezentująca mieszaną miarę procesora CPU, pamięci, odczytów i zapisów. Cechy fizyczne (procesor CPU, pamięć, operacje we/wy) skojarzone z każdą miarą DTU są skalibrowane przy użyciu testu porównawczego, który symuluje rzeczywiste obciążenie bazy danych. W tym artykule przedstawiono podsumowanie testu porównawczego jednostek DTU i udostępnia informacje o schemacie, używanych typach transakcji, mieszaniu obciążeń, użytkownikach i pacingu, regułach skalowania i metrykach skojarzonych z testem porównawczym.

Aby uzyskać ogólne informacje na temat modelu zakupów opartego na jednostkach DTU, zobacz Omówienie modelu zakupów opartego na jednostkach DTU.

Podsumowanie testu porównawczego

Test porównawczy DTU mierzy wydajność różnych podstawowych operacji bazy danych, które występują najczęściej w obciążeniach przetwarzania transakcji online (OLTP). Mimo że test porównawczy został zaprojektowany z myślą o przetwarzaniu w chmurze, schemat bazy danych, populację danych i transakcje zostały zaprojektowane tak, aby były szeroko reprezentatywne dla podstawowych elementów najczęściej używanych w obciążeniach OLTP.

Korelowanie wyników testu porównawczego do rzeczywistej wydajności bazy danych

Ważne jest, aby zrozumieć, że wszystkie testy porównawcze są reprezentatywne i wskazują tylko. Stawki transakcji osiągnięte za pomocą aplikacji porównawczej nie będą takie same jak te, które można osiągnąć w przypadku innych aplikacji. Test porównawczy składa się z kolekcji różnych typów transakcji uruchamianych względem schematu zawierającego zakres tabel i typów danych. Podczas gdy test porównawczy wykonuje te same podstawowe operacje, które są wspólne dla wszystkich obciążeń OLTP, nie reprezentuje żadnej konkretnej klasy bazy danych ani aplikacji. Celem testu porównawczego jest zapewnienie rozsądnego przewodnika po względnej wydajności bazy danych, która może być oczekiwana podczas skalowania w górę lub w dół między rozmiarami obliczeniowymi.

W rzeczywistości bazy danych mają różne rozmiary i złożoność, napotykają różne kombinacje obciążeń i będą reagować na różne sposoby. Na przykład aplikacja intensywnie korzystająca z operacji we/wy może szybciej przekroczyć progi operacji we/wy lub aplikacja intensywnie korzystająca z procesora CPU może osiągnąć limity procesora CPU wcześniej. Nie ma gwarancji, że żadna konkretna baza danych będzie skalowana w taki sam sposób, jak w przypadku testu porównawczego pod rosnącym obciążeniem.

Test porównawczy i jego metodologia zostały szczegółowo opisane w tym artykule.

Schemat

Schemat został zaprojektowany tak, aby miał wystarczającą różnorodność i złożoność, aby obsługiwać szeroką gamę operacji. Test porównawczy jest uruchamiany względem bazy danych składającej się z sześciu tabel. Tabele dzielą się na trzy kategorie: stały rozmiar, skalowanie i rozwijanie. Istnieją dwie tabele o stałym rozmiarze; trzy tabele skalowania; i jedna rosnąca tabela. Tabele o stałym rozmiarze mają stałą liczbę wierszy. Tabele skalowania mają kardynalność proporcjonalną do wydajności bazy danych, ale nie zmieniają się podczas testu porównawczego. Rosnąca tabela ma rozmiar, taki jak tabela skalowania podczas początkowego obciążenia, ale następnie kardynalność zmienia się w trakcie uruchamiania testu porównawczego w miarę wstawiania i usuwania wierszy.

Schemat zawiera kombinację typów danych, w tym liczb całkowitych, liczbowych, znaków i daty/godziny. Schemat zawiera klucze podstawowe i pomocnicze, ale nie żadne klucze obce — czyli nie istnieją żadne ograniczenia integralności referencyjnej między tabelami.

Program generowania danych generuje dane dla początkowej bazy danych. Liczba całkowita i dane liczbowe są generowane przy użyciu różnych strategii. W niektórych przypadkach wartości są dystrybuowane losowo w zakresie. W innych przypadkach zestaw wartości jest losowo permutowany, aby upewnić się, że określony rozkład jest utrzymywany. Pola tekstowe są generowane na podstawie ważonej listy wyrazów w celu wygenerowania realistycznych danych.

Rozmiar bazy danych jest oparty na współczynniku skalowania. Współczynnik skalowania (skrócony jako SF) określa kardynalność skalowania i rosnących tabel. Jak opisano poniżej w sekcji Użytkownicy i tempo, rozmiar bazy danych, liczba użytkowników i maksymalna wydajność w proporcji do siebie.

Transakcje

Obciążenie składa się z dziewięciu typów transakcji, jak pokazano w poniższej tabeli. Każda transakcja ma na celu wyróżnienie określonego zestawu cech systemowych w a także sprzęcie aparatu bazy danych i systemu z dużym kontrastem z innych transakcji. Takie podejście ułatwia ocenę wpływu różnych składników na ogólną wydajność. Na przykład transakcja "Read Heavy" generuje znaczną liczbę operacji odczytu z dysku.

Typ transakcji opis
Przeczytaj Lite WYBIERZ; w pamięci; tylko do odczytu
Odczyt — średni rozmiar WYBIERZ; głównie w pamięci; tylko do odczytu
Odczyt ciężki WYBIERZ; w większości nie w pamięci; tylko do odczytu
Aktualizuj pakiet Lite AKTUALIZACJI; w pamięci; odczyt-zapis
Aktualizacja ciężkich AKTUALIZACJI; w większości nie w pamięci; odczyt-zapis
Wstaw lite WSTAWIĆ; w pamięci; odczyt-zapis
Wstaw ciężki WSTAWIĆ; w większości nie w pamięci; odczyt-zapis
Usuń USUNĄĆ; wymieszać w pamięci, a nie w pamięci; odczyt-zapis
CPU Heavy WYBIERZ; w pamięci; stosunkowo duże obciążenie procesora CPU; tylko do odczytu

Mieszanie obciążeń

Transakcje są wybierane losowo z rozkładu ważonego z następującą ogólną mieszanką. Ogólna mieszanka ma stosunek odczytu/zapisu do około 2:1.

Typ transakcji % mieszanki
Przeczytaj Lite 35
Odczyt — średni rozmiar 20
Odczyt ciężki 5
Aktualizuj pakiet Lite 20
Aktualizacja ciężkich 3
Wstaw lite 3
Wstaw ciężki 2
Usuń 2
CPU Heavy 10

Użytkownicy i tempo

Obciążenie porównawcze jest oparte na narzędziu, które przesyła transakcje w zestawie połączeń w celu symulowania zachowania wielu równoczesnych użytkowników. Mimo że wszystkie połączenia i transakcje są generowane przez maszynę, dla uproszczenia nazywamy te połączenia użytkownikami. Mimo że każdy użytkownik działa niezależnie od wszystkich innych użytkowników, wszyscy użytkownicy wykonują ten sam cykl kroków przedstawionych poniżej:

  1. Ustanów połączenie z bazą danych.
  2. Powtarzaj do momentu zasygnalizowania zakończenia:
    • Wybierz transakcję losowo (z rozkładu ważonego).
    • Wykonaj wybraną transakcję i zmierz czas odpowiedzi.
    • Poczekaj na opóźnienie.
  3. Zamknij połączenie z bazą danych.
  4. Wyjścia.

Opóźnienie pacyfikacji (w kroku 2c) jest wybierane losowo, ale z rozkładem, który ma średnio 1,0 sekundy. W związku z tym każdy użytkownik może średnio wygenerować co najwyżej jedną transakcję na sekundę.

Reguły skalowania

Liczba użytkowników zależy od rozmiaru bazy danych (w jednostkach współczynnika skalowania). Co pięć jednostek współczynnika skalowania jest jednym użytkownikiem. Ze względu na opóźnienie, jeden użytkownik może wygenerować co najwyżej jedną transakcję na sekundę, średnio.

Na przykład współczynnik skalowania 500 (SF=500) będzie miał 100 użytkowników i może osiągnąć maksymalną szybkość 100 TPS. Aby zwiększyć szybkość tps wymaga większej liczby użytkowników i większej bazy danych.

Czas trwania pomiaru

Prawidłowy przebieg testu porównawczego wymaga stałego czasu trwania pomiaru co najmniej jednej godziny.

Metryki

Kluczowe metryki w tezie porównawczej to przepływność i czas odpowiedzi.

  • Przepływność to podstawowa miara wydajności w temie porównawczym. Przepływność jest zgłaszana w transakcjach na jednostkę czasu, zliczając wszystkie typy transakcji.
  • Czas odpowiedzi to miara przewidywalności wydajności. Ograniczenie czasu odpowiedzi różni się w zależności od klasy usługi, a wyższe klasy usługi mają bardziej rygorystyczne wymaganie czasu odpowiedzi, jak pokazano poniżej.
Klasa usługi Miara przepływności Wymaganie dotyczące czasu odpowiedzi
Premium Transakcje na sekundę 95. percentyl na 0,5 sekundy
Standardowa Transakcje na minutę 90. percentyl na 1,0 sekundy
Podstawowa Transakcje na godzinę 80. percentyl na 2,0 sekundy

Uwaga

Metryki czasu odpowiedzi są specyficzne dla testu porównawczego jednostek DTU. Czasy odpowiedzi dla innych obciążeń są zależne od obciążenia i będą się różnić.

Następne kroki

Dowiedz się więcej na temat modeli zakupów i powiązanych pojęć w następujących artykułach: