Jak współdzielone zasoby wpływają na wydajność Plexa na domowym serwerze z wieloma aplikacjami

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.

Stan Plexa na domowym serwerze z wieloma aplikacjami zmienia się, gdy inna usługa konkuruje o ten sam procesor, pamięć, przestrzeń dyskową, akcelerator lub ścieżkę sieciową.

Współdzielenie sprzętu jest często wydajne, ponieważ większość usług domowych nie osiąga szczytowego obciążenia w tym samym momencie, ale średnie wykorzystanie może ukrywać krótkie okresy rywalizacji o zasoby. Właściwe pytanie nie brzmi, czy Plex „potrzebuje” dedykowanego urządzenia. Chodzi o to, który współdzielony zasób traci podczas rzeczywistego nakładania się obciążeń na tyle duży zapas, by wpłynąć na niezawodność uruchamiania, przewijania, transkodowania, przeglądania lub odtwarzania.

Współdzielony sprzęt jest wydajny, dopóki obciążenia się nie nakładają

Pojedynczy serwer domowy może obsługiwać multimedia, kopie zapasowe, automatyzację, zdjęcia, pobieranie i niewielkie aplikacje internetowe, wykorzystując bezczynny sprzęt wydajniej niż kilka słabo obciążonych maszyn. Konsolidacja staje się problemem dopiero wtedy, gdy obciążenia, które osobno nie powodują kłopotów, w tym samym czasie wymagają tego samego zasobu.

Planowanie serwera domowego działa lepiej, gdy każdą usługę traktuje się jako obciążenie o własnym profilu wykorzystania procesora, pamięci, przestrzeni dyskowej i sieci. Szeroki model architektury serwera domowego wyraźnie rozdziela usługi według intensywności obciążenia, zamiast dobierać parametry maszyny na podstawie etykiety jednej aplikacji.

Stwórz mapę okresów największego obciążenia zamiast listy aplikacji. Zapisz, które usługi działają równocześnie z oglądaniem w Plexie, jak długo trwa każde maksimum i z jakich zasobów korzysta. Kopia zapasowa wykonywana o 3:00 w nocy nie zmniejsza wieczornego zapasu dla trybu Direct Play, chyba że jej harmonogram lub czas trwania rzeczywiście obejmuje porę oglądania.

Rywalizacja o procesor i pamięć zmienia czasy reakcji, zanim host będzie wyglądać na przeciążony

Rywalizacja o procesor może opóźnić transkodowanie, generowanie miniatur lub operacje bazy danych, nawet gdy średnie całkowite wykorzystanie wygląda akceptowalnie w długim okresie. Presja na pamięć może być mniej widoczna: kilka kontenerów mieści się bez problemu, dopóki ich zestawy robocze się nie nakładają, nie wzrasta odzyskiwanie pamięci, a wymiana nie zamienia szybkiego żądania w operację na przestrzeni dyskowej.

W środowiskach ze współdzielonymi zasobami zmiany wydajności mogą pojawić się, zanim maszyna będzie globalnie wyczerpana. Monitorowanie wykorzystania procesora i pamięci przez poszczególne kontenery razem z objawem występującym w Plexie pozwala zauważyć krótkie skoki obciążenia, nawet gdy średnie hosta w długim okresie nadal wyglądają bezpiecznie.

Mierz objaw występujący w Plexie w tym samym czasie co wykorzystanie procesora przez poszczególne procesy, presję na pamięć i obciążenie powodowane przez konkurencyjną usługę. Jeśli wstrzymanie jednego kontenera przywraca wcześniejsze czasy reakcji bez zmiany warunków przechowywania danych ani sieci, jest to mocniejszy dowód niż rekomendacja oparta wyłącznie na liczbie rdzeni lub zainstalowanej pamięci RAM.

Operacje wejścia-wyjścia przestrzeni dyskowej łączą Plexa z kopiami zapasowymi i zadaniami pobierania

