Udostępnij za pośrednictwem


Testy porównawcze wydajności usługi Azure AI Search

Ważne

Te testy porównawcze dotyczą usług wyszukiwania utworzonych przed 3 kwietnia 2024 r. w przypadku wdrożeń uruchomionych w starszej infrastrukturze. Testy porównawcze mają również zastosowanie tylko do obciążeń niewektorowych. Aktualizacje oczekują na usługi i obciążenia dotyczące nowych limitów.

Testy porównawcze wydajności są przydatne do szacowania potencjalnej wydajności w ramach podobnych konfiguracji. Rzeczywista wydajność zależy od różnych czynników, w tym rozmiaru usługi wyszukiwania i typów wysyłanych zapytań.

Aby ułatwić oszacowanie rozmiaru usługi wyszukiwania potrzebnej dla obciążenia, uruchomiliśmy kilka testów porównawczych, aby udokumentować wydajność różnych usług wyszukiwania i konfiguracji.

Aby uwzględnić szereg różnych przypadków użycia, uruchomiliśmy testy porównawcze dla dwóch głównych scenariuszy:

  • Wyszukiwanie w handlu elektronicznym — ten test porównawczy emuluje rzeczywisty scenariusz handlu elektronicznego i opiera się na nordyckiej firmie zajmującej się handlem elektronicznym CDON.
  • Wyszukiwanie dokumentów — ten scenariusz składa się z wyszukiwania słów kluczowych w dokumentach pełnotekstowych z semantic Scholar. To emuluje typowe rozwiązanie do wyszukiwania dokumentów.

Chociaż te scenariusze odzwierciedlają różne przypadki użycia, każdy scenariusz jest inny, dlatego zawsze zalecamy testowanie wydajności poszczególnych obciążeń. Opublikowaliśmy rozwiązanie do testowania wydajnościowego przy użyciu narzędzia JMeter , aby można było uruchamiać podobne testy względem własnej usługi.

Metodologia testowania

Aby porównać wydajność usługi Azure AI Search, przeprowadziliśmy testy dla dwóch różnych scenariuszy w różnych warstwach i kombinacjach replik/partycji.

Aby utworzyć te testy porównawcze, użyto następującej metodologii:

  1. Test rozpoczyna się od X zapytań na sekundę (QPS) przez 180 sekund. Zwykle było to 5 lub 10 QPS.
  2. QPS następnie wzrosła o X i prowadził przez kolejne 180 sekund
  3. Co 180 sekund test wzrósł o X QPS, aż średnie opóźnienie wzrośnie powyżej 1000 ms lub mniej niż 99% zapytań powiodło się.

Poniższy wykres przedstawia wizualny przykład obciążenia zapytania testu:

Przykładowy test

Każdy scenariusz używał co najmniej 10 000 unikatowych zapytań, aby uniknąć nadmiernego niesymetryczności testów przez buforowanie.

Ważne

Te testy obejmują tylko obciążenia zapytań. Jeśli spodziewasz się dużej liczby operacji indeksowania, pamiętaj, aby uwzględnić to w szacowaniu i testowaniu wydajnościowym. Przykładowy kod do symulowania indeksowania można znaleźć w tym samouczku.

Definicje

  • Maksymalna liczba QPS — maksymalna liczba QPS jest oparta na najwyższym poziomie QPS osiągniętym w teście, w którym 99% zapytań zostało ukończonych pomyślnie bez ograniczania przepustowości i średnie opóźnienie pozostał poniżej 1000 ms.

  • Procent maksymalnej liczby QPS — procent maksymalnej liczby QPS osiągniętych dla określonego testu. Na przykład jeśli dany test osiągnął maksymalnie 100 QPS, 20% maksymalnej liczby QPS będzie wynosić 20 QPS.

  • Opóźnienie — opóźnienie serwera dla zapytania; te liczby nie obejmują opóźnienia podróży okrężnej (RTT). Wartości są w milisekundach (ms).

Testowanie zastrzeżenia

Kod używany do uruchamiania tych testów porównawczych jest dostępny w repozytorium azure-search-performance-testing . Warto zauważyć, że zaobserwowaliśmy nieco niższe poziomy QPS z rozwiązaniem do testowania wydajności JMeter niż w testach porównawczych. Różnice mogą być przypisywane różnicom w stylu testów. Mówi to o znaczeniu, aby testy wydajnościowe przypominały obciążenie produkcyjne, jak to możliwe.

Ważne

Te testy porównawcze w żaden sposób nie gwarantują pewnego poziomu wydajności usługi, ale mogą dać ci wyobrażenie o wydajności, której można oczekiwać na podstawie danego scenariusza.

