Udostępnij za pośrednictwem


Mierzenie wydajności usługi Azure Cosmos DB for NoSQL za pomocą struktury testów porównawczych

Teraz dostępnych jest więcej opcji niż kiedykolwiek wcześniej do wyboru typu bazy danych odpowiedniego do obciążenia danych. Jednym z kluczowych czynników do wybierania bazy danych jest wydajność bazy danych lub usługi, ale wydajność testów porównawczych może być uciążliwa i podatna na błędy. Struktura testów porównawczych dla baz danych platformy Azure upraszcza proces mierzenia wydajności za pomocą popularnych narzędzi do testów porównawczych typu open source z przepisami o niskim tarciu, które implementują typowe najlepsze rozwiązania. W usłudze Azure Cosmos DB for NoSQL platforma implementuje najlepsze rozwiązania dla zestawu JAVA SDK i używa narzędzia YCSB typu open source. W tym przewodniku użyjesz tej struktury testów porównawczych, aby wdrożyć zadanie odczytu i zapoznać się z tą strukturą.

Wymagania wstępne

Tworzenie zasobów konta usługi Azure Cosmos DB

Najpierw należy utworzyć bazę danych i kontener w istniejącym interfejsie API dla konta NoSQL.

  1. Nawiguj do swojego istniejącego konta API NoSQL w portalu Azure.

  2. W menu zasobów wybierz pozycję Eksplorator danych.

    Zrzut ekranu przedstawiający opcję Eksplorator danych wyróżnioną w menu zasobów.

  3. Na stronie Eksplorator danych wybierz opcję Nowy kontener na pasku poleceń.

    Zrzut ekranu przedstawiający opcję Nowy kontener na pasku poleceń Eksplorator danych.

  4. W oknie dialogowym Nowy kontener utwórz nowy kontener z następującymi ustawieniami:

    Ustawienie Wartość
    Identyfikator bazy danych ycsb
    Typ przepływności bazy danych Instrukcja
    Ilość przepływności bazy danych 400
    Identyfikator kontenera usertable
    Klucz partycji /id

    Zrzut ekranu przedstawiający okno dialogowe Nowy kontener na stronie Eksplorator danych.

Wdrażanie platformy testów porównawczych na platformie Azure

Teraz użyjesz szablonu Azure Resource Manager, aby wdrożyć framework testów porównawczych na Azure z użyciem domyślnego szablonu odczytu.

  1. Wdróż platformę testów porównawczych przy użyciu szablonu usługi Azure Resource Manager dostępnego pod tym linkiem.

    Przycisk Wdróż do Azure.

  2. Na stronie Wdrożenie niestandardowe znajdują się następujące parametry

    Zrzut ekranu przedstawiający stronę Wdrożenie niestandardowe z wypełnionymi wartościami parametrów.

  3. Wybierz Przejrzyj i utwórz, a następnie Utwórz, aby wdrożyć szablon.

  4. Zaczekaj na zakończenie wdrażania.

    Napiwek

    Ukończenie wdrożenia może potrwać od 5 do 10 minut.

Wyświetlanie wyników testu porównawczego

Teraz możesz użyć istniejącego konta usługi Azure Storage, aby sprawdzić stan zadania testu porównawczego i wyświetlić zagregowane wyniki. Stan jest przechowywany przy użyciu tabeli przechowywania, a wyniki są agregowane w obiekt blob do przechowywania przy użyciu formatu CSV.

  1. Przejdź do istniejącego konta usługi Azure Storage w witrynie Azure Portal.

  2. Przejdź do tablicy magazynowej o nazwie ycsbbenchmarkingmetadata i znajdź jednostkę o kluczu partycji ycsb_sql.

    Zrzut ekranu przedstawiający tabelę ycsbbenchmarkingMetadata na koncie magazynu.

  3. Zwróć uwagę na JobStatus pole jednostki tabeli. Początkowo stan zadania to Started i zawiera znacznik czasu we JobStartTime właściwości, ale nie JobFinishTime właściwość .

  4. Poczekaj, aż zadanie ma stan Finished i zawiera znacznik czasu we JobFinishTime właściwości .

    Napiwek

    Ukończenie zadania może potrwać około 20–30 minut.

  5. Przejdź do kontenera magazynu na tym samym koncie z prefiksem ycsbbenchmarking-*. Obserwuj obiekty blob danych wyjściowych i diagnostycznych dla narzędzia.

    Zrzut ekranu przedstawiający kontener i wyjściowe bloby z narzędzia do benchmarkingu.

  6. Otwórz obiekt blob aggregation.csv i obserwuj zawartość. Teraz powinien istnieć zestaw danych CSV z zagregowanymi wynikami ze wszystkich klientów porównawczych.

    Zrzut ekranu przedstawiający zawartość obiektu blob wyników agregacji.

    Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond)
    READ,180000,299,706,448255,1079,1159,2867
    

Przepisy

Struktura testów porównawczych dla baz danych platformy Azure obejmuje procedury do hermetyzacji definicji obciążeń, które są przekazywane do bazowego narzędzia porównawczego dla procesu "1-Click". Definicje obciążeń zostały zaprojektowane na podstawie najlepszych rozwiązań opublikowanych przez zespół usługi Azure Cosmos DB i zespół narzędzia do testów porównawczych. Przepisy zostały przetestowane i sprawdzone pod kątem spójnych wyników.

Możesz spodziewać się następujących opóźnień dla wszystkich przepisów odczytu i zapisu w repozytorium GitHub.

  • Opóźnienie odczytu

    Diagram przedstawiający typowe opóźnienie odczytu średnio około 1 milisekund do 2 milisekund.

  • Opóźnienie zapisu

    Diagram przedstawiający typowe opóźnienie zapisu średnio około 4 milisekund.

Typowe problemy

Ta sekcja zawiera typowe błędy, które mogą wystąpić podczas uruchamiania narzędzia do testów porównawczych. Dzienniki błędów narzędzia są zwykle dostępne w kontenerze na koncie usługi Azure Storage.

Zrzut ekranu przedstawiający kontener i obiekty blob na koncie magazynu.

  • Jeśli dzienniki nie są dostępne na koncie magazynu, ten problem jest zwykle spowodowany nieprawidłowym lub brakującym ciągiem połączenia do magazynu. W tym przypadku ten błąd jest wyświetlany w pliku agent.out w folderze /home/benchmarking maszyny wirtualnej klienta.

    Error while accessing storage account, exiting from this machine in agent.out on the VM
    
  • Ten błąd znajduje się w pliku agent.out zarówno na maszynie wirtualnej klienta, jak i na koncie magazynu, jeśli identyfikator URI punktu końcowego usługi Azure Cosmos DB jest niepoprawny lub nie można go osiągać.

    Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known 
    
  • Ten błąd znajduje się w pliku agent.out zarówno na maszynie wirtualnej klienta, jak i na koncie magazynu, jeśli klucz usługi Azure Cosmos DB jest niepoprawny.

    The input authorization token can't serve the request. The wrong key is being used….
    

Następne kroki

  • Dowiedz się więcej o narzędziu do porównywania porównawczego, korzystając z przewodnika Wprowadzenie.