Jak poprawić szybkość wyszukiwania zapytania w Elastic Search?

Aug 16 2020

Host to AWS firmy ElasticSearch, mam 2 TB danych przechowywanych w 6 węzłach i 30 indeksach po 10 fragmentów w każdym. Proste wyszukiwanie we wszystkich indeksach jest bardzo powolne i zajmuje kilka minut.

Gdzie popełniłem błąd? Czy to normalne, czy mam złe ustawienia, czy może mam za dużo zapisanych danych?

Moje ustawienia klastra:

"search": {
     "max_queue_size": "1000",
     "queue_size": "1000",
     "size": "4",
     "auto_queue_frame_size": "2000",
     "target_response_time": "1s",
     "min_queue_size": "1000"
},

Ustawienia moich węzłów:

"os": {
     "refresh_interval_in_millis": 1000,
     "name": "Linux",
     "pretty_name": "CentOS Linux 7 (Core)",
     "arch": "amd64",
     "version": "4.15.0-1039-aws",
     "available_processors": 32,
     "allocated_processors": 2
}

Dziękuję Ci!

Odpowiedzi

3 ElasticsearchNinja Aug 16 2020 at 14:17

To bardzo szerokie pytanie, zawierające bardzo mało informacji. Czy możesz podać więcej informacji, takich jak:

  1. Ile masz danych i rozmiar każdego fragmentu.
  2. Przykładowe zapytania i ich średni czas potrzebny.
  3. wielkość sterty węzłów danych i dlaczego masz allocated_processorsmniej (2) niż dostępnych procesorów (32)
  4. Ile dokumentów pobierasz w zapytaniu wyszukiwania, tj. Parametr rozmiaru.
  5. Opóźnienie wyszukiwania bez wywołań wyszukiwania
  6. Przeszukuj wolne logi elastycznego wyszukiwania (ES)

Możesz zapoznać się z moimi 10 wskazówkami dotyczącymi poprawy wydajności wyszukiwania , a także podać wartości niektórych parametrów wymienionych we wskazówkach, a także wypróbować narzędzie optymalizatora klastrów, aby dostroić ustawienia klastra i węzłów w ES.

Jak omówiono w komentarzu, prosimy o skierowanie blogu opstera do slow-log wyszukiwania w celu wydajniejszego debugowania.

1 Jaycreation Aug 19 2020 at 11:20
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica

To za dużo. Rozmiar celu dla fragmentu powinien wynosić około 50 GB. Dzięki ustawieniu masz więcej około 5 Gb Każdy. Możesz zmniejszyć do 5 odłamków lub mniej i wymusić scalenie do 1 segmentu. Wydajność powinna zostać znacznie poprawiona.

Następnie spójrz na inne dobre rady udzielone przez Optsters na swoim blogu. Wszystkie są istotne.