Jeśli masz jakiekolwiek pytania lub wątpliwości, skontaktuj się z nami pod adresem azuresearch_contact@microsoft.com.

CDON Logo

Ten punkt odniesienia został utworzony we współpracy z firmą zajmującą się handlem elektronicznym, CDON, największym rynkiem online w regionie Nordyckim z operacjami w Szwecji, Finlandii, Norwegii i Danii. Dzięki 1500 kupcom CDON oferuje szeroki asortyment, który obejmuje ponad 8 milionów produktów. W 2020 roku CDON miał ponad 120 milionów odwiedzających i 2 miliony aktywnych klientów. Więcej informacji na temat korzystania z usługi Azure AI Search w witrynie CDON można znaleźć w tym artykule.

Aby uruchomić te testy, użyliśmy migawki indeksu wyszukiwania produkcyjnego CDON i tysięcy unikatowych zapytań z ich witryny internetowej.

Szczegóły scenariusza

  • Liczba dokumentów: 6000 000
  • Rozmiar indeksu: 20 GB
  • Schemat indeksu: indeks szeroki z 250 polami łącznie, 25 polami z możliwością wyszukiwania i 200 polami z możliwością filtrowania/aspektów
  • Typy zapytań: zapytania wyszukiwania pełnotekstowego, w tym aspekty, filtry, kolejność i profile oceniania

Wydajność S1

Zapytania na sekundę

Na poniższym wykresie przedstawiono najwyższe obciążenie zapytania, które usługa może obsłużyć przez dłuższy czas pod względem zapytań na sekundę (QPS).

Najwyższy poziom utrzymania QPS e-commerce s1

Opóźnienie zapytań

Opóźnienie zapytań różni się w zależności od obciążenia usługi i usług pod wyższym obciążeniem, które ma większe średnie opóźnienie zapytań. W poniższej tabeli przedstawiono 25, 50, 75, 90, 95 i 99. percentyle opóźnienia zapytań dla trzech różnych poziomów użycia.

Procent maksymalnej liczby QPS Średnie opóźnienie 25% 75% 90% 95% 99%
20% 104 ms 35 ms 115 ms 177 ms 257 ms 738 ms
50% 140 ms 47 ms 144 ms 241 ms 400 ms 1175 ms
80% 239 ms 77 ms 248 ms 466 ms 763 ms 1752 ms

Wydajność S2

Zapytania na sekundę

Na poniższym wykresie przedstawiono najwyższe obciążenie zapytania, które usługa może obsłużyć przez dłuższy czas pod względem zapytań na sekundę (QPS).

Najwyższy możliwy do utrzymania handel elektroniczny QPS s2

Opóźnienie zapytań

Opóźnienie zapytań różni się w zależności od obciążenia usługi i usług pod wyższym obciążeniem, które ma większe średnie opóźnienie zapytań. W poniższej tabeli przedstawiono 25, 50, 75, 90, 95 i 99. percentyle opóźnienia zapytań dla trzech różnych poziomów użycia.

Procent maksymalnej liczby QPS Średnie opóźnienie 25% 75% 90% 95% 99%
20% 56 ms 21 ms 68 ms 106 ms 132 ms 210 ms
50% 71 ms 26 ms 83 ms 132 ms 177 ms 329 ms
80% 140 ms 47 ms 153 ms 293 ms 452 ms 924 ms

Wydajność S3

Zapytania na sekundę

Na poniższym wykresie przedstawiono najwyższe obciążenie zapytania, które usługa może obsłużyć przez dłuższy czas pod względem zapytań na sekundę (QPS).

Najwyższa obsługa QPS e-commerce s3

W tym przypadku widzimy, że dodanie drugiej partycji znacznie zwiększa maksymalną liczbę QPS, ale dodanie trzeciej partycji zapewnia malejące marginalne zwroty. Mniejsza poprawa jest prawdopodobna, ponieważ wszystkie dane są już pobierane do aktywnej pamięci S3 z zaledwie dwiema partycjami.

Opóźnienie zapytań

Opóźnienie zapytań różni się w zależności od obciążenia usługi i usług pod wyższym obciążeniem, które ma większe średnie opóźnienie zapytań. W poniższej tabeli przedstawiono 25, 50, 75, 90, 95 i 99. percentyle opóźnienia zapytań dla trzech różnych poziomów użycia.

Procent maksymalnej liczby QPS Średnie opóźnienie 25% 75% 90% 95% 99%
20% 50 ms 20 ms 64 ms 83 ms 98 ms 160 ms
50% 62 ms 24 ms 80 ms 107 ms 130 ms 253 ms
80% 115 ms 38 ms 121 ms 218 ms 352 ms 828 ms

