現象

Linux Docker コンテナー内で Microsoft SQL Server 2017 のインスタンスを実行すると、メモリ不足のエラーメッセージが表示されることがあります。

原因

メモリが memorylimitmb 構成が有効になっていない場合、既定では、Linux の SQL Server は、合計物理メモリの80% のソフトリミットを使用します。Docker container の場合、SQL では、docker コンテナーに割り当てられている80% メモリに限定するのではなく、ホストメモリの合計の80% を考慮します。 この不適切なメモリ制限により、SQL Server は、container で利用可能なメモリを超えるメモリを消費することができ、OOM キラーによる終了の候補となる可能性があります。

注:Docker イメージを作成するときに、– m を指定する必要があります。これにより、Docker メモリが制限されます。 詳細については、次の記事を参照してください。

Docker の作成

解決方法

この問題の修正プログラムは、SQL Server の次の更新プログラムに含まれています。

SQL Server 2017 の累積更新プログラム10 

注意 Memory limitmb構成が構成されていない場合、この修正プログラムにより、SQL Server は、割り当てられたメモリの80% をコンテナーに制限することができます。

SQL Server ビルドについて

SQL Server 用の新しいビルドごとに、以前のビルドで使用されていたすべての修正プログラムとセキュリティの修正が含まれています。 使用しているバージョンの SQL Server 用の最新のビルドをインストールすることをお勧めします。

SQL Server 2017 の最新ビルド

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報

Microsoft がソフトウェアの更新について説明するために使用する標準的な 用語 について説明します。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。