docker記憶體限制

2021-09-22 12:57:13 字數 838 閱讀 8212

部落格:

-m 和 --memory-swap

docker run -it --rm -m 100m --memory-swap -1 ubuntu-stress:latest /bin/bash
指定限制記憶體大小並且設定 memory-swap 值為 -1,表示容器程式使用記憶體受限,而 swap 空間使用不受限制(宿主 swap 支援使用多少則容器即可使用多少。如果 --memory-swap 設定小於 --memory則設定不生效,使用預設設定)。

ocker run -it --rm -m 100m --memory-swap -1 centos /bin/bash
按照官方文件的理解,如果指定 -m 記憶體限制時不新增 --memory-swap 選項,則表示容器中程式可以使用 100m 記憶體和 100m swap 記憶體。預設情況下,–memory-swap 會被設定成 memory 的 2倍。

–memory-reservation

選項可以理解為記憶體的軟限制。如果不設定 -m 選項,那麼容器使用記憶體可以理解為是不受限的。按照官方的說法,memory reservation 設定可以確保容器不會長時間占用大量記憶體。

–oom-kill-disable

–kernel-memory

核心記憶體與使用者記憶體根本不同,因為核心記憶體無法換出。無法交換使容器可能通過占用過多的核心記憶體來阻止系統服務。核心記憶體包括:

如果無特殊需求,kernel-memory 一般無需設定,這裡不作過多說明。

docker記憶體限制

預設docker容器可以使用宿主機所有的記憶體和cpu,我們可以通過 docker run 來限制記憶體和cpu的使用。有的系統核心不支援 linux capabilities.可以通過 docker info 命令來檢查,如果系統核心不支援,會有如下報錯 warning no swap limit...

Docker容器記憶體限制

1.使用docker自帶的 m操作進行記憶體限制時可能會由於核心限制所以出現以下提示 your kernel does not support swap limit capabilities.memory limit without swap必須通過修改grub檔案 etc default grub...

Docker 限制容器可用的記憶體

預設情況下容器使用的資源是不受限制的。也就是可以使用主機核心排程器所允許的最大資源。但是在容器的使用過程中,經常需要對容器可以使用的主機資源進行限制,本文介紹如何限制容器可以使用的主機記憶體。限制容器不能過多的使用主機的記憶體是非常重要的。對於 linux 主機來說,一旦核心檢測到沒有足夠的記憶體可...