デフォルトのホストドッキングウィンドウコンテナは、私たちがすることができ、すべてのメモリとCPUを使用することができ 、実行をドッキングウィンドウ のメモリとCPUの使用を制限します。
いくつかのカーネルがサポートしていません 。Linuxの機能を することにより ドッカーの情報 カーネルがサポートされていない場合は、順序を確認するには、次のエラーを持っています
WARNING:いいえスワップ限度のサポート
カーネルが見つかった場合Linuxホスト上で、そこに十分なメモリではなく、OOMEまたはメモリ不足の例外を報告され、空きメモリへのプロセスを強制終了します、任意のプロセスは、システム全体を引き起こす可能性があり、ドッキングウィンドウを含め、殺す可能性が高いですダウンタイム。
ドッキングウィンドウはドッキングウィンドウデーモンOOM優先リスクを調整することで軽減しようと、システム上の他のプロセスよりも殺される可能性が高いです。
オプション | 説明 |
-m 若しくは --memory= |
容器は、単位は、B、K、M、Gであってもよいし、最小4メートルのためのメモリ、最大メモリを使用することができます |
--memory-swap * |
ハードディスクへの最大メモリは、容器のために使用することができます |
--memory-swappinessを | デフォルトでは、カーネルは、0がオフを表し、100に容器の外に0から設定割合匿名のページをスワップすることができます |
--memory-予約 | メモリ予約 |
--kernel-メモリ | コアメモリ制限。最低4M |
--oom-殺すディセーブル | コンテナを殺すためにOOMキラーをブロックするかどうかではなく、デフォルトの設定 |
--memory-swap
入門
ときにのみ--memory設定した後、 - メモリスワップを有効にします
場合1は、--memory-swap
正の整数に設定し、両方--memory
と --memory-swap
設定されなければなりません。--memory-swap
これは、メモリを使用することができることを示し、交換の合計量、及び--memory
非スイッチメモリ使用制御の数。したがって、場合--memory="300m"
、及び--memory-swap="1g"
、容器は、メモリ300メートルと700メートル(に使用されてもよい1g - 300m
)交換。
2、場合--memory-swap
設定0
、設定は無視され、値が設定されていないとして扱われます。
3、場合--memory-swap
と同じ値に設定し--memory
、そして--memory
正の整数に設定されないスワップ使用。
図4に示すように、場合に--memory-swap
設定されていないと--memory
されている--memory
ホストは、メモリコンテナを交換するように構成されている場合、設定、容器を2回使用することができる交換を設定します。たとえば、--memory="300m"
とが--memory-swap
設けられていない、容器は、メモリの300メートルと600メートルを交換するために使用することができます。
図5は、場合--memory-swap
、明示的に設定し-1
、それがホストシステムで使用可能な数まで、コンテナ交換の無制限の使用を可能にします。
コンテナの交換を妨げます
場合--memory
と--memory-swap
同じ値に設定し、コンテナの任意の交換を防止することができます。これは、ある--memory-swap
メモリを組み合わせて使用することができる交換量が、--memory
唯一の使用物理メモリの量を。
--memory-swappiness
ディテール
- 0の値は、匿名のページ交換をオフにします。
- すべての匿名ページ100の値は、交換します。
- デフォルトでは、設定されていない場合
--memory-swappiness
、その値は、ホストから継承されました。
--kernel-memory
ディテール
カーネルメモリ制限がコンテナに割り当てられたメモリの合計を表します。次のシナリオを検討してください。
- 無制限のメモリ、無制限のカーネルメモリ:これはデフォルトの動作です。
- 無制限のメモリ、カーネルメモリが限られているホスト上のすべての大きなメモリのcgroupに必要なメモリの量が実際に存在する場合には、それが適切です。あなたは、ホスト上で利用できる内容を上書きしないようにカーネルメモリを設定し、より多くのメモリコンテナはそれを待つ必要が必要とすることができます。
- 限られたメモリ、無制限のカーネルメモリ:メモリは全体的に限定されないが、カーネルメモリに限定されるものではありません。
- 限られたメモリ、限られたカーネルメモリ:ユーザーとカーネルメモリは、メモリに関連する問題をデバッグするのに非常に有用である制限されます。あなたは、任意のタイプのメモリのコンテナの予想外の番号を使用している場合、それは他のコンテナまたはホストに影響を与えることなく、メモリが不足します。カーネルメモリの制限はユーザメモリの上限を下回っている場合は、この設定では、カーネルメモリの不足が発生した容器OOMエラーにつながることができます。ユーザメモリの上限よりもカーネルメモリの上限が高い場合には、カーネルの制限は、容器に遭遇OOMにはなりません。
あなたは、各プロセスのいずれかのカーネルメモリの制限を開くと、あなたが余分なメモリを使用している(この場合はコンテナの)どのようなプロセスを追跡できるように、ホストトラック「ハイウォーターマーク」の統計に基づいて行われます。することにより/proc/<PID>/status
、ホスト上のビュー、あなたは各プロセスでそれを見ることができます。