Wenn Frigate meldet, dass die aktuelle Größe des gemeinsam genutzten Speichers nur 64 MB beträgt, erhöhen Sie shm_size des Containers in der Docker-Compose-Service-Definition. Fügen Sie shm_size nicht als Umgebungsvariable hinzu. Docker Compose behandelt diese Einstellung als Laufzeiteinstellung auf Serviceebene, die den /dev/shm des Containers steuert.
Der betreffende Nutzer sah auf einem ZimaBoard 2 die Empfehlung von mindestens 306 MB. Der genaue Wert hängt von der Arbeitslast ab. Übernehmen Sie daher den Mechanismus, statt blind eine bestimmte Zahl zu kopieren. Kameranzahl, Auflösung und die Anzahl der dekodierten Bilder beeinflussen den Bedarf von Frigate an gemeinsam genutztem Speicher.
Warum Frigate standardmäßig 64 MB sieht
Docker-Container starten üblicherweise mit einem relativ kleinen Dateisystem für gemeinsam genutzten Speicher. Frigate verwendet /dev/shm für rohe dekodierte Videobilder. Daher können Kamera-Workloads den Standardwert überschreiten, selbst wenn auf dem Host noch reichlich Arbeitsspeicher verfügbar ist.
Die Warnung bezieht sich daher auf die Speicherzuweisung des Containers für gemeinsam genutzten Speicher, nicht einfach auf den gesamten Systemspeicher. Mehr physischer Arbeitsspeicher vergrößert /dev/shm des Containers nicht automatisch, wenn die Containereinstellung unverändert bleibt.
shm_size ist keine Umgebungsvariable
In einem Teil der Foren-Fehlerbehebung wurde versucht, shm_size im Abschnitt für Umgebungsvariablen hinzuzufügen. Ein anderer Teilnehmer wies richtigerweise darauf hin, dass dadurch der von Docker bereitgestellte Speicherbereich nicht konfiguriert wird.
Docker Compose definiert shm_size direkt unter dem Service, zusammen mit Einstellungen wie Image, Neustart-Richtlinie, Volumes und Geräten. Die aktuelle Compose-Referenz von Docker besagt, dass dieses Feld die Größe von /dev/shm des Service-Containers konfiguriert.
Referenz zu shm_size in Docker Compose ist die maßgebliche Quelle für die Syntax.
Die YAML-Datei des Frigate-Service bearbeiten
Im Thread wurde ein Wert auf Serviceebene verwendet, der ungefähr 1 GB in Byte entsprach. Aktuelle Compose-Parser und Frigate-Beispiele unterstützen auch lesbare Größenangaben. Eine vereinfachte Struktur sieht folgendermaßen aus:
services:
frigate:
image: ...
shm_size: "512mb"
...
Behalten Sie das Feld auf derselben Einrückungsebene wie die anderen Laufzeiteinstellungen des Service. Wenn ein bestimmter ZimaOS-Build oder Editor eine lesbare Einheit ablehnt, kann die im Community-Thread verwendete Byte-Form als Kompatibilitätslösung dienen. Entscheidend ist, dass die Einstellung zum Compose-Service gehört und nicht zu environment:.
Einen Wert für die tatsächliche Kamera-Arbeitslast wählen
Die aktuelle Dokumentation von Frigate erklärt, dass der Bedarf an gemeinsam genutztem Speicher von den Bildabmessungen und der Anzahl der gepufferten Bilder abhängt. Die aktuelle Compose-Beispieldatei verwendet eine größere Zuweisung als der Docker-Standardwert und enthält Hinweise zur Ermittlung des erforderlichen Werts.
Setzen Sie nicht ohne Grund einen beliebig großen Wert. Erhöhen Sie ihn so weit, dass die Warnung unter der tatsächlichen Arbeitslast verschwindet, starten Sie den Container neu oder erstellen Sie ihn neu, damit die Laufzeiteinstellung angewendet wird, und überprüfen Sie anschließend die tatsächlich wirksame Größe innerhalb des laufenden Containers.
Aktuelle Installationshinweise von Frigate sollten Vorrang vor einem festen Wert aus dem Thread von 2026 haben.
Der Bearbeitungsablauf in ZimaOS hängt von der Version ab
Der ursprüngliche Beitrag wurde verfasst, als der Nutzer ZimaOS 1.6.0 Beta verwendete. Eine Antwort von IceWhale wies außerdem darauf hin, dass sich das Verhalten des gemeinsam genutzten Speichers auf Hostebene in Version 1.5.4 von dem unterschied, was der Nutzer beobachtete. Dadurch kam es zu zusätzlicher Verwirrung zwischen Host- und Containereinstellungen.
Das aktuelle ZimaOS 1.7.x bietet eine native YAML-Bearbeitung, und Version 1.7.1 verbesserte speziell die Kompatibilität beim Speichern von YAML. Verwenden Sie nach Möglichkeit den aktuellen App-Editor, behalten Sie aber die Docker-Unterscheidung bei: Der Frigate-Container benötigt unabhängig davon, wie viel gemeinsam genutzten Speicher der Host meldet, weiterhin einen eigenen Wert für shm_size.
