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.
hardware
scaling
elasticsearch
James Socol
źródło
źródło
Odpowiedzi:
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
źródło