国外网站大全帝国cms模板,台山网站建设公司,个人博客网站下载,友情链接推广平台Docker指定容器使用内存
作者#xff1a;铁乐与猫
如果是还没有生成的容器#xff0c;你可以从指定镜像生成容器时特意加上 run -m 256m 或 --memory-swap512m来限制。
-m操作指定的是物理内存#xff0c;还有虚拟交换分区默认也会生成同样的大小#xff0c;而–memory-…Docker指定容器使用内存
作者铁乐与猫
如果是还没有生成的容器你可以从指定镜像生成容器时特意加上 run -m 256m 或 --memory-swap512m来限制。
-m操作指定的是物理内存还有虚拟交换分区默认也会生成同样的大小而–memory-swap的值则等于两者的总和大小。
如果是已在运行中的容器可以通过docker update命令来实现 docker update --help可查看到用法如上图所见。
-m --memory 为设置内存最大值默认单位为byte可以使用K、G、M等带单位的字符串。
–memory-reservation 是弹性控制内存大小防止损失性能建议要开。当宿主机资源充足时允许容器尽量多地使用内存当检测到内存竞争或者低内存时强制将容器的内存降低到memory-reservation所指定的内存大小。按照官方说法不设置此选项时有可能出现某些容器长时间占用大量内存导致性能上的损失。
–-memory-swap等于内存和swap分区大小的总和设置为-1时表示swap分区的大小是无限的。默认单位为byte可以使用K、G、M等带单位的字符串。如果–memory-swap的设置值小于–-memory的值则使用默认值为–-memory-swap值的两倍。
默认情况下容器可以使用主机上的所有空闲内存。
docker会自动为容器在目录/sys/fs/cgroup/memory/docker/容器的完整长ID中创建相应cgroup配置文件所以在宿主机内查看容器使用的内存配额可以通过查看相应的配置文件得知 好比如上图
在cgroups的配置文件中查看到容器的内存大小为256MB (256×1024×1024268435456B)内存和swap加起来大小为512MB(512x1024x1024536870912)。
注我实际查看线上的容器时没有限制内存和swap的大小后来自行敲了docker update --memory-swap512 容器ID 的命令重新再看才变成512MB了。
例
coretielemao /data/mysql_wp_db/mysql $ docker update -m 256m d17d6d17d6coretielemao /data/mysql_wp_db/mysql $ docker update --memory-swap 512m d17d6d17d6coretielemao /data/mysql_wp_db/mysql $ docker stats d17d6CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDSd17d6 0.04% 252.6 MiB / 256 MiB 98.65% 668.7 kB / 13.53 MB 43.38 MB / 14.91 MB 30docker stats 容器ID 可查看容器实际使用中的资源配额以上例子中的容器是做mysql用的可见挺耗内存的。而wordpress博客的容器使用中的内存才122MB左右。256M也足够了。
现在怀疑之前容器隔一周两周就自动退出也是因为没做限制倒致宿主机oom将其kill。
目前free -h观测宿主机没有不停增长使用的内存了估计就是这个原因所致。如果真是这个原因那至少还能将CoreOS和docker继续用下去wordpress博客用途。