KB4347055 – КОРЕКЦИЯ: Грешка за недостиг на памет, когато стартирате SQL Server 2017 в контейнер на Linux Docker

Отнася се за
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

Симптоми

Когато стартирате екземпляр на Microsoft SQL Server 2017 в контейнер на Linux Docker, може да получите съобщение за грешка за недостиг на памет.

Причина

SQL Server на Linux по подразбиране използва меко ограничение от 80% от общата физическа памет, когато конфигурацията memory.memorylimitmb не е разрешена; За Docker контейнери SQL се използва 80% от общата памет на хоста, вместо да се ограничава до 80% памет, заделена за Docker контейнер. Това неправилно ограничение на паметта позволява на SQL Server да се опита да използва повече памет от тази, която е налична за контейнер и може да е кандидат за прекратяване от OOM Killer.

Забележка Когато създавате Docker образа, трябва да зададете –m, за да ограничите Docker паметта. Вижте следващата статия за повече информация.

Създаване на Docker

Решение

Корекция за този проблем е включена в следната актуализация за SQL Server:

Сборна актуализация 10 за SQL Server 2017

Забележка Ако конфигурацията memory.memorylimitmb не е конфигурирана, тази корекция позволява на SQL Server да се ограничи до меко ограничение от 80% от паметта, заделена за контейнера.

За компилациите на SQL Server

Всяка нова компилация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били в предишната компилация. Препоръчваме ви да инсталирате най-новата компилация за вашата версия на SQL Server:

Най-новата компилация за SQL Server 2017

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Справки

Научете повече за стандартната терминология , която Microsoft използва за описване на актуализациите на софтуера.