Si Frigate informa que el tamaño actual de la memoria compartida es de solo 64 MB, aumenta el valor de shm_size del contenedor en la definición del servicio de Docker Compose. No añadas shm_size como variable de entorno; Docker Compose lo trata como un ajuste de tiempo de ejecución del servicio que controla el valor de /dev/shm del contenedor.
El usuario de origen vio una recomendación de al menos 306 MB en una ZimaBoard 2. El valor exacto depende de la carga de trabajo, así que copia el mecanismo en lugar de copiar ciegamente una cifra. El número de cámaras, la resolución y la cantidad de fotogramas decodificados afectan a los requisitos de memoria compartida de Frigate.
Por qué Frigate ve 64 MB de forma predeterminada
Los contenedores de Docker suelen iniciarse con un sistema de archivos de memoria compartida relativamente pequeño. Frigate utiliza /dev/shm para almacenar fotogramas de vídeo decodificados sin procesar, por lo que las cargas de trabajo con cámaras pueden superar el valor predeterminado incluso cuando el host tiene suficiente RAM libre.
Por tanto, la advertencia se refiere a la asignación de memoria compartida del contenedor, no simplemente a la memoria total del sistema. Añadir más RAM física sin cambiar el ajuste del contenedor no aumenta automáticamente el tamaño de /dev/shm del contenedor.
shm_size no es una variable de entorno
En una de las ramas de la resolución de problemas del foro se intentó añadir shm_size en la sección de variables de entorno. Otro participante señaló correctamente que esto no configura el montaje de memoria compartida de Docker.
Docker Compose define shm_size directamente dentro del servicio, junto con ajustes como la imagen, la política de reinicio, los volúmenes y los dispositivos. La referencia actual de Compose de Docker indica que este campo configura el tamaño de /dev/shm del contenedor del servicio.
Referencia de shm_size de Docker Compose es la fuente autorizada de la sintaxis.
Edita el YAML del servicio de Frigate
El hilo utilizaba un valor a nivel de servicio equivalente aproximadamente a 1 GB en bytes. Los analizadores actuales de Compose y los ejemplos de Frigate también admiten tamaños legibles. Una estructura simplificada sería la siguiente:
services:
frigate:
image: ...
shm_size: "512mb"
...
Mantén el campo en el mismo nivel de indentación que los demás ajustes de tiempo de ejecución del servicio. Si una versión concreta de ZimaOS o un editor rechaza una unidad legible, el formato en bytes utilizado en el hilo de la comunidad es una alternativa compatible; lo importante es que el ajuste pertenezca al servicio de Compose, no a environment:.
Elige un valor para tu carga de trabajo real de cámaras
La documentación actual de Frigate explica que la demanda de memoria compartida depende de las dimensiones de la imagen y de los fotogramas almacenados en búfer. El archivo Compose de ejemplo actual utiliza una asignación mayor que la predeterminada de Docker y ofrece orientación para estimar los requisitos.
No establezcas un valor arbitrariamente enorme sin motivo. Auméntalo lo suficiente para que desaparezca la advertencia con la carga de trabajo real, reinicia o vuelve a crear el contenedor para aplicar el ajuste de tiempo de ejecución y, después, verifica el tamaño efectivo desde dentro del contenedor en ejecución.
Orientación actual de instalación de Frigate debe tener prioridad sobre un valor fijo del hilo de 2026.
El flujo de edición de ZimaOS depende de la versión
La publicación original se realizó cuando el usuario utilizaba una versión beta de ZimaOS 1.6.0. Una respuesta de IceWhale también señaló que el comportamiento de la memoria compartida del host en la versión 1.5.4 difería de lo que veía el usuario, lo que añadió confusión entre los ajustes del host y del contenedor.
La versión actual de ZimaOS 1.7.x ofrece edición nativa de YAML y la versión 1.7.1 mejoró específicamente la compatibilidad al guardar YAML. Utiliza el editor de aplicaciones actual siempre que sea posible, pero conserva la distinción de Docker: el contenedor de Frigate sigue necesitando su propio valor de shm_size, independientemente de cuánta memoria compartida informe el host.
