dockerメモリ制限

1342 ワード

作者:【呉業亮】
ブログ:https://wuyeliang.blog.csdn.net/
-m和--memory-swap
docker run -it --rm -m 100M --memory-swap -1 ubuntu-stress:latest /bin/bash
メモリサイズを制限し、かつメモリサイズを設定することを指定して-1とし、容器プログラムのメモリ使用制限を表します.swap空間の使用は制限されません.(宿主swapはどれぐらい使用すれば容器が使えますか?もし--memory-swap設定が--memoryより小さいなら、設定は無効です.標準設定を使用します.).
ocker run -it --rm -m 100M --memory-swap -1 centos /bin/bash
公式文書の理解によると、指定-mメモリ制限時には--memory-swapオプションを追加しないと、コンテナ中のプログラムは100 Mメモリと100 M swapメモリを使用できるということです.デフォルトでは、–memory-swapはmemoryの2倍に設定されます.
–memory-swappiness=0
使用禁止容器swap機能を表しています(これは宿泊ホストと違って、宿泊ホストswappinessは0に設定してもswapは使用されないと保証していません):
docker run -it --rm -m 100M --memory-swappiness=0 ubuntu-stress:latest /bin/bash
–memory-reervation
オプションはメモリのソフトリミットとして理解できます.-mオプションが設定されていない場合、容器使用メモリは制限されていないと理解できる.公式の話によると、memory reervationの設定は容器が長く大量のメモリを使わないようにすることができます.
–oom-kill-disable
docker run -it --rm -m 100M --memory-swappiness=0 --oom-kill-disable ubuntu-stress:latest /bin/bash
–ケネル-memory
カーネルメモリはユーザーメモリとまったく違っています.カーネルメモリが交換できないからです.交換できませんでした.あまりにも多くのカーネルメモリを使ってシステムサービスをブロックすることができます.カーネルメモリには:
  • stack pages
  • slab pages
  • sockets memory pressure
  • tcp memory pressure
  • 特別な需要がないなら、ケネル-memoryは普通は設定する必要がなくて、ここは多すぎる説明を行いません.