Jak zaprojektować jeden serwer Plex do obsługi aplikacji wymagających dużych zasobów

Eva Wong jest redaktorką techniczną i rezydentką majsterkowania w ZimaSpace. Jest geekiem od zawsze, z pasją do domowych laboratoriów i oprogramowania open source, a jej specjalnością jest przekładanie złożonych zagadnień technicznych na przystępne, praktyczne poradniki. Eva wierzy, że samodzielne hostowanie powinno sprawiać radość, a nie onieśmielać. Dzięki swoim samouczkom pomaga społeczności oswoić konfigurację sprzętu, od budowy pierwszego serwera NAS po opanowanie kontenerów Docker.

Jeden host Plexa może współdzielić sprzęt z aplikacjami intensywnie wykorzystującymi zasoby, ale układ powinien chronić odtwarzanie i stan Plexa, zanim zacznie maksymalizować łączne wykorzystanie zasobów.

Najlepszy projekt zaczyna się od rozdzielenia zadań: odtwarzania w Plexie i danych aplikacji, multimediów zajmujących dużo miejsca, zadań pobierania lub indeksowania, kopii zapasowych oraz każdej usługi intensywnie wykorzystującej CPU lub GPU. Gdy te zadania są już widoczne, możesz zdecydować, które zasoby mogą być współdzielone, które wymagają limitów, a które zadania powinny być wykonywane o różnych porach.

Przypisz zadania, zanim ustawisz limity zasobów

Wspólnym serwerem łatwiej zarządzać, gdy każda usługa ma określone zadanie, zamiast korzystać z jednej, nierozróżnionej puli kontenerów. Plex może wymagać przewidywalnych opóźnień dostępu do danych aplikacji i krótkotrwałych skoków obciążenia obliczeniowego podczas transkodowania, podczas gdy programy do pobierania i zadania wsadowe mogą działać z opóźnieniem.

Współdzielone ścieżki pamięci masowej i harmonogramy przepływu pracy są wyraźnie określone w zestawie wielu usług multimedialnych, w którym Plex działa obok programów do pobierania, indeksowania i obsługi żądań.

Zapisz, na jakie zasoby CPU, pamięci, pamięci masowej, sieci i akceleratora może wpływać każda usługa w najbardziej obciążonej typowej godzinie. Jeśli dwa zadania kolidują tylko dlatego, że są wykonywane jednocześnie, zaplanowanie ich na różne pory może rozwiązać problem, zanim konieczna stanie się izolacja sprzętowa.

Chroń ścieżkę krytyczną dla opóźnień Plexa

Odtwarzanie w Plexie lepiej znosi obciążony host niż aplikacja, której brakuje zasobów do obsługi danych. Operacje na bazie danych, metadanych i pamięci podręcznej są mniejsze i bardziej wrażliwe na opóźnienia niż masowe kopiowanie plików multimedialnych, dlatego nie powinny bez ograniczeń konkurować z zapisami kopii zapasowych ani pobieranych plików.

Docker domyślnie nie zapewnia sprawiedliwego podziału zasobów; jawne limity CPU, pamięci i operacji wejścia/wyjścia mogą zapobiec zużywaniu przez jedną usługę wszystkich zasobów hosta podczas nagłego wzrostu obciążenia.

Przechowuj dane stanu Plex na przewidywalnym urządzeniu, mierz opóźnienia pamięci masowej podczas typowego odtwarzania i powtórz test, gdy działa najbardziej wymagające zadanie towarzyszące. Jeśli ścieżka danych aplikacji zwalnia, zanim procesor lub sieć osiągną pełne obciążenie, najpierw odizoluj tę rolę pamięci masowej.

Zaplanuj skokowe obciążenia, zanim rozdzielisz sprzęt

Kopie zapasowe, skanowanie multimediów, lokalne zadania AI i duże importy często wymagają wielu zasobów przez ograniczony czas. Warto zaplanować ich wykonanie, ponieważ ważniejszy jest czas ukończenia niż chwilowe opóźnienie.

Sprawdzenie wykorzystania, nasycenia i błędów na poziomie całego hosta pomaga ustalić, czy nakładające się zadania faktycznie powodują kolejki zadań procesora, pamięci, pamięci masowej lub sieci, zamiast zakładać, że każde jednoczesne zadanie wymaga osobnej maszyny.

Przenieś jedno skokowe obciążenie poza główne godziny oglądania i ponownie uruchom ten sam test Plexa. Konfiguracja, która pozostaje stabilna po zaplanowaniu zadań, jest prostsza niż przedwczesny podział na dwa hosty.

Rozdziel hosta, gdy jedna rola wielokrotnie pogarsza działanie drugiej

Rozdzielenie ról staje się opłacalne, gdy wymagająca usługa nadal pogarsza działanie Plexa mimo rozsądnego harmonogramowania i kontroli zasobów albo gdy oba obciążenia muszą jednocześnie działać ze szczytową wydajnością.

Topologia, która oddziela moc obliczeniową serwera multimediów od bardziej wymagających obciążeń, daje każdej roli niezależną ścieżkę rozbudowy, bez konieczności przenoszenia biblioteki multimediów za każdym razem, gdy zmieniają się potrzeby obliczeniowe.

Zostaw jeden host, jeśli testy szczytowego obciążenia mieszczą się w uzgodnionych limitach opóźnienia i odtwarzania. Rozdziel role obliczeniowe, pamięci masowej lub akceleratora tylko wtedy, gdy ten sam zmierzony konflikt utrzymuje się mimo harmonogramowania i limitów.

Konfiguracja NAS-a 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.