徵狀
當您在 Linux Docker 容器內執行 Microsoft SQL Server 2017 的實例時,您可能會收到記憶體不足的錯誤訊息。
原因
Linux 上的 SQL Server 根據預設,在未啟用 memorylimitmb 設定的情況下,使用了總實體記憶體的80% 的軟限制;對於 Docker 容器 SQL,是用來考慮總主機記憶體的80%,而不是將本身限制為已分配給 Docker 容器的80% 記憶體。 此不正確的記憶體限制可讓 SQL Server 嘗試消耗超過容器所能使用的記憶體,而且可由 OOM Killer 來供終止使用。
注意當您建立 Docker 影像時,您必須指定– m 來限制 Docker 記憶體。 如需詳細資訊,請參閱下列文章。
解決方案
下列 SQL Server 更新包含此問題的修正程式:
注如果未設定 memorylimitmb 設定,則此修正程式會允許 SQL Server 將其本身限制為已分配記憶體的80% 的軟限制至容器。
關於 SQL Server 組建
每個新組建的 SQL Server 都包含先前組建中的所有修復程式和安全性修正程式。 我們建議您安裝適用于您的 SQL Server 版本的最新組建:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
參考
瞭解 Microsoft 用於描述軟體更新的標準 術語 。