Rozwiązanie społecznościowe

ZimaOS Files zużywa zbyt dużo pamięci RAM: rozwiązanie problemu OOM i pętli ponownych uruchomień

A 1.6.2 system entered a 9–10 minute reboot loop after a 749,000-file copy as IceWhale file services consumed roughly 6GB RAM; masking them stabilized the host.

Jeśli ZimaOS 1.6.2 po wykonaniu ogromnej operacji na plikach wpada w pętlę ponownych uruchomień, a icewhale-files lub icewhale-files-backup zużywa kilka gigabajtów pamięci RAM, zaktualizuj system do ZimaOS 1.7.1 lub nowszego przed zastosowaniem trwałych masek usług. W ZimaOS 1.7.1 oficjalnie naprawiono nieprawidłowe użycie pamięci w niektórych scenariuszach związanych z operacjami na plikach.

Zgłoszenie źródłowe jest nadal wartościowe, ponieważ jasno dokumentuje ciąg zdarzeń prowadzący do awarii: skopiowano około 749 000 plików, usługi plików zwiększyły łączne zużycie pamięci do około 6 GB na komputerze z 7,5 GB pamięci RAM, pamięć wymiany osiągnęła niemal 100%, a serwer uruchamiał się ponownie co 9–10 minut. Zamaskowanie usług przerwało pętlę, ale wyłączyło również aplikację internetową Files i usługę Backup.

Rozpoznaj wzorzec przeciążenia pamięci

Typowe sygnały obejmują:

  • pamięć RAM niemal wyczerpana;
  • pamięć wymiany prawie pełna;
  • icewhale-files wśród procesów zużywających najwięcej pamięci;
  • bardzo wysokie oczekiwanie na operacje wejścia-wyjścia lub pozorne zawieszanie się systemu;
  • powtarzające się ponowne uruchomienia przypominające działanie watchdoga po operacjach na dużej liczbie plików.

Krok 1: Zaktualizuj system do ZimaOS 1.7.1 lub nowszego

Oficjalne informacje o wydaniu ZimaOS 1.7.1 wyraźnie wymieniają poprawkę dotyczącą nieprawidłowego użycia pamięci w scenariuszach związanych z operacjami na plikach.

To jest obecnie podstawowe rozwiązanie. Obejście dla wersji 1.6.2 nie powinno być standardową konfiguracją w 2026 roku.

Krok 2: Zmierz użycie pamięci RAM i pamięci wymiany

free -h
ps aux --sort=-%mem | head
swapon --show

Przed wyłączeniem czegokolwiek upewnij się, że usługi plików rzeczywiście są odpowiedzialne za problem.

Krok 3: Sprawdź ostatnie ponowne uruchomienia

journalctl --list-boots

Powtarzający się interwał może pomóc odróżnić działanie watchdoga lub resetowanie od losowej utraty zasilania.

Awaryjne zatrzymanie w starym systemie 1.6.2

Jeśli serwer nie może pozostać uruchomiony wystarczająco długo, aby przeprowadzić aktualizację, użytkownik źródłowego zgłoszenia ustabilizował go za pomocą:

sudo systemctl zatrzymaj icewhale-files.service icewhale-files-backup.service
sudo systemctl zamaskuj icewhale-files.service icewhale-files-backup.service

To awaryjna metoda odzyskiwania. Wyłącza ważne natywne funkcje. Po aktualizacji zdejmij maski i sprawdź działanie bieżących usług w zwykły sposób.

Zdejmowanie maski po odzyskaniu systemu

sudo systemctl zdejmij maskę z icewhale-files.service icewhale-files-backup.service
sudo systemctl uruchom icewhale-files.service icewhale-files-backup.service

Wykonaj to dopiero po zainstalowaniu poprawionej lub aktualnej wersji systemu i uzyskaniu wystarczającej stabilności do obserwowania zachowania pamięci.

Duża liczba plików różni się od dużego rozmiaru pliku

749 000 małych plików może znacznie bardziej obciążać metadane i indeksowanie niż jeden film o rozmiarze 67 GB. Podczas odtwarzania problemu lub jego zgłaszania podaj zarówno łączną liczbę bajtów, jak i liczbę plików.

NTFS/FUSE i wiele kontenerów zwiększają obciążenie

Na komputerze źródłowym działało również około 38 kontenerów i kilka woluminów NTFS za pośrednictwem NTFS/FUSE ntfs-3g. Warunki te stanowią kontekst, a nie potwierdzone przyczyny. Nie uznawaj ich za przyczynę źródłową, gdy zaobserwowany wzrost zużycia pamięci występował w usługach plików IceWhale.

Nie dodawaj losowo MemoryMax jako pierwszego bieżącego rozwiązania

Autor źródłowy zasugerował systemd MemoryMax= jako ulepszenie produktu. W aktualnej wersji sztuczne ograniczenie usługi może powodować nowe błędy indeksowania lub tworzenia kopii zapasowych, jeśli obciążenie rzeczywiście wymaga pamięci.

Najpierw zaktualizuj system, a następnie wykonaj pomiary. Ograniczenia usług stosuj tylko wtedy, gdy rozumiesz związany z nimi kompromis.

Nie przechowuj AppData na małym dysku systemowym

Intensywne użycie pamięci może powodować duże tymczasowe obciążenie operacjami wejścia/wyjścia. Aktualny przewodnik przechowywania aplikacji w ZimaOS zaleca przeniesienie AppData na główny nośnik.

Przewodnik rozwiązywania problemów z wydajnością zawiera szerszą listę kontrolną zasobów.

Najczęściej zadawane pytania

Czy ZimaOS 1.7.1 naprawił ten błąd pamięci?

Oficjalnie naprawiono w ten sposób nieprawidłowe zużycie pamięci w określonych scenariuszach operacji na plikach, co bezpośrednio pokrywa się ze wzorcem pierwotnej awarii.

Czy powinienem na stałe zamaskować icewhale-files?

Nie. Maskowanie było awaryjnym obejściem, które wyłącza funkcje Pliki i Kopia zapasowa.

Dlaczego pamięć wymiany pogorszyła działanie serwera?

Po wyczerpaniu pamięci RAM intensywne stronicowanie może generować duże obciążenie operacjami wejścia/wyjścia dysku i długie przestoje, szczególnie gdy usługi plików jednocześnie skanują lub kopiują ogromną liczbę plików.

Jakie dowody należy zebrać, jeśli problem nadal występuje?

Wersja ZimaOS, liczba plików, rozmiar transferu, stan pamięci RAM/pamięci wymiany, procesy zużywające najwięcej pamięci, typy punktów montowania/systemów plików oraz znaczniki czasu uruchomienia i ponownego uruchomienia.