Dlaczego odczyt i zapis w Plex powodują różne obciążenie serwera

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.

Plex odczytuje i zapisuje dane w różnych częściach domowego serwera, ponieważ duże transfery multimediów i małe aktualizacje stanu mają zupełnie inne wzorce operacji wejścia-wyjścia.

Podczas gdy strumień może sekwencyjnie odczytywać duży plik, Plex jednocześnie aktualizuje bazy danych, dzienniki, metadane lub dane tymczasowe w ramach mniejszych operacji. Te ścieżki mogą współdzielić urządzenie, a mimo to różnie reagować na obciążenie. Zanim uznasz, że przyczyną jest „użycie dysku”, zmierz osobno przepustowość multimediów i opóźnienia danych aplikacji.

Odczyt multimediów zwykle zależy od przepustowości

Odtwarzanie bezpośrednie pobiera duże, ciągłe fragmenty danych multimedialnych i wymaga głównie stałej przepustowości z odpowiednim zapasem dla równoczesnych strumieni. Opóźnienie wyszukiwania ma mniejsze znaczenie niż w przypadku bazy danych zawierającej wiele małych rekordów.

Szybsza pamięć masowa pomaga tylko wtedy, gdy jej opóźnienia, pojemność i profil transakcji odpowiadają obciążeniu; kompromisy dotyczące pamięci masowej dla aktywnych danych sprawiają, że wzorzec dostępu jest bardziej użyteczny niż sama nominalna szybkość urządzenia.

Zmierz łączną przepustowość odczytu multimediów podczas najbardziej obciążonego zestawu strumieni. Jeśli pozostaje ona znacznie poniżej możliwości urządzenia i sieci, samo przeniesienie multimediów na szybszą pamięć flash prawdopodobnie nie rozwiąże opóźnień metadanych ani bazy danych.

Zapisy danych aplikacji są bardziej wrażliwe na opóźnienia

Transakcje baz danych, aktualizacje grafik, dzienniki i metadane generują mniejsze zapisy, które mogą czekać na synchronizację, księgowanie lub zakończenie konkurencyjnych operacji losowego wejścia-wyjścia. Ich odczuwalny koszt może być wysoki, nawet gdy całkowita przepustowość w MB/s jest niska.

Linux może gromadzić i opróżniać brudne strony pamięci w seriach, dlatego odroczony zapis danych z pamięci podręcznej może rozdzielać moment zapisu przez Plex od momentu, w którym urządzenie wykazuje skok obciążenia.

Monitoruj osobno opóźnienia, głębokość kolejki, ilość zmodyfikowanej pamięci oraz urządzenie z danymi aplikacji i urządzenie z multimediami. Obciążenie obejmujące małe zapisy o wysokich opóźnieniach to inny problem niż nasycony sekwencyjny odczyt multimediów.

Równoczesne odczyty i zapisy mogą się wzajemnie zakłócać

Umieszczenie stanu bazy danych, multimediów, kopii zapasowych i programów pobierających na jednym urządzeniu pozwala niezależnym wzorcom dostępu konkurować o tę samą kolejkę. Dysk, który działa szybko w izolacji, może zachowywać się niestabilnie, gdy te zadania nakładają się na siebie.

Wydajność bazy danych zależy zarówno od szybkości pamięci masowej, jak i od zestawu obciążeń, a zachowanie baz danych wrażliwe na operacje wejścia-wyjścia jest jednym z powodów, dla których warto testować łączne obciążenie zamiast ekstrapolować wyniki z pojedynczego testu kopiowania plików.

Powtórz powolną operację w Plexie po wstrzymaniu kopii zapasowych i programów zapisujących dane związane z multimediami. Jeśli opóźnienia gwałtownie spadną, rozdziel role czasowe lub pamięci masowej, zanim wymienisz cały serwer.

Rozdzielenie ról uwidacznia wąskie gardło

Przejrzysta topologia zapewnia trwałemu stanowi Plexa, multimediom masowym, pracy tymczasowej i kopiom zapasowym odrębne role związane z wydajnością i odzyskiwaniem danych, nawet jeśli część z nich współdzieli fizyczny sprzęt. Dzięki temu późniejsze testy można właściwie interpretować.

Rozdzielenie ról ułatwia również przypisanie nasycenia zasobów do urządzenia lub ścieżki, która faktycznie obsługuje dane zadanie, zamiast traktować pamięć masową jako jedną niezróżnicowaną pulę.

Testuj ponownie po każdej zmianie ról i zachowuj tylko te zmiany, które przesuwają zmierzone wąskie gardło. W topologii domowego serwera multimediów stan, multimedia, pracę tymczasową i kopie zapasowe należy rozdzielić na tyle, aby można było mierzyć je niezależnie.

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.