Odczyt multimediów przez Plexa może być sekwencyjny, podczas gdy jego baza danych, metadane, miniatury i logi generują mniejsze operacje wejścia-wyjścia. Kopia zapasowa, rozpakowywanie pobranych plików, zadanie parzystości, indeksowanie zdjęć lub dysk wirtualny mogą więc powodować zakłócenia, które nie występują podczas testowania samego Plexa.

Jednym z praktycznych sposobów ochrony interaktywnej pracy jest zmiana priorytetu lub harmonogramu przed zakupem nowego sprzętu. Konfiguracja Plexa na Ubuntu może wykorzystywać priorytet procesu w celu ograniczenia zakłóceń powodowanych przez inne zadania procesora lub operacje wejścia-wyjścia, ale dokładny mechanizm należy przetestować na hoście, zamiast traktować go jako uniwersalne rozwiązanie.

Jeśli opóźnienia przestrzeni dyskowej rosną tylko podczas działania innego zadania, spróbuj przenieść bazę danych lub ścieżkę plików tymczasowych na warstwę o mniejszych opóźnieniach, przełożyć intensywne zadanie albo ograniczyć jego przepustowość. Rozdzielaj przestrzeń dyskową dopiero wtedy, gdy te prostsze rozwiązania wielokrotnie zawodzą przy tym samym obciążeniu.

-15% OFF

Współdzielenie sieci i akceleratora tworzy inne wzorce zakłóceń

Serwer domowy może mieć wolne zasoby procesora, a jednocześnie jego łącze sieciowe może być nasycone przez kopię zapasową lub kopiowanie plików. Karta GPU również może mieć wolne zasoby kodera, podczas gdy pamięć, etapy dekodowania lub inna aplikacja zmieniają dostępną ścieżkę multimedialną. Są to odrębne ograniczenia i nie należy sprowadzać ich do jednej ogólnej liczby określającej „obciążenie serwera”.

Presję na sieć i akcelerator należy mierzyć osobno od procesora i pamięci, ponieważ objaw może pojawić się, gdy reszta hosta nadal ma zapas zasobów. Nasycone łącze sieciowe, wyczerpana pamięć GPU lub konkurencyjne zadanie dekodowania nie są tym samym co niedobór mocy procesora.

Testuj zasób, który faktycznie jest współdzielony. W przypadku sieci odtwórz transfer przy dużym obciążeniu, obserwując przepustowość Plexa. W przypadku GPU odtwórz dokładny zestaw transkodowań, gdy działa inne zadanie wykorzystujące akcelerator. Izolację uzasadniaj dopiero wtedy, gdy konkurencyjne zadanie i objaw w Plexie zmieniają się jednocześnie.

Izoluj tylko zasób, który wielokrotnie powoduje konflikt

Pierwszą reakcją na rywalizację o zasoby powinna być najmniejsza odwracalna zmiana: przełożenie kopii zapasowej, ograniczenie pobierania, przeniesienie bazy danych na SSD, zarezerwowanie akceleratora multimedialnego dla Plexa lub zastosowanie limitów zasobów kontenera, gdy jedna usługa może zużywać zbyt dużą część zasobów hosta. Druga maszyna oznacza większe zużycie energii, aktualizacje, zależności sieciowe i kolejną ścieżkę odzyskiwania danych, dlatego powinna rozwiązywać konkretny, nazwany konflikt.

System może współdzielić Plexa z innymi usługami, jeśli potwierdzono wystarczający zapas zasobów. W jednej zmierzonej konfiguracji Plex działający obok kilku innych usług nadal działał prawidłowo, ale wynik ten dotyczy przetestowanego sprzętu i obciążenia, a nie każdego serwera domowego.

Jeśli nakładanie się obciążeń wielokrotnie zakłóca działanie tego samego zasobu mimo zastosowania prostszych metod, porównaj granicę między dedykowanym a współdzielonym serwerem multimediów. Pozostań przy jednej maszynie, gdy okres największego obciążenia mija; rozdziel usługi dopiero wtedy, gdy izolacja usuwa zmierzony konflikt lub zależność konserwacyjną, której domownicy nie mogą zaakceptować.

Centrum Technologii i Sztucznej Inteligencji

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.