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