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 | WYBRAĆ; w pamięci; tylko do odczytu |
Odczyt — średni rozmiar | WYBRAĆ; głównie w pamięci; tylko do odczytu |
Odczyt ciężki | WYBRAĆ; w większości nie w pamięci; tylko do odczytu |
Aktualizuj pakiet Lite | AKTUALIZACJA; w pamięci; odczyt-zapis |
Aktualizacja ciężkich | AKTUALIZACJA; w większości nie w pamięci; odczyt-zapis |
Wstaw lite | WSTAWIAĆ; w pamięci; odczyt-zapis |
Wstaw ciężki | WSTAWIAĆ; w większości nie w pamięci; odczyt-zapis |
Delete | USUNĄĆ; wymieszać w pamięci, a nie w pamięci; odczyt-zapis |
CPU Heavy | WYBRAĆ; 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 |
Delete | 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:
- Ustanów połączenie z bazą danych.
- 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.
- Zamknij połączenie z bazą danych.
- Wyjście.
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:
- Omówienie modelu zakupów opartego na jednostkach DTU
- Model zakupów rdzeni wirtualnych — Azure SQL Database
- Porównanie modeli zakupów opartych na rdzeniach wirtualnych i jednostkach DTU w usłudze Azure SQL Database
- Migrowanie usługi Azure SQL Database z modelu opartego na jednostkach DTU do modelu opartego na rdzeniach wirtualnych
- Limity zasobów dla pojedynczych baz danych przy użyciu modelu zakupów jednostek DTU — Azure SQL Database
- Limity zasobów dla pul elastycznych przy użyciu modelu zakupów jednostek DTU