Jak przeprowadzić powtarzalny test wydajności Immich przy użyciu obciążenia domowego 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.

Powtarzalny test porównawczy Immich ustala zbiór plików multimedialnych, ścieżkę klienta, stan pamięci podręcznej, nakładanie się zadań w tle oraz mierzony punkt końcowy przed zmianą jednej zmiennej.

Bez tych założeń szybszy drugi przebieg może wynikać z rozgrzanych danych, a nie z lepszego sprzętu, natomiast test w stanie bezczynności może ukryć rywalizację o zasoby podczas importu. Przydatny test domowego serwera odtwarza rzeczywiste potrzeby domowników związane z przeglądaniem, przesyłaniem, wyszukiwaniem i odzyskiwaniem danych, w tej samej kolejności.

Określ oczekiwane rezultaty przed zebraniem metryk

Zacznij od obserwowalnych rezultatów, takich jak akceptacja przesyłania, czas do momentu, gdy nowe zdjęcie stanie się dostępne w wyszukiwarce, ukończenie generowania miniatur osi czasu, otwarcie oryginału, rozpoczęcie odtwarzania filmu lub przywrócenie biblioteki do użytecznego stanu. Wykorzystanie procesora i przepustowość dysku pomagają wyjaśnić te rezultaty, ale nie zastępują wyniku odczuwanego przez użytkownika.

Artykuł ZimaSpace o ścieżce danych Immich rozdziela akceptację przesyłania, gotowość do przetwarzania, wybór wyników wyszukiwania i dostarczenie plików multimedialnych. Ta struktura jest przydatna, ponieważ test powinien mierzyć jeden punkt końcowy, zamiast łączyć kilka zależnych etapów w mylącą sumę.

Wybierz dwa interaktywne punkty końcowe i jeden punkt końcowy zadania w tle. Ustal dla każdego cel zaliczenia i zapisuj medianę oraz opóźnienie w wolnym ogonie rozkładu albo wskaźnik ukończenia. Test z wieloma niezwiązanymi wynikami staje się trudny do interpretacji; niewielki zestaw powiązany z konkretną decyzją ułatwia praktyczne wykorzystanie rezultatów.

Zablokuj zbiór danych, ścieżkę klienta i stan początkowy

W każdym przebiegu używaj tych samych reprezentatywnych zdjęć i filmów, w tym formatów i rozmiarów odpowiadających rodzinnej bibliotece. Ustal konto, urządzenie klienta, trasę sieciową, wersję Immich i ustawienia plików pochodnych. Nawet zmieniona pamięć podręczna przeglądarki lub ścieżka Wi-Fi może przyćmić różnicę między testowanymi konfiguracjami.

Artykuł o testach porównawczych wyszukiwania wektorowego podkreśla znaczenie powtarzalnych obciążeń związanych z osadzaniem, wstawianiem i pobieraniem podczas badania wydajności wyszukiwania w PostgreSQL. Immich jest szerszą aplikacją, ale ta zasada eksperymentalna nadal obowiązuje: zanim różnice czasów będą uzasadniać wnioski, potrzebne są kontrolowane dane wejściowe i zdefiniowane operacje pobierania.

Utwórz manifest zbioru danych zawierający sumy kontrolne plików, liczbę plików, łączną liczbę bajtów, formaty zdjęć, długości filmów oraz oczekiwane wyniki wyszukiwania. Dodaj listę kontrolną startu obejmującą ponowne uruchomienie usług, działania rozgrzewające, zadania w kolejce i konkurencyjne aplikacje. Jeśli lista kontrolna się różni, oznacz przebieg jako nieporównywalny, zamiast uwzględniać go w średniej.

Przeprowadź fazy zimną, ciepłą i długotrwałą

Faza zimna ujawnia koszt inicjalizacji i pierwszego dostępu. Faza ciepła pokazuje ponowne wykorzystanie zasobów przy natychmiastowym powtórzeniu. Faza długotrwała łączy powtarzane interakcje z reprezentatywnym importem lub kolejką zadań w tle, trwając wystarczająco długo, aby ujawnić ograniczanie taktowania z powodu temperatury, presję na pamięć, kolejki operacji pamięci masowej i rywalizację o zasoby.

Raport społeczności opisuje pierwsze inteligentne wyszukiwanie, które trwało około pięciu sekund, oraz natychmiastowe powtórzenie trwające około pół sekundy, gdy zmieniało się wykorzystanie pamięci modelu. Te wartości nie są standardem testowym; pokazują, dlaczego uśrednianie żądań zimnych i ciepłych ukrywa przejście, które test powinien wyjaśnić.

Uruchom każdą fazę co najmniej trzy razy, zachowując surowe znaczniki czasu i ślady wykorzystania zasobów. W przypadku pracy interaktywnej zachowaj medianę i miarę wolnego ogona rozkładu, a w przypadku pracy w tle — liczbę elementów kolejki obsłużonych na minutę. Przerwij przebieg, jeśli błędy, intensywne użycie pamięci wymiany lub ograniczenia termiczne uniemożliwią uzyskanie zamierzonego stanu ustalonego.

Użyj arkusza przebiegu z jedną zmienną

Przed przebiegiem zapisz hipotezę: zmiana położenia bazy danych, współbieżności pracowników, limitu pamięci, ścieżki sieciowej lub akceleratora powinna poprawić jeden nazwany punkt końcowy za pomocą jednego określonego mechanizmu. Wszystkie pozostałe elementy pozostaw bez zmian. Zapobiega to sytuacji, w której modernizacja obejmująca wiele zmian daje szybszy wynik bez możliwej do obrony przyczyny.

Ogólna analiza wąskich gardeł wyjaśnia, że ograniczenia procesora, pamięci RAM, pamięci masowej i sieci powodują różne wzorce wykorzystania zasobów oraz różne skutki dla użytkownika. W odniesieniu do Immich metryki pomocnicze powinny zmieniać się spójnie z punktem końcowym; najbardziej obciążony wykres nie musi automatycznie przedstawiać ograniczającego komponentu.

Zapisz wyniki bazowe i zmienione dla faz zimnej, ciepłej i długotrwałej, a następnie oznacz je jako zaliczone, niezaliczone lub niejednoznaczne. Odrzuć ulepszenia, które znikają przy powtórzeniu albo powodują błędy, niestabilne temperatury, utratę postępu kolejki lub dłuższe odzyskiwanie. Zachowaj manifest i arkusz przebiegu, aby przyszłe wydanie można było uczciwie porównać.

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.