KB4347055 - FIX: Error de memoria insuficiente al ejecutar SQL Server 2017 en un contenedor de Docker Linux

Se aplica a
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

Síntomas

Al ejecutar una instancia de Microsoft SQL Server 2017 dentro de un contenedor de Docker de Linux, es posible que reciba un mensaje de error de memoria insuficiente.

Causa

SQL Server en Linux utiliza, de manera predeterminada, un límite flexible del 80% de la memoria física total cuando la configuración memory.memorylimitmb no está habilitada; Para los contenedores Docker, SQL solía considerar el 80 % de la memoria total del host en lugar de limitarse al 80 % de la memoria asignada al contenedor de Docker. Este límite de memoria incorrecto permite que SQL Server intente consumir más memoria de la disponible para el contenedor y podría ser un candidato para la terminación por parte de OOM Killer.

Nota Cuando crea la imagen de Docker, debe especificar –m para limitar la memoria de Docker. Consulte el siguiente artículo para obtener más información.

Crear Docker

Resolución

Se incluye una corrección para este problema en la siguiente actualización para SQL Server:

Actualización acumulativa 10 para SQL Server 2017

Nota Si la configuración memory.memorylimitmb no está configurada, esta corrección permite a SQL Server limitarse a un límite flexible del 80% de la memoria asignada al contenedor.

Acerca de las compilaciones de SQL Server

Cada compilación nueva para SQL Server contiene todas las revisiones y correcciones de seguridad de la compilación anterior. Se recomienda instalar la compilación más reciente para su versión de SQL Server:

Compilación más reciente para SQL Server 2017

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Referencias

Obtenga información sobre la terminología estándar que usa Microsoft para describir las actualizaciones de software.