CORREÇÃO: Erro de falta de memória ao executar o SQL Server 2017 em um recipiente de Linux Docker

Aplica-se a: SQL Server 2017 DeveloperSQL Server 2017 EnterpriseSQL Server 2017 Enterprise Core

Sintomas


Quando você executa uma instância do Microsoft SQL Server 2017 dentro de um recipiente de Docker do Linux, você pode receber uma mensagem de erro de falta de memória.

Causa


SQL Server no Linux por padrão usa um limite flexível de 80% da memória física total quando configuração memory.memorylimitmb não estiver ativada; Para contêineres Docker SQL usado para avaliar a 80% da memória total de host em vez de limitar-se a 80% a memória alocada para o recipiente docker. Esse limite de memória incorreta permite SQL Server para tentar consumir memória maior do que a que está disponível para o recipiente e poderia ser um candidato para demissão por OOM Killer.

Observação: Quando você criar a imagem de Docker, você precisa especificar – m para limitar a memória de Docker. Consulte o seguinte artigo para obter mais informações.

Criar Docker

Resolução


Uma correção para esse problema está incluída na atualização de procedimentos do SQL Server:

10 de atualização cumulativa para SQL Server 2017 

Observação Se a configuração memory.memorylimitmb não está configurada esta correção permite SQL Server limitar a mesmo um limite flexível de 80% da memória alocada para o recipiente.

Status


A Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplicável a".

Referências


Saiba mais sobre a terminologia padrão que Microsoft usa para descrever as atualizações de software.