現象
Linux Docker コンテナー内で Microsoft SQL Server 2017 のインスタンスを実行すると、メモリ不足のエラーメッセージが表示されることがあります。
原因
メモリが memorylimitmb 構成が有効になっていない場合、既定では、Linux の SQL Server は、合計物理メモリの80% のソフトリミットを使用します。Docker container の場合、SQL では、docker コンテナーに割り当てられている80% メモリに限定するのではなく、ホストメモリの合計の80% を考慮します。 この不適切なメモリ制限により、SQL Server は、container で利用可能なメモリを超えるメモリを消費することができ、OOM キラーによる終了の候補となる可能性があります。
注:Docker イメージを作成するときに、– m を指定する必要があります。これにより、Docker メモリが制限されます。 詳細については、次の記事を参照してください。
解決方法
この問題の修正プログラムは、SQL Server の次の更新プログラムに含まれています。
注意 Memory limitmb構成が構成されていない場合、この修正プログラムにより、SQL Server は、割り当てられたメモリの80% をコンテナーに制限することができます。
SQL Server ビルドについて
SQL Server 用の新しいビルドごとに、以前のビルドで使用されていたすべての修正プログラムとセキュリティの修正が含まれています。 使用しているバージョンの SQL Server 用の最新のビルドをインストールすることをお勧めします。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
Microsoft がソフトウェアの更新について説明するために使用する標準的な 用語 について説明します。