Symptomen
Wanneer u een exemplaar van Microsoft SQL Server 2017 in een Linux-docker-container uitvoert, ziet u mogelijk een foutbericht dat onvoldoende geheugen beschikbaar is.
Oorzaak
SQL Server voor Linux gebruikt standaard een zachte limiet van 80% van totale hoeveelheid fysiek geheugen wanneer geheugen. memorylimitmb configuratie niet is ingeschakeld. Voor docker containers SQL wordt aangewend 80% van totale host geheugen te overwegen in plaats van de hoeveelheid geheugen te beperken tot 80% geheugen toegewezen aan de docker-container. Met deze onjuiste geheugenlimiet kan SQL Server proberen geheugen meer te verbruiken dan dat beschikbaar is voor container en kan een kandidaat worden beëindigd door OOM-Killer.
Opmerking Wanneer u de dockingoplossingen maakt, moet u een van de opties opgeven die u nodig hebt om het geheugen van de Dokweergave te beperken. Zie het volgende artikel voor meer informatie.
Oplossing
Een oplossing voor dit probleem is opgenomen in de volgende update voor SQL Server:
Cumulatieve update 10 voor SQL Server 2017
Opmerking Als geheugen. memorylimitmb configuratie niet is geconfigureerd, kan SQL Server zichzelf beperken tegen een zachte limiet van 80% van toegewezen geheugen aan de container.
Info over SQL Server-versies
Elke nieuwe build voor SQL Server bevat alle hotfixes en beveiligingsfixes van de eerdere build. U wordt aangeraden de nieuwste versie van SQL Server te installeren:
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Verwijzingen
Meer informatie over de standaard terminologie van Microsoft waarmee software-updates worden beschreven.