Solução da comunidade

Corrigir o aviso de memória partilhada de 64 MB do Frigate no 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.

Se o Frigate indicar que o tamanho atual da memória partilhada é apenas de 64 MB, aumente o shm_size do contentor na definição do serviço Docker Compose. Não adicione shm_size como variável de ambiente; o Docker Compose trata-o como uma definição de execução ao nível do serviço que controla o /dev/shm do contentor.

O utilizador da fonte viu uma recomendação de, pelo menos, 306 MB num ZimaBoard 2. O valor exato depende da carga de trabalho, por isso copie o mecanismo em vez de copiar cegamente um único número. O número de câmaras, a resolução e a quantidade de fotogramas descodificados afetam os requisitos de memória partilhada do Frigate.

Porque é que o Frigate vê 64 MB por predefinição

Os contentores Docker começam normalmente com um sistema de ficheiros de memória partilhada relativamente pequeno. O Frigate utiliza o /dev/shm para os fotogramas de vídeo descodificados em bruto, pelo que as cargas de trabalho com câmaras podem exceder o valor predefinido mesmo quando o anfitrião tem bastante RAM livre.

O aviso diz, portanto, respeito à alocação de memória partilhada do contentor, não simplesmente à memória total do sistema. Adicionar mais RAM física sem alterar a definição do contentor não aumenta automaticamente o /dev/shm do contentor.

shm_size não é uma variável de ambiente

Numa fase da resolução de problemas no fórum, tentou-se adicionar shm_size na secção das variáveis de ambiente. Outro participante observou corretamente que isso não configura a montagem de memória partilhada do Docker.

O Docker Compose define shm_size diretamente no serviço, juntamente com definições como a imagem, a política de reinício, os volumes e os dispositivos. A referência atual do Compose do Docker indica que este campo configura o tamanho do /dev/shm do contentor do serviço.

Referência do Docker Compose para shm_size é a fonte oficial da sintaxe.

Edite o YAML do serviço Frigate

O tópico utilizava um valor ao nível do serviço equivalente a aproximadamente 1 GB em bytes. Os analisadores atuais do Compose e os exemplos do Frigate também suportam tamanhos legíveis. Uma estrutura simplificada é semelhante a esta:

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

Mantenha o campo no mesmo nível de indentação das outras definições de execução do serviço. Se uma determinada versão do ZimaOS ou editor rejeitar uma unidade legível, a forma em bytes utilizada no tópico da comunidade é uma alternativa de compatibilidade; o ponto importante é que a definição pertence ao serviço do Compose, não a environment:.

Definições de aplicações personalizadas do ZimaOS utilizadas para aceder à configuração do Frigate Compose
A discussão original passou das definições normais da aplicação para a configuração Compose/YAML.
Caixa de diálogo Importar Docker Compose do ZimaOS apresentada durante a configuração da memória partilhada do Frigate
O fluxo de trabalho de abril de 2026 utilizava a importação do Compose; as versões mais recentes do ZimaOS disponibilizam uma edição YAML mais direta.

Escolha um valor adequado à sua carga de trabalho real com câmaras

A documentação atual do Frigate explica que a necessidade de memória partilhada depende das dimensões da imagem e dos fotogramas armazenados em memória intermédia. O ficheiro Compose de exemplo atual utiliza uma alocação superior à predefinida do Docker e fornece orientações para estimar os requisitos.

Não defina um valor arbitrariamente elevado sem motivo. Aumente-o o suficiente para eliminar o aviso durante a carga de trabalho real, reinicie ou recrie o contentor para que a definição de execução seja aplicada e, em seguida, confirme o tamanho efetivo a partir do interior do contentor em execução.

Orientações atuais de instalação do Frigate devem prevalecer sobre um valor fixo do tópico de 2026.

O fluxo de edição do ZimaOS depende da versão

A publicação original foi feita quando o utilizador estava numa versão beta do ZimaOS 1.6.0. Uma resposta da IceWhale também indicou que o comportamento da memória partilhada no anfitrião na versão 1.5.4 diferia do que o utilizador estava a observar, o que aumentou a confusão entre as definições do anfitrião e do contentor.

O ZimaOS 1.7.x atual disponibiliza edição YAML nativa e a versão 1.7.1 melhorou especificamente a compatibilidade ao guardar YAML. Utilize o editor de aplicações atual sempre que possível, mas mantenha a distinção do Docker: o contentor do Frigate continua a precisar do seu próprio valor de shm_size, independentemente da quantidade de memória partilhada indicada pelo anfitrião.