使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

在 Linux Docker 容器内运行 Microsoft SQL Server 2017 的实例时,可能会收到内存不足的错误消息。

原因

默认情况下,Linux 上的 SQL Server 在 memorylimitmb 配置未启用时对总物理内存使用了80% 的软限制;对于 Docker 容器 SQL,用于考虑总主机内存的80%,而不是将自身限制为分配给 Docker 容器的80% 内存。 这种不正确的内存限制允许 SQL Server 尝试消耗超过容器可用的内存,并且可能是 OOM Killer 终止的候选内存。

注意创建 Docker 图像时,你必须指定-m 以限制 Docker 内存。 有关详细信息,请参阅以下文章。

创建 Docker

解决方案

适用于此问题的修补程序包含在 SQL Server 的以下更新中:

SQL Server 2017 的累积更新10 

提示如果未配置 memorylimitmb 配置,则此修补程序允许 SQL Server 将其自身限制为分配给容器的内存80% 的软限制。

关于 SQL Server 内部版本

SQL Server 的每个新版本都包含上一版本中的所有修补程序和安全修补程序。 我们建议你为你的 SQL Server 版本安装最新版本:

SQL Server 2017 的最新版本

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

参考

了解 Microsoft 用于描述软件更新的标准 术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×