Início
» Como fazer
»
Aumente o limite de memória do contêiner CODE sem precisar adivinhar.
Aumente o limite de memória do contêiner CODE sem precisar adivinhar.
Para conceder mais memória a um contêiner do Collabora Online CODE, aumente o limite do Docker na configuração que o criou, recrie o contêiner e confirme o limite efetivo com docker inspect` docker statsdocker-compose up` ou `docker-compose up`. Aumentar uma configuração do aplicativo não aumenta o limite do contêiner do Docker, e o host ou a máquina virtual do Docker Desktop deve ter memória suficiente disponível para respeitar um limite maior.
Exemplo hipotético utilizado ao longo do texto: Riley administra uma implantação do Docker Compose em um único host. Suponha docker statsque o limite de memória exibido seja de 2 GiB e que o uso esteja próximo desse limite enquanto vários documentos estão abertos. Riley está considerando um limite de 4 GiB. Esses números são apenas exemplos e não constituem uma recomendação de dimensionamento do Collabora, uma afirmação de desempenho ou um resultado comprovado; seu limite deve ser determinado pela carga observada e pela capacidade do host.
1. Confirme se o recipiente está realmente atingindo a tampa.
Execute esses comandos no host Docker, substituindo ` collabora<nome_do_container>` pelo nome real do container:
docker statsMostra o uso atual e o limite do contêiner. A saída do comando `inspect` reporta o limite de memória configurado em bytes e se o Docker registrou o contêiner como encerrado 0por falta de memória (OOM-killed). Um valor de `inspect` significa que o Docker não tem um limite rígido explícito para esse contêiner; não significa que a máquina tenha RAM ilimitada. Uma leitura alta por si só não comprova um evento de falta de memória, portanto, compare-a com o histórico de reinicializações, logs e o horário em que os usuários observaram as falhas.
Exemplo hipotético de diagnóstico: o contêiner CODE está se aproximando do seu limite configurado de 2 GiB.
Antes de aumentar o limite, verifique quanta RAM resta para o sistema operacional e outros serviços. As diretrizes de recursos do Docker recomendam testar a demanda do aplicativo e executar contêineres em hosts com recursos adequados. No Docker Desktop, verifique também Configurações > Recursos : a memória alocada para a VM do Docker é um limite separado, compartilhado por seus contêineres. Aumentar o limite do CODE além dessa alocação não criará mais memória física; consulte as configurações de recursos do Docker Desktop .
2. Alterar o limite do serviço Compose
Edite o serviço CODE existente no seu arquivo Compose. Mantenha a tag de imagem, portas, ambiente, volumes, redes e política de reinicialização atuais; adicione ou atualize apenas a configuração de memória. Para o exemplo hipotético de 4 GiB do Riley:
Exemplo de composição: defina o limite de memória em nível de serviço, mantendo a tag de imagem CODE implantada.
Este exemplo usa a imagem Docker oficial CODE da Collabora ; mantenha a tag já usada pela sua implantação. mem_limité um limite máximo rígido, não uma reserva: o Docker pode permitir que o contêiner use até essa quantidade, mas a configuração não reserva essa quantidade de RAM no host. A referência do serviço Docker Compose define mem_limite afirma que deve concordar com deploy.resources.limits.memoryse ambos estiverem presentes. Se sua implantação usa um orquestrador ou um arquivo Compose gerenciado pela plataforma, use o campo de recurso compatível com essa plataforma e mantenha os valores de limite duplicados consistentes.
Se você iniciou o CODE diretamente com `docker run` docker run, recrie-o a partir do comando original com `docker run` --memory=4ge mantenha todas as suas opções atuais. Para uma alteração rápida em tempo de execução em um contêiner Linux existente, o Docker também oferece suporte a `docker docker update --memory 4g <container_name>run`. Considere o arquivo Compose ou o comando de execução original como a fonte da verdade, para que uma substituição posterior não restaure as configurações antigas. Consulte a referência de atualização de contêineres do Docker .
3. Recrie o CÓDIGO para que o limite salvo entre em vigor.
A partir do diretório que contém o arquivo Compose ativo, valide a configuração mesclada e, em seguida, recrie apenas o serviço CODE:
docker compose config
docker compose up -d --no-deps --force-recreate collabora
Use a chave de serviço do seu arquivo em vez de collabora. Revise a configuração renderizada para o novo limite antes de aplicá-lo. Recriar o CODE interrompe brevemente as sessões de edição que dependem desse contêiner; portanto, agende a alteração para um momento em que uma breve interrupção do serviço seja aceitável. Não remova volumes nem execute docker compose down -v; essas operações são desnecessárias para uma alteração de limite de memória e podem excluir dados persistentes pertencentes a outros serviços.
Aplique a configuração Compose editada e recrie apenas o serviço CODE.
4. Verifique a nova tampa e o comportamento sob carga.
Após o retorno do serviço, verifique o contêiner real — não apenas o arquivo YAML:
Para o valor de exemplo 4g, a saída da inspeção deve representar cerca de 4 GiB em bytes e docker statsdeve mostrar um limite próximo a 4 GiB. A imagem abaixo usa a saída de exemplo apenas para fins ilustrativos. Em seguida, observe o CÓDIGO ao abrir os tipos de documento e o número aproximado de sessões simultâneas relevantes para sua implantação. Confirme se o contêiner permanece em execução, se os erros visíveis ao usuário param e se o host mantém memória para seus outros processos.
Padrão de verificação esperado para a configuração fictícia de 4 GiB; esses valores exibidos são uma saída de exemplo, não uma implementação medida.
Se o problema persistir
Se o novo limite estiver presente, mas o CODE ainda reiniciar, verifique docker inspecto estado docker logse os eventos do kernel do host ou do Docker em busca de registros de falta de memória. Se o contêiner permanecer íntegro, mas o processamento de documentos ainda acionar a limpeza, o Docker pode não ser o gargalo ativo. A própria coolwsdconfiguração do Collabora possui um comportamento de gerenciamento de memória independente do limite do cgroup do Docker; o modelo de configuração do projeto documenta seus controles do lado do servidor. Verifique a configuração da sua versão do CODE instalada antes de alterá-la.
Não resolva a incerteza configurando o contêiner com memória ilimitada ou desativando o mecanismo de eliminação de processos por falta de memória. O Docker alerta que um contêiner com memória ilimitada pode contribuir para o esgotamento da memória do host e afetar serviços não relacionados. Se o host não tiver margem de segurança, a solução real é adicionar capacidade ao host ou à máquina virtual do Docker, reduzir a carga de trabalho simultânea ou distribuir o trabalho — e não aumentar o limite além da RAM disponível.