Ilu użytkowników i zadań w tle powinien obsługiwać jeden host Jellyfin?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Hosta Jellyfin nie należy dobierać wyłącznie na podstawie liczby zarejestrowanych użytkowników. Jedno gospodarstwo domowe z ośmioma kontami może generować mniejsze obciążenie niż dwóch zdalnych widzów odtwarzających wideo 4K z transkodowaniem, podczas gdy w tle trwa skanowanie biblioteki, zadanie napisów i tworzenie kopii zapasowej. Przydatne pytanie dotyczące wydajności brzmi: ile jednoczesnych zadań pierwszoplanowych i wykonywanych w tle host może obsłużyć, zanim odtwarzanie lub administracja przestaną spełniać założone wymagania.

Utwórz jeden budżet obciążenia obejmujący sesje odtwarzania, transkodowanie, zaplanowane zadania, aktywność pamięci masowej oraz usługi działające na tym samym hoście. Następnie przetestuj największe typowe nakładanie się obciążeń i przestań zwiększać obciążenie, gdy pierwszy współdzielony zasób zacznie wykazywać trwałe kolejki, błędy lub opóźnienia odczuwalne przez użytkowników.

Przekształć liczbę użytkowników w obciążenia związane z odtwarzaniem

Sesje bezpośredniego odtwarzania, remuksu, konwersji dźwięku i transkodowania wideo licz osobno. Klienci Jellyfin zgłaszają obsługiwane kodeki, rozdzielczości, przepływności i ograniczenia, dlatego dwóch użytkowników oglądających to samo źródło może wymagać od serwera zupełnie innej pracy.

Zapotrzebowanie serwera może zmieniać także polityka użytkowników Jellyfin. Obecne elementy sterowania zarządzaniem użytkownikami pozwalają zezwalać na dostęp zdalny, odtwarzanie multimediów, transkodowanie i ograniczać przepływność internetową poszczególnych strumieni. Liczba użytkowników staje się więc przydatna dopiero po przełożeniu jej na uprawnienia i tryby odtwarzania oczekiwane w tym samym czasie.

Zacznij od najtrudniejszego typowego wieczornego scenariusza, a nie od teoretycznej maksymalnej liczby kont. Jeśli w gospodarstwie domowym zwykle działają dwie lokalne sesje bezpośredniego odtwarzania i jedna zdalna konwersja, to właśnie taki poziom host musi komfortowo obsłużyć.

Uwzględnij zaplanowane zadania w tym samym budżecie wydajności

Jellyfin wykonuje pracę nawet wtedy, gdy nikt nie naciska przycisku Odtwarzaj. Skanowanie biblioteki, pobieranie napisów, czyszczenie pamięci podręcznej, aktualizacje wtyczek, generowanie obrazów rozdziałów, optymalizacja bazy danych i zadania związane z generowaniem multimediów mogą nakładać się na oglądanie.

Obecna lista zaplanowanych zadań pokazuje, że Jellyfin może w tle wykonywać skanowanie, generowanie obrazów, aktualizacje wtyczek, konserwację bazy danych, obsługę napisów, czyszczenie pamięci podręcznej i inne zadania. Wtyczki mogą dodawać kolejne zadania.

Nie dobieraj serwera na podstawie testu odtwarzania przy małym obciążeniu, a następnie nie uruchamiaj wszystkich ciężkich zadań w tym samym okresie szczytowym. W pierwszej kolejności przenieś zadania, które można odroczyć, poza godziny oglądania; zadania, które muszą działać równolegle, uwzględnij w teście produkcyjnym.

Znajdź pierwszy współdzielony zasób, który traci zapas wydajności

Host może zawieść z powodu przepustowości silnika multimediów, procesora, pamięci, opóźnień dysku SSD, obciążenia operacjami wyszukiwania na dysku HDD, przepustowości sieci lub zależności zewnętrznej. Większa liczba rdzeni procesora nie pomoże, gdy wysycone jest łącze wysyłania danych, a większa ilość pamięci RAM nie naprawi transkodowania, którego wybrany układ GPU nie może przyspieszyć.

Analiza ZimaSpace dotycząca wydajności Jellyfin na małym serwerze domowym wykorzystuje ten sam model oparty na obciążeniu: ważniejsze od limitu liczby kont są jednoczesne wymagania i pierwszy wysycony zasób.

Podczas dokładnie takiego nakładania się obciążeń zmierz prędkość transkodowania, wysycenie procesora lub silnika multimediów, presję na pamięć, opóźnienia pamięci masowej i przepustowość sieci. Zasobem ograniczającym jest ten, którego obciążenie rośnie wraz z wystąpieniem awarii i maleje po usunięciu tego obciążenia.

-15% OFF

Nie pozwól, aby zadania wykonywane w tle zużywały zapas wydajności interaktywnej

Odtwarzanie ma określony termin: następny fragment musi dotrzeć, zanim opróżni się bufor klienta. Skanowanie biblioteki zwykle może zakończyć się później bez szkody dla użytkowników. Ta różnica powinna kształtować harmonogram i zasady przydzielania zasobów.

Zapewnij wystarczający zapas wydajności, aby rozpoczęcie odtwarzania lub przewijanie pozostało responsywne podczas kontynuowania nieuniknionych zadań w tle. Jeśli optymalizacja bazy danych lub zadanie analizy multimediów powoduje buforowanie, zmień ich harmonogram albo ogranicz zadanie, zanim kupisz większy serwer.

Na współdzielonym hoście powtórz test przy aktywnych innych kontenerach. Program do pobierania danych, indeksator zdjęć, narzędzie do tworzenia kopii zapasowych lub lokalny proces AI może zmniejszyć wydajność Jellyfin, nawet jeśli własne obciążenie Jellyfin się nie zmieniło.

Użyj macierzy obciążeń zamiast limitu użytkowników

Jednoczesne zadanie Główny obserwowany zasób Sygnał awarii
Strumienie bezpośredniego odtwarzania Pamięć masowa multimediów + sieć Rosną kolejki odczytu lub sieciowe
Transkodowanie wideo Silnik multimediów / procesor + przestrzeń robocza Prędkość transkodowania spada poniżej czasu rzeczywistego
Skanowanie biblioteki Procesor + pamięć metadanych + dyski z multimediami Rośnie opóźnienie przeglądania lub odtwarzania
Generowanie obrazów / funkcji trickplay Procesor/GPU + zapisy do pamięci masowej Zadania interaktywne tracą zapas wydajności
Kopia zapasowa lub import Pamięć masowa + sieć Konkurencja o operacje wejścia-wyjścia lub wysycenie łącza wysyłania danych

Publikuj wydajność jako przetestowane obciążenie, na przykład „trzy reprezentatywne strumienie i jedno zaplanowane skanowanie pozostają w założonym zakresie”, a nie „ten serwer obsługuje dziesięciu użytkowników”. Taki wynik można odtworzyć po zmianie biblioteki, klientów i sposobu korzystania przez domowników.

Konfiguracja NAS i serwera

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.