Rozwiązanie społecznościowe

Napraw ostrzeżenie Frigate o 64 MB pamięci współdzielonej w ZimaOS

An April 2026 ZimaBoard 2 thread solved a Frigate shared-memory warning by treating shm_size as a Docker Compose runtime option rather than an environment variable and editing the app YAML.

Jeśli Frigate zgłasza, że bieżący rozmiar pamięci współdzielonej wynosi tylko 64 MB, zwiększ wartość shm_size usługi kontenera w definicji Docker Compose. Nie dodawaj shm_size jako zmiennej środowiskowej — Docker Compose traktuje ją jako ustawienie środowiska uruchomieniowego usługi, które określa rozmiar /dev/shm kontenera.

Użytkownik źródłowy zobaczył zalecenie wynoszące co najmniej 306 MB na urządzeniu ZimaBoard 2. Dokładna wartość zależy od obciążenia, dlatego skopiuj mechanizm, a nie bezrefleksyjnie konkretną liczbę. Liczba kamer, rozdzielczość i liczba dekodowanych klatek wpływają na wymagania Frigate dotyczące pamięci współdzielonej.

Dlaczego Frigate domyślnie widzi 64 MB

Kontenery Docker są często uruchamiane z dość małym systemem plików pamięci współdzielonej. Frigate używa /dev/shm do przechowywania surowych, zdekodowanych klatek wideo, dlatego obciążenie związane z kamerami może przekroczyć wartość domyślną, nawet gdy na hoście jest dużo wolnej pamięci RAM.

Ostrzeżenie dotyczy więc alokacji pamięci współdzielonej kontenera, a nie po prostu całkowitej pamięci systemu. Dodanie fizycznej pamięci RAM bez zmiany ustawienia kontenera nie powiększa automatycznie jego /dev/shm.

shm_size nie jest zmienną środowiskową

W jednym z wariantów rozwiązywania problemu na forum próbowano dodać shm_size w sekcji zmiennych środowiskowych. Inny uczestnik słusznie zauważył, że nie konfiguruje to montowania pamięci współdzielonej Dockera.

Docker Compose definiuje shm_size bezpośrednio w sekcji usługi, obok takich ustawień jak obraz, zasady ponownego uruchamiania, woluminy i urządzenia. Aktualna dokumentacja Compose firmy Docker stwierdza, że to pole konfiguruje rozmiar /dev/shm kontenera usługi.

Dokumentacja Docker Compose dotycząca shm_size jest autorytatywnym źródłem składni.

Edytowanie YAML usługi Frigate

W omawianym wątku użyto wartości na poziomie usługi odpowiadającej około 1 GB w bajtach. Aktualne parsery Compose i przykłady Frigate obsługują również rozmiary zapisane w czytelnej formie. Uproszczona struktura wygląda następująco:

services:
  frigate:
    image: ...
    shm_size: "512mb"
    ...

Umieść to pole na tym samym poziomie wcięcia co pozostałe ustawienia środowiska uruchomieniowego usługi. Jeśli konkretna wersja ZimaOS lub edytor odrzuca jednostkę zapisaną w czytelnej formie, wartość w bajtach użyta w wątku społecznościowym może służyć jako rozwiązanie zwiększające zgodność; najważniejsze jest to, że ustawienie należy do usługi Compose, a nie do sekcji environment:.

Niestandardowe ustawienia aplikacji ZimaOS używane do uzyskania dostępu do konfiguracji Compose Frigate
W omawianej dyskusji przejście od zwykłych ustawień aplikacji do konfiguracji Compose/YAML nastąpiło w dalszym etapie.
Okno dialogowe importowania Docker Compose w ZimaOS wyświetlone podczas konfigurowania pamięci współdzielonej Frigate
W kwietniu 2026 roku używano importowania Compose; nowsze wersje ZimaOS udostępniają bardziej bezpośrednią edycję YAML.

Wybierz wartość odpowiednią dla rzeczywistego obciążenia kamer

Aktualna dokumentacja Frigate wyjaśnia, że zapotrzebowanie na pamięć współdzieloną zależy od wymiarów obrazu i liczby buforowanych klatek. Obecny przykładowy plik Compose używa większej alokacji niż wartość domyślna Dockera i zawiera wskazówki dotyczące szacowania wymagań.

Nie ustawiaj bez powodu arbitralnie ogromnej wartości. Zwiększ ją na tyle, aby ostrzeżenie zniknęło przy rzeczywistym obciążeniu, uruchom ponownie kontener lub utwórz go ponownie, aby zastosować ustawienie środowiska uruchomieniowego, a następnie sprawdź efektywny rozmiar wewnątrz działającego kontenera.

Aktualne wskazówki dotyczące instalacji Frigate powinny mieć pierwszeństwo przed stałą wartością z wątku z 2026 roku.

Sposób edycji w ZimaOS zależy od wersji

Oryginalny post powstał, gdy użytkownik korzystał z wersji beta ZimaOS 1.6.0. W odpowiedzi IceWhale zauważono również, że zachowanie pamięci współdzielonej po stronie hosta w wersji 1.5.4 różniło się od tego, co widział użytkownik, co dodatkowo zwiększyło zamieszanie między ustawieniami hosta i kontenera.

Aktualna wersja ZimaOS 1.7.x udostępnia natywną edycję YAML, a wersja 1.7.1 poprawiła zgodność zapisywania YAML. W miarę możliwości używaj bieżącego edytora aplikacji, ale pamiętaj o rozróżnieniu dotyczącym Dockera: kontener Frigate nadal potrzebuje własnej wartości shm_size, niezależnie od ilości pamięci współdzielonej zgłaszanej przez hosta.