Symptomen
Wanneer u een exemplaar van Microsoft SQL Server 2017 uitvoert in een Linux Docker-container, wordt mogelijk een foutbericht over onvoldoende geheugen weergegeven.
Oorzaak
SQL Server on Linux gebruikt standaard een zachte limiet van 80% van het totale fysieke geheugen wanneer de memory.memorylimitmb-configuratie niet is ingeschakeld; Voor Docker-containers hield SQL rekening met 80% van het totale hostgeheugen in plaats van zich te beperken tot 80% geheugen dat was toegewezen aan de docker-container. Door deze onjuiste geheugenlimiet kan SQL Server meer geheugen verbruiken dan er beschikbaar is voor de container en kan dit een kandidaat zijn voor beëindiging door OOM Killer.
Notitie Wanneer u de Docker-installatiekopie maakt, moet u –m opgeven om het Docker-geheugen 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
Notitie Als de configuratie memory.memorylimitmb niet is geconfigureerd, zorgt deze oplossing ervoor dat SQL Server zichzelf kan beperken tot een zachte limiet van 80% van het toegewezen geheugen aan de container.
Over builds van SQL Server
Elke nieuwe build voor SQL Server bevat alle hotfixes en beveiligingspatches uit de vorige build. We raden u aan de nieuwste build voor uw versie van SQL Server te installeren:
De nieuwste build voor SQL Server 2017
Status
Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Meer informatie
Meer informatie over de standaardterminologie die Microsoft gebruikt om software-updates te beschrijven.