Szczegóły scenariusza

  • Liczba dokumentów: 7,5 mln
  • Rozmiar indeksu: 22 GB
  • Schemat indeksu: 23 pola; 8 z możliwością wyszukiwania, 10 filtrowalnych/aspektowych
  • Typy zapytań: wyszukiwanie słów kluczowych z aspektami i wyróżnianie trafień

Wydajność S1

Zapytania na sekundę

Na poniższym wykresie przedstawiono najwyższe obciążenie zapytania, które usługa może obsłużyć przez dłuższy czas pod względem zapytań na sekundę (QPS).

Wyszukiwanie dokumentu QPS o najwyższej konserwacji s1

Opóźnienie zapytań

Opóźnienie zapytań różni się w zależności od obciążenia usługi i usług pod wyższym obciążeniem, które ma większe średnie opóźnienie zapytań. W poniższej tabeli przedstawiono 25, 50, 75, 90, 95 i 99. percentyle opóźnienia zapytań dla trzech różnych poziomów użycia.

Procent maksymalnej liczby QPS Średnie opóźnienie 25% 75% 90% 95% 99%
20% 67 ms 44 ms 77 ms 103 ms 126 ms 216 ms
50% 93 ms 59 ms 110 ms 150 ms 184 ms 304 ms
80% 150 ms 96 ms 184 ms 248 ms 297 ms 424 ms

Wydajność S2

Zapytania na sekundę

Na poniższym wykresie przedstawiono najwyższe obciążenie zapytania, które usługa może obsłużyć przez dłuższy czas pod względem zapytań na sekundę (QPS).

Wyszukiwanie dokumentu QPS o najwyższej konserwacji s2

Opóźnienie zapytań

Opóźnienie zapytań różni się w zależności od obciążenia usługi i usług pod wyższym obciążeniem, które ma większe średnie opóźnienie zapytań. W poniższej tabeli przedstawiono 25, 50, 75, 90, 95 i 99. percentyle opóźnienia zapytań dla trzech różnych poziomów użycia.

Procent maksymalnej liczby QPS Średnie opóźnienie 25% 75% 90% 95% 99%
20% 45 ms 31 ms 55 ms 73 ms 84 ms 109 ms
50% 63 ms 39 ms 81 ms 106 ms 123 ms 163 ms
80% 115 ms 73 ms 145 ms 191 ms 224 ms 291 ms

Wydajność S3

Zapytania na sekundę

Na poniższym wykresie przedstawiono najwyższe obciążenie zapytania, które usługa może obsłużyć przez dłuższy czas pod względem zapytań na sekundę (QPS).

Najwyższe obsługiwane wyszukiwanie karty QPS s3

Opóźnienie zapytań

Opóźnienie zapytań różni się w zależności od obciążenia usługi i usług pod wyższym obciążeniem, które ma większe średnie opóźnienie zapytań. W poniższej tabeli przedstawiono 25, 50, 75, 90, 95 i 99. percentyle opóźnienia zapytań dla trzech różnych poziomów użycia.

Procent maksymalnej liczby QPS Średnie opóźnienie 25% 75% 90% 95% 99%
20% 43 ms 29 ms 53 ms 74 ms 86 ms 111 ms
50% 65 ms 37 ms 85 ms 111 ms 128 ms 164 ms
80% 126 ms 83 ms 162 ms 205 ms 233 ms 281 ms

Wnioski

Dzięki tym testom porównawczym możesz zapoznać się z wydajnością ofert usługi Azure AI Search. Można również zobaczyć różnicę między usługami w różnych warstwach.

Niektóre kluczowe sposoby na te testy porównawcze to:

  • S2 może zwykle obsługiwać co najmniej cztery razy wolumin zapytania jako S1
  • S2 zwykle ma mniejsze opóźnienie niż S1 w porównywalnych woluminach zapytań
  • Podczas dodawania replik usługa QPS może obsługiwać zwykle skalowanie liniowe (na przykład jeśli jedna replika może obsłużyć 10 QPS, pięć replik może zwykle obsługiwać 50 QPS)
  • Im większe obciążenie usługi, tym wyższe średnie opóźnienie

Widać również, że wydajność może się znacząco różnić między scenariuszami. Jeśli nie uzyskujesz oczekiwanej wydajności, zapoznaj się z poradami dotyczącymi lepszej wydajności.

Następne kroki

Teraz, po zapoznaniu się z testami porównawczymi wydajności, możesz dowiedzieć się więcej na temat analizowania wydajności usługi Azure AI Search i kluczowych czynników wpływających na wydajność.