Jak sprawdzić, czy Immich jest ograniczony przez procesor, pamięć RAM, pamięć masową lub sieć

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.

Określ, co ogranicza Immich, odtwarzając jedno stałe obciążenie związane z przesyłaniem, przeglądaniem, wyszukiwaniem lub zadaniami w tle i korelując jego wskaźnik ukończenia z wysyceniem procesora, presją na pamięć, opóźnieniami pamięci masowej oraz przepustowością sieci w tym samym przedziale czasu.

Sama wysoka wartość procentowa nie oznacza wąskiego gardła: pełne użycie procesora może być prawidłowe podczas uczenia maszynowego, wysoki poziom użycia pamięci RAM może wynikać z pamięci podręcznej systemu plików, a wolne przesyłanie może być spowodowane telefonem lub siecią Wi-Fi. Mierz wszystko od klienta przez kontener po hosta, rejestruj postęp kolejki, a następnie zmień jedno podejrzewane ograniczenie i powtórz test. Zasób, którego odciążenie poprawia to samo obciążenie, jest czynnikiem ograniczającym.

Zbuduj jeden powtarzalny test i oś czasu

Wybierz objaw, który chcesz poprawić: przetwarzanie stałej partii multimediów, otwieranie niebuforowanych oryginałów, generowanie miniaturek, uruchamianie funkcji Smart Search lub transkodowanie jednego filmu. Zapisz moment rozpoczęcia, pojawienia się pierwszego użytecznego wyniku, ukończenia, błędów oraz zmian w kolejce zadań. Łączenie zadań daje wykresy zasobów bez konkretnej decyzji.

Jedno z opisanych dochodzeń dotyczy niezwykle wolnego wdrożenia Immich, w którym analizowano dane o procesorze, pamięci, dysku i sieci. Jego podejście diagnostyczne obejmujące różne zasoby jest przydatne, ale to stały test musi określić przyczynę na Twoim serwerze.

Powtórz test po rozgrzaniu pamięci podręcznych. Jeśli drugi przebieg jest znacznie szybszy, odnotuj stan pamięci podręcznej, zamiast uznawać sprzęt za niespójny. Jeśli oba przebiegi zatrzymują się na tym samym etapie, zestaw ten znacznik czasu ze wskaźnikami hosta i kontenera oraz odpowiedzialnym zadaniem.

Rozpoznaj oznaki ograniczeń procesora i pamięci

Ograniczenie procesora oznacza utrzymującą się liczbę oczekujących zadań na odpowiednich rdzeniach, przy czym zadanie postępuje proporcjonalnie; zmniejszenie współbieżności może poprawić interakcję, ale wydłużyć czas opróżniania kolejki. Jeśli jeden wątek jest w pełni obciążony, a całkowite użycie procesora wygląda umiarkowanie, sprawdź widok poszczególnych procesów i rdzeni, zanim uznasz, że dostępna jest wolna moc obliczeniowa.

Ograniczenie pamięci wymaga dowodów presji: rosnącego użycia pamięci wymiany, odzyskiwania pamięci, poważnych błędów stron, zabójstw procesów z powodu braku pamięci lub restartów kontenera. Wysokie użycie pamięci przy stabilnej pamięci podręcznej, braku pamięci wymiany i prawidłowych opóźnieniach nie potwierdza problemu. Uruchom test ponownie z jednym pracownikiem o niższej współbieżności lub z mniejszym modelem i porównaj ukończenie.

W opisanym przypadku miniaturek w Immich v2.5.5 jedno wdrożenie zużywało ekstremalnie dużo pamięci. Raport dotyczący pamięci w konkretnej wersji uzasadnia sprawdzenie wadliwego zadania i wydania, ale nie określa typowego zapotrzebowania na pamięć RAM.

Oddziel opóźnienia pamięci masowej od przepustowości sieci

W przypadku pamięci masowej obserwuj opóźnienia urządzenia, głębokość kolejki, przepustowość, dostępną przestrzeń systemu plików i dostępność i-węzłów podczas wykonywania dokładnie tego zadania. Niska liczba megabajtów na sekundę nadal może oznaczać ograniczenie pamięci masowej, gdy wiele małych operacji na bazie danych i miniaturach czeka na dysku o wysokich opóźnieniach.

W przypadku sieci mierz po obu stronach — klienta i serwera — a następnie porównaj ścieżki lokalne i zdalne. Wysycenie łącza, retransmisje, ponowne transmisje w sieci Wi-Fi lub limit VPN pokrywający się z transferem wskazują na ograniczenie sieciowe. Jeśli ruch przesyłania się kończy, ale przetwarzanie nadal trwa długo, śledź zamiast tego kolejkę po stronie serwera.

Przegląd ZimaSpace dotyczący usług na starszym sprzęcie zapewnia kontekst planowania systemu; ta diagnoza powinna jednak nadal opierać się na zmierzonych opóźnieniach i tempie pracy, a nie na oznaczeniach wieku.

Odciąż jedno ograniczenie i zweryfikuj to samo obciążenie

Zmień jedną bezpieczną zmienną: zmniejsz współbieżność jednego zadania, tymczasowo przetestuj limit pamięci, przenieś kopię aktywnych danych na szybszą pamięć masową lub wykonaj test przez przewodową sieć lokalną. Zachowaj porównywalny zbiór danych, wersje i stan pamięci podręcznej. Poprawa zarówno ukończenia, jak i przewidywanego wskaźnika spełnia warunek przyczynowości.

Nie kupuj sprzętu na podstawie średniego bezczynnego użycia ani pojedynczego szczytu. Zasób warto zmodernizować, gdy wielokrotnie ogranicza ważne obciążenie po wykluczeniu błędów oprogramowania, problemów z wolnym miejscem i konkurencyjnych zaplanowanych zadań.

Wycofaj zmiany, które przenoszą awarię do innej warstwy lub wydłużają kolejki poza docelowy czas działania usługi. Jeśli system zatrzymuje się, gdy żaden zasób nie wykazuje presji, zgłoś problem, podając definicję obciążenia, znaczniki czasu, wskaźniki poszczególnych kontenerów, opóźnienia dysku, testy sieci, postęp kolejki i logi; taki wzorzec może wskazywać na blokadę, zależność lub błąd aplikacji.

Wsparcie i wskazówki

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.