Zalecenia dotyczące sprzętu do wyszukiwania elastycznego [zamknięte]

10

Czy istnieją jakieś dobre przewodniki dotyczące poziomu sprzętu do obsługi ElasticSearch? Czy rekomendacje dla Lucene lub Solr to dobry początek? Chcemy rozpocząć wdrażanie od

  • 27 milionów dokumentów, 8 TB danych
  • dodaj 300 000 dokumentów dziennie

Następnie przeskaluj to około 10x, do

  • 270 milionów dokumentów, 80 TB danych
  • dodaj 3 miliony dokumentów dziennie

Jest to dziwny przypadek użycia, w którym zapytania byłyby w tysiącach / dzień, ale czasy odpowiedzi muszą pozostać wystarczająco niskie, aby zapewnić dobre wrażenia z aplikacji internetowej Ajaxy.

James Socol
źródło
@MarkHenderson: to jest prawdziwe (inne niż zabawkowe) i interesujące pytanie. Myślę, że twoja ocena tego, że jest „zbyt zlokalizowana”, jest nie na miejscu.
David J.
David, pytanie zostało zamknięte zgodnie z naszym FAQ , nie robimy zakupów
Mark Henderson

Odpowiedzi:

11

W grę może wchodzić wiele czynników, więc nie sądzę, że istnieje wiele ogólnych wskazówek.

Powinieneś przeprowadzić ocenę na mniejszą skalę, być może z 1/5 początkowym zestawem danych, aby zobaczyć, jak będą się zachowywać rzeczy, gdy rzucisz oczekiwane indeksowanie i wyszukiwanie w konfiguracji. Dzięki temu zrozumiesz, ile miejsca faktycznie zajmą Twoje dane w wyszukiwarce. W przypadku wyszukiwania elastycznego zależy od tego, czy przechowujesz źródłowy plik json, jak pola są analizowane i czy są przechowywane.

EC2 może być rozsądnym sposobem oceny elastyczności wyszukiwania bez dużych wydatków na sprzęt.

W przypadku oprogramowania opartego na klastrze, np. Elasticsearch, istnieją kompromisy między utrzymywaniem klastra mniejszym a większym. Duży klaster jest przydatny, ponieważ w przypadku utraty serwera należy ponownie przydzielić mniej danych. Mniejszy klaster zużywa mniej energii i jest łatwiejszy w utrzymaniu.

Prowadzimy klaster z 35 milionami dokumentów z całkowitym rozmiarem indeksu około 300 GB x 2, ponieważ wszystkie indeksy są replikowane. Aby to obsłużyć i bardzo dużą liczbę wyszukiwań, mamy 4 węzły, każdy z 24 rdzeniami, 48 GB pamięci RAM i 1 TB pamięci z 10 000 dysków w RAID10. Niedawno zwiększyliśmy rozmiar dysku, aby zapewnić więcej miejsca na głowie.

W twoim przypadku polecam więcej pamięci RAM i więcej dysku. Dzięki tej liczbie operacji wyszukiwania możesz prawdopodobnie zaoszczędzić pieniądze na procesorach.

Niski wolumen wyszukiwania w rzeczywistości obniża wydajność, ponieważ pamięci podręczne (zarówno wewnętrzne do używanego oprogramowania i dysku systemu operacyjnego) nie będą dobrze rozgrzane.

Mam nadzieję, że to pomaga, Paul

Paweł
źródło
O jakich dokumentach mówisz? Kłody? Prawdziwe dokumenty?
Manuel Rauber