Wydajność Immich należy mierzyć przy użyciu powtarzanych obciążeń zimnych, ciepłych i długotrwałych, ponieważ jeden szybki przebieg z wykorzystaniem pamięci podręcznej może ukryć rzeczywisty punkt nasycenia systemu.
Serwer domowy może sprawiać wrażenie niezwykle szybkiego podczas wyświetlania osi czasu lub albumu, gdy te same miniatury, strony bazy danych i dane aplikacji były już wcześniej używane. Taki wynik dowodzi, że ścieżka ciepła działa sprawnie, ale nie oznacza, że system poradzi sobie z większą biblioteką rodzinną lub większą liczbą jednoczesnych operacji. Przydatny test wydajności musi kontrolować stan pamięci podręcznej, powiększać zestaw roboczy, powtarzać przebiegi i definiować mierzalny warunek zakończenia.
Szybkość pamięci podręcznej to nie to samo co wydajność pojemnościowa
Wydajność pojemnościowa opisuje, jak dużo reprezentatywnej pracy system Immich może obsłużyć w sposób ciągły, zanim opóźnienia, kolejki lub błędy staną się nieakceptowalne. Szybkość pamięci podręcznej odpowiada na węższe pytanie: jak szybko system może powtórzyć operację, gdy przydatne dane lub wygenerowane zasoby są już pod ręką? Jeśli test powtarza ten sam album lub oś czasu, te dwa pytania mogą wyglądać identycznie, mimo że dotyczą różnych warunków pracy.
Różnicę łatwo zauważyć w wydajności stron internetowych, gdzie czasy pierwszego i kolejnego wyświetlenia mogą się różnić, ponieważ późniejsze żądania ponownie wykorzystują zasoby z pamięci podręcznej. Immich ma dodatkowe możliwości działania w trybie ciepłym, ponieważ ponownie mogą być używane miniatury, podglądy, strony bazy danych, metadane systemu plików, pamięć podręczna systemu operacyjnego i zasoby klienta. Powtórny przebieg może więc pominąć pracę, którą rosnąca lub dopiero otwierana biblioteka nadal musi wykonać.
Z tego samego powodu test Home Assistant skoncentrowany na pamięci podręcznej może wprowadzać w błąd, gdy w próbie dominują powtarzane żądania; omówienie warstw pamięci podręcznej dla powtarzanych żądań w ZimaSpace odnosi się również do przedstawionej tu logiki pomiaru. W przypadku Immich należy rejestrować wydajność w trybie ciepłym, ale oznaczać ją jako osobną ścieżkę, zamiast traktować ją jako ogólną wydajność pojemnościową serwera.
Oddziel przebiegi zimne, ciepłe i ustalone
Zacznij od określenia stanu przed uruchomieniem stopera. Przebieg zimny powinien obejmować pracę, która nie była dopiero co powtarzana, na przykład otwarcie innego zakresu dat lub zestawu zasobów po okresie, w którym pamięć podręczna miała mniej okazji, by pomóc. Przebieg ciepły celowo powtarza znaną ścieżkę. Przebieg w stanie ustalonym utrzymuje reprezentatywną aktywność wystarczająco długo, aby ujawnić pracę w tle, odzyskiwanie zasobów i kolejki, których krótki zryw może nigdy nie pokazać.
Sam etap rozgrzewania może wprowadzać w błąd. Percona opisuje przypadki, w których baza danych wygląda na rozgrzaną, choć opóźnione procesy w tle nadal zmieniają wydajność, dlatego stan ustalony pojawia się później niż pierwsze szybkie zapytania. W Immich przeglądanie na pierwszym planie może podobnie nakładać się na aktywność bazy danych, generowanie miniatur, indeksowanie lub inne zadania w kolejce, zależnie od aktualnego stanu biblioteki.
W teście serwera domowego uruchamiaj każdą fazę osobno, zamiast uśredniać je razem. Zapisuj, czy zadania w tle są bezczynne, czy aktywne, utrzymuj stały klient i ścieżkę sieciową oraz powtarzaj każdą fazę kilka razy. Jeśli przebieg ciepły jest szybki, ale długotrwała aktywność stopniowo zwiększa opóźnienia lub głębokość kolejki, drugi wynik jest lepszym sygnałem przy planowaniu wydajności pojemnościowej.
Powiększ zestaw roboczy poza łatwo dostępną pamięć podręczną
Test otwierający te same dwadzieścia zdjęć jest zwykle zbyt mały, aby odpowiedzieć na pytanie o wydajność pojemnościową rodzinnej biblioteki. System operacyjny, baza danych, klient i warstwa pamięci masowej mogą utrzymywać mały gorący zestaw blisko procesora, podczas gdy rzeczywiste użycie obejmuje skakanie między miesiącami, osobami, albumami, wynikami wyszukiwania i filmami. Zestaw testowy powinien być więc wystarczająco duży i zróżnicowany, aby nie każda operacja korzystała z tych samych niedawno używanych danych.
Praktyka testowania baz danych wyraźnie pokazuje tę różnicę: gdy test ma badać pamięć masową lub zachowanie zimne, pozostała zawartość pamięci podręcznej może zmienić go w test wydajności pamięci podręcznej. Nie musisz opróżniać każdej warstwy pamięci podręcznej na produkcyjnym serwerze Immich, aby uzyskać przydatne informacje, ale potrzebujesz obciążenia, którego zestaw roboczy wykracza poza jeden wielokrotnie używany ekran.
Wybierz kilka zakresów dat, albumów, wyszukiwań i typów zasobów odpowiadających typowemu domowemu użyciu, a następnie przechodź między nimi zamiast intensywnie obciążać jeden widok. Zachowaj tę samą definicję obciążenia podczas porównań sprzętu lub konfiguracji. Jeśli zmiana poprawia tylko mały, często powtarzany podzbiór, a szersza nawigacja nadal zwalnia pod obciążeniem, poprawiła ścieżkę gorącą, ale nie przesunęła użytecznej granicy wydajności pojemnościowej.
Mierz percentyle i powtarzaj test
Jedna średnia może ukryć momenty, które użytkownicy rzeczywiście zauważają. Jeśli dziewięć żądań jest szybkich, a dziesiąte zatrzymuje się, gdy rośnie kolejka lub pamięć masowa jest zajęta, średnia nadal może wyglądać przyzwoicie. Rejestruj co najmniej medianę oraz percentyl z ogona, na przykład p95, a następnie zestawiaj opóźnienie z przepustowością, liczbą błędów, zaległościami zadań, użyciem procesora, presją pamięci i aktywnością pamięci masowej, aby spowolnienie miało odpowiedni kontekst.
Praktyczna analiza testów zaleca raportowanie wartości p50, p95, p99 oraz wariancji, zamiast polegania na jednym przebiegu, szczególnie w przypadku systemów stanowych, w których eksmisja danych z pamięci podręcznej, kompaktowanie lub aktywność w tle mogą pojawić się dopiero później. Testy Immich nie muszą mieć laboratoryjnej precyzji, ale potrzebują wystarczającej liczby powtórzeń, aby odróżnić powtarzalne ograniczenie od przypadkowo spokojnego okresu.
Uruchom ten sam scenariusz co najmniej kilka razy przy każdym poziomie obciążenia i zachowaj surowe obserwacje, zamiast przechowywać tylko najlepszy przebieg. Twierdzenie dotyczące wydajności pojemnościowej jest bardziej wiarygodne, gdy p95 pozostaje stabilne między przebiegami, a serwer opróżnia kolejkę zadań między oknami pomiarowymi. Jeśli wyniki mocno się wahają, zbadaj niekontrolowaną zmienną, zanim stwierdzisz, że większa liczba użytkowników, więcej zdjęć lub szybszy sprzęt zmieniły granicę wydajności.
Stosuj procedurę pomiaru wydajności pojemnościowej Immich z warunkiem zakończenia
Zacznij od jednego reprezentatywnego obciążenia klienta i zarejestruj wartości bazowe po osiągnięciu stanu, który zamierzasz testować. Następnie zwiększaj jedną zmienną naraz: liczbę jednoczesnych operacji przeglądania, przesyłania, wyszukiwania lub przetwarzania w tle, utrzymując bez zmian bibliotekę, zestaw klientów, ścieżkę sieciową i konfigurację serwera. Na każdym etapie zapisuj opóźnienie p50 i p95, liczbę pomyślnych operacji na minutę, błędy, wzrost kolejki oraz główny zasób serwera zbliżający się do nasycenia.
Takie podejście pozwala uniknąć częstego błędu wyciągania wniosków z jednego krótkiego przebiegu. Wskazówki dotyczące testowania wydajności ostrzegają przed wnioskami opartymi na jednym przebiegu, ponieważ rozgrzewanie, stan pamięci podręcznej, praca w tle i zwykły szum systemowy mogą zdominować próbę. Powtarzaj każdy poziom obciążenia do momentu, gdy kierunek zmian będzie wystarczająco stabilny, aby go wyjaśnić, a nie tylko wygodny do zacytowania.
Przed rozpoczęciem testu ustal zasadę zakończenia. Praktyczna heurystyka dla domowego laboratorium mówi, że bieżącą konfigurację można uznać za nasyconą, gdy opóźnienie p95 utrzymuje się powyżej około dwukrotności wartości bazowej bez obciążenia przez trzy kolejne okna pomiarowe albo gdy liczba błędów lub zaległości zadań stale rośnie zamiast się zmniejszać; jest to heurystyka testowa, a nie ograniczenie Immich. Użyteczna wartość wydajności pojemnościowej to ostatni poziom obciążenia poniżej tej granicy, zmierzony przy użyciu tej samej procedury zimnej, ciepłej i w stanie ustalonym.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Otwarte modele doganiają czołówkę AI — czy 2026 będzie rokiem, w którym lokalne AI stanie się wystarczająco dobre?
Otwarte modele stają się wystarczająco dobre do obsługi większej liczby lokalnych zadań AI, podczas gdy chmurowe modele czołowe pozostają przydatne w przypadku najtrudniejszych zadań...

NVIDIA PAIR zamienia Twoją sieć domową w lokalny klaster AI — czy nadal potrzebujesz jednego dużego serwera GPU?
NVIDIA PAIR rozdziela lokalne zadania AI między wiele komputerów, zwiększając elastyczność mocy obliczeniowej, podczas gdy jeden domowy serwer może zachować trwałość danych i stanu.

Dlaczego Immich działa szybciej w sieci LAN niż przez połączenia zdalne?
Żądania w sieci LAN zwykle korzystają z krótszej ścieżki o mniejszych opóźnieniach. Zdalny dostęp wiąże się z ograniczeniami przepustowości sieci WAN i może dodawać...

