Проблема
При запуске экземпляра Microsoft SQL Server 2017 в контейнере Docker Linux может появиться сообщение об ошибке нехватки памяти.
Причина
SQL Server на Linux по умолчанию использует мягкое ограничение в 80% от общего объема физической памяти, если конфигурация memory.memorylimitmb не включена; Для контейнеров Docker раньше SQL рассматривал 80% общей памяти хоста вместо того, чтобы ограничиваться 80% памяти, выделенной для контейнера Docker. Это неправильное ограничение памяти позволяет SQL Server пытаться использовать больше памяти, чем доступно для контейнера, и может быть кандидатом на завершение OOM Killer.
Примечание При создании Docker-образа необходимо указать –m, чтобы ограничить объем памяти Docker. Дополнительные сведения см. в следующей статье.
Решение
Исправление этой проблемы включено в следующее обновление для SQL Server:
Накопительный пакет обновления 10 для SQL Server 2017
Примечание Если конфигурация memory.memorylimitmb не настроена, это исправление позволяет SQL Server ограничить себя мягким ограничением в 80 % памяти, выделенной контейнеру.
Сведения о сборках SQL Server
Каждая новая сборка для SQL Server содержит все исправления и исправления безопасности, которые были в предыдущей сборке. Рекомендуется установить последнюю сборку для вашей версии SQL Server.
Последняя сборка SQL Server 2017
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Узнайте о стандартной терминологии , используемой корпорацией Майкрософт для описания обновлений программного обеспечения.