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:.
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.
