Wyszukiwanie w Plex może zwalniać wraz ze wzrostem ilości danych biblioteki, ale sam rozmiar bazy danych nie wyjaśnia, która część ścieżki zapytania faktycznie wykonuje się dłużej.
Większa biblioteka oznacza więcej wierszy, metadanych, relacji, grafik i stanów, którymi serwer musi zarządzać. Jednak dobrze indeksowane wyszukiwanie może nadal działać szybko, podczas gdy mniejsza baza danych będzie działać słabo przy braku danych w pamięci podręcznej lub opóźnieniach pamięci masowej. Trafna diagnoza oddziela kształt zapytania, użycie indeksów, rozmiar zestawu roboczego, opóźnienia operacji wejścia-wyjścia i zapisy wykonywane w tle, zanim uzna się, że to sam wzrost jest wąskim gardłem.
Koszt wyszukiwania zmienia się wraz ze wzrostem zestawu roboczego
Większa ilość danych biblioteki zwiększa zakres informacji, które wyszukiwanie lub filtrowanie może wymagać przeanalizowania, zwłaszcza gdy żądanie obejmuje szerokie pola tekstowe, relacje, sortowanie lub kilka tabel metadanych. Wzrost staje się widoczny, gdy odpowiedni zestaw roboczy nie mieści się już w tej samej pamięci podręcznej albo zapytanie przegląda więcej wierszy niż wcześniej.
Plex przechowuje dane biblioteki i metadane w bazie danych SQLite. Ważne jest nie to, że każde wyszukiwanie w Plex zwalnia po osiągnięciu określonego rozmiaru biblioteki, lecz to, że większy zestaw roboczy może częściej ujawniać nieefektywne wzorce dostępu, braki danych w pamięci podręcznej lub wolniejszą pamięć masową.
Porównaj to samo wyszukiwanie przed znacznym powiększeniem biblioteki i po nim, a także zestaw wąskie wyszukiwanie z szerokim zapytaniem. Jeśli źle skaluje się tylko szerokie wyszukiwanie, problem jest bardziej szczegółowy niż „baza danych jest zbyt duża”.
Jakość indeksów ma większe znaczenie niż sam rozmiar bazy danych
Indeksy pozwalają bazie danych znaleźć odpowiednie wiersze bez przeszukiwania wszystkiego, ale tylko wtedy, gdy zapytanie może użyć właściwego indeksu. Brakujące, źle dopasowane lub rozrośnięte indeksy mogą więc ujawnić problemy związane ze wzrostem znacznie wcześniej, niż sugerowałby sam rozmiar pliku.
Indeksy ograniczają niepotrzebne skanowanie, gdy odpowiadają wzorcowi zapytania. Ta zasada pomaga zrozumieć działanie zapytań, ale nie należy na jej podstawie ręcznie edytować schematu bazy danych Plex.
Korzystaj ze wspieranych przez Plex ścieżek naprawy i konserwacji, zamiast dodawać niestandardowe indeksy do używanej biblioteki bez planu odzyskiwania. Celem diagnozy jest ustalenie, czy operacje bazy danych są etapem powodującym spowolnienie, a nie przeprojektowanie schematu należącego do aplikacji z zewnątrz.
Braki danych w pamięci podręcznej i opóźnienia pamięci masowej mogą wydłużać zapytania
Wyszukiwanie wykonane niedawno ponownie może zostać obsłużone z rozgrzanych stron lub pamięci podręcznej systemu plików, podczas gdy to samo zapytanie po wystąpieniu presji na pamięć może wymagać odczytania większej ilości danych z pamięci masowej. W efekcie rosnący zestaw roboczy może wyglądać jak czysty problem z bazą danych, nawet jeśli widoczna zmiana dotyczy opóźnień operacji wejścia-wyjścia.
Pamięć masowa i działanie pamięci podręcznej wpływają na odczyty. Szybsza pamięć masowa może zmniejszyć koszt braków danych w pamięci podręcznej, ale nie eliminuje nieefektywnej pracy zapytań ani nie gwarantuje, że większa biblioteka zmieści się w pamięci.
Zmierz to samo wyszukiwanie w warunkach rozgrzanej i chłodniejszej pamięci podręcznej, jednocześnie obserwując opóźnienia urządzenia. Jeśli zapytanie jest szybkie przy danych w pamięci podręcznej, a zwalnia tylko wtedy, gdy trzeba sięgnąć do pamięci masowej, kolejne pytanie powinno dotyczyć obecności zestawu roboczego w pamięci i operacji wejścia-wyjścia, a nie wyłącznie wydajności procesora.
Zapisy w tle i kondycja bazy danych mogą powodować opóźnienia
Skanowanie biblioteki, aktualizacje metadanych, zmiany stanu odtwarzania i konserwacja mogą nakładać się na odczyty. Równoległe zapisy mogą zwiększać liczbę operacji związanych z blokadami lub wejściem-wyjściem, a uszkodzenie albo zły stan bazy danych może powodować objawy, których nie należy przypisywać normalnemu wzrostowi.
Obciążenia SQLite z przewagą odczytów mogą znacząco zmienić się po konserwacji bazy danych i zmianach układu danych. Dlatego stan konserwacji należy odnotować podczas porównywania wydajności wyszukiwania w czasie, a nie traktować go jako powodu do uruchamiania ogólnych poleceń optymalizacyjnych na bazie Plex bez kopii zapasowych.
Powtórz wolne wyszukiwanie w spokojnym okresie oraz podczas znanego skanowania lub zadania związanego z metadanymi. Jeśli opóźnienie pojawia się tylko przy aktywności w tle, zaplanuj tę pracę lub odizoluj ją, zanim uznasz rozmiar biblioteki za trwałe ograniczenie.
Sprawdź, czy opóźnienie zależy od rozmiaru, pamięci podręcznej czy pamięci masowej
Przydatna macierz testowa utrzymuje zapytanie bez zmian, zmieniając tylko jeden warunek: rozgrzana lub chłodniejsza pamięć podręczna, spokojna lub aktywna praca w tle oraz standardowa lub znana jako szybka pamięć masowa. Pierwszy warunek, który niezawodnie zmienia czas tego samego wyszukiwania, dostarcza więcej informacji niż sam rozmiar pliku bazy danych.
Wolne działanie biblioteki pojawia się w przypadkach zgłaszanych przez społeczność dotyczących dużych bibliotek, ale raporty te nie dowodzą istnienia jednej uniwersalnej przyczyny ani progu rozmiaru.
Jeśli trzeba oddzielić operacje pamięci masowej i bazy danych od pozostałej części potoku multimediów, prześledź ścieżkę danych Plex według ról. Wydajność wyszukiwania staje się możliwa do poprawy, gdy zostanie wskazany wolny etap — operacje zapytania, pamięć podręczna, pamięć masowa lub równoległa konserwacja — a nie tylko wtedy, gdy biblioteka przekroczy dużą liczbę elementów.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Czym jest stan Plexa i które jego elementy muszą być zachowane?
Trwały stan Plex to informacje, które zachowują konfigurację serwera po ponownym uruchomieniu i odbudowie; multimedia oraz tymczasowe dane transkodowania pełnią odrębne funkcje.

Jak Plex obsługuje uwierzytelnianie w sesjach lokalnych i zdalnych?
Uwierzytelnianie w Plex rozpoczyna się od tożsamości serwera i konta, a następnie lokalne lub zdalne ścieżki sieciowe określają dostępność oraz sposób nawiązywania bezpiecznego połączenia.

Dlaczego Plex działa inaczej po ponownym uruchomieniu kontenera?
Ponowne uruchomienie kontenera odtwarza warunki środowiska uruchomieniowego wokół trwałego stanu Plex, dlatego czas, punkty montowania, urządzenia, sieć i pamięć podręczna mogą zmienić wynik.

