KB4347055 – ÅTGÄRD: Slut på minnesfel när du kör SQL Server 2017 i en Linux Docker-container

Gäller för
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

Symptom

När du kör en instans av Microsoft SQL Server 2017 i en Docker-behållare för Linux kan du få ett felmeddelande om slut på minne.

Orsak

SQL Server på Linux använder som standard en mjuk gräns på 80% av det totala fysiska minnet när memory.memorylimitmb-konfigurationen inte är aktiverad. För Docker-containrar brukade SQL överväga 80 % av det totala värdminnet i stället för att begränsa sig till 80 % minne som allokerats till Docker-containern. Den här felaktiga minnesgränsen gör att SQL Server kan försöka använda mer minne än vad som är tillgängligt för behållaren och kan vara en kandidat för avslutning av OOM Killer.

Anteckning När du skapar Docker-avbildningen måste du ange –m för att begränsa Docker-minnet. Mer information finns i följande artikel.

Skapa Docker

Lösning

En korrigering för det här problemet ingår i följande uppdatering för SQL Server:

Kumulativ uppdatering 10 för SQL Server 2017

Anteckning Om memory.memorylimitmb konfigurationen inte har konfigurerats tillåter den här korrigeringen att SQL Server begränsar sig till en mjuk gräns på 80% av det allokerade minnet till containern.

Om SQL Server-versioner

Varje ny version för SQL Server innehåller alla snabbkorrigeringar och säkerhetskorrigeringar som fanns i den tidigare versionen. Vi rekommenderar att du installerar den senaste versionen för din version av SQL Server:

Den senaste versionen för SQL Server 2017

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Referenser

Läs om standardterminologin som Microsoft använder för att beskriva programuppdateringar.