Wyszukiwanie w Jellyfin może zwalniać wraz z rozrostem biblioteki, gdy wykonywanie zapytań lub zbiór roboczy przekroczy możliwości wydajnych indeksów i ponownego wykorzystania pamięci podręcznej.
Sam rozrost biblioteki nie świadczy jeszcze o problemie z bazą danych. Większy katalog może zmienić liczbę rekordów, relacji i odwołań do grafik, a skanowanie lub zapisy w tle mogą zwiększać rywalizację o zasoby. Nie zmieniaj zapytania ani klienta, a następnie oddziel czas działania bazy danych od ładowania obrazów i renderowania interfejsu.
Rozrost zmienia zakres pracy zapytania
Rozrastająca się biblioteka dodaje tytuły, osoby, gatunki, ścieżki, identyfikatory dostawców i relacje, które wyszukiwanie może sprawdzać lub łączyć. Koszt zależy od struktury zapytania i dopasowania indeksów, a nie tylko od liczby bajtów multimediów.
Skorzystaj z modelu trwałych ról danych, aby myśleć o rekordach i relacjach zamiast o jednej liczbie określającej „rozmiar biblioteki”.
Duża kolekcja plików filmowych może nadal działać sprawnie, jeśli liczba indeksowanych obiektów jest niewielka, natomiast wiele małych elementów może szybko zwiększyć zakres pracy zapytań.
Indeksy muszą pasować do struktury zapytania
Indeks pomaga wtedy, gdy kolejność kluczy i selektywność odpowiadają używanym filtrom lub kolejności sortowania. Zapytanie obejmujące szerokie wyszukiwanie tekstowe, łączące kilka relacji albo sortujące duży wynik nadal może skanować więcej danych niż wąskie wyszukiwanie.
Porównaj zapytanie z ogólnym wyjaśnieniem opóźnienia i przepustowości pamięci masowej, które opisuje różnice między opóźnieniem pamięci masowej a wzorcami dostępu; dokładny wynik Jellyfin zależy od jego bazy danych i ścieżki klienta.
Najbardziej miarodajny pomiar to wykonanie tego samego zapytania przed rozrostem biblioteki i po nim, a nie benchmark oparty na innym schemacie wyszukiwania.
Pamięć podręczna i pamięć masowa mogą udawać koszt zapytania
Niezaładowane strony bazy danych, pliki grafik i metadane systemu plików mogą sprawiać, że wyszukiwanie wydaje się wolniejsze, nawet gdy plan zapytania się nie zmienił. Skanowanie lub kopie zapasowe wykonywane w tle mogą zwiększać kolejkę i usuwać przydatne strony z pamięci między kolejnymi uruchomieniami.
Przed obwinieniem rozrostu katalogu rozdziel przypadki zimnego i ciepłego uruchomienia, korzystając z metody benchmarku zimnego i ciepłego uruchomienia.
Jeśli drugie wyszukiwanie jest szybkie, ale pierwsze wolne, pamięć podręczna lub pamięć masowa ma wpływ na działanie. Jeśli oba są wolne, większą uwagę należy poświęcić pracy zapytania lub rywalizacji o zasoby bazy danych.
Sprawdź przyczynę i wyklucz czynniki mylące
Mierz osobno czas zapytania, renderowanie wyników, ładowanie obrazów, opóźnienie pamięci masowej i zapisy wykonywane w tle. Następnie powtórz pomiar po wstrzymaniu jednego konkurencyjnego zadania lub zmianie jednej zmiennej żądania.
Krótki schemat pracy z zachowaniem klienta Jellyfin może pokazać, czy problem dotyczy pracy bazy danych, ścieżki obrazów czy interfejsu klienta.
Przestań przypisywać spowolnienie rozrostowi biblioteki, jeśli usunięcie innej przyczyny przywraca wcześniejszą wydajność. Rozrost jest warunkiem, ale mechanizm ograniczający wydajność nadal wymaga potwierdzenia.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego Home Assistant działa inaczej w sieci lokalnej i przy połączeniach zdalnych?
Sesje Home Assistant w sieci LAN i zdalne korzystają z różnych ścieżek sieciowych; opóźnienie zdalne obejmuje DNS, szyfrowanie, sieć WAN, serwer proxy lub VPN...

Czy Home Assistant działa niezawodnie za CGNAT-em lub podwójnym NAT-em?
CGNAT i podwójny NAT zazwyczaj nie wpływają na lokalne sterowanie Home Assistantem; zmieniają głównie sposób, w jaki zdalni klienci mogą utworzyć ścieżkę przychodzącą do...

Jak opóźnienie sieci wpływa na działanie Home Assistant podczas awarii Internetu?
Utrata dostępu do Internetu i opóźnienia sieciowe to różne awarie: lokalne ścieżki urządzeń mogą nadal działać szybko, podczas gdy DNS, integracje z chmurą, bramy...

