1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 服务器如何修改内存大小 如何限制docker容器的内存大小

服务器如何修改内存大小 如何限制docker容器的内存大小

时间:2024-05-13 23:22:03

相关推荐

服务器如何修改内存大小 如何限制docker容器的内存大小

如何限制

限制容器不能过多的使用主机内存是非常重要的。对于 linux 主机来说,一旦内核检测到没有足够的内存可以分配,就会扔出 OOME(Out Of Memmory Exception),并开始杀死一些进程用于释放内存空间。

内存限额

与操作系统类似,容器可使用的内存包括两部分:物理内存和 swap。 Docker 通过下面两组参数来控制容器内存的使用量。

-m 或 –memory:设置内存的使用限额,例如 100M, 2G。

–memory-swap:设置 内存+swap 的使用限额。

当我们执行如下命令:

docker run -m 200M --memory-swap=300M ubuntu

其含义是允许该容器最多使用 200M 的内存和 100M 的 swap。默认情况下,上面两组参数为 -1,即对容器内存和 swap 的使用没有限制。

下面我们使用 progrium/stress 镜像来为容器分配内存。该镜像可用于对容器执行压力测试。执行如下命令:

docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M

–vm 1:启动 1 个内存工作线程。

–vm-bytes 280M:每个线程分配 280M 内存。

因为 280M 在可分配的范围(300M)内,所以工作线程能够正常工作,如果让工作线程分配的内存超过 300M,分配的内存超过限额,stress 线程报错,容器退出。

如果在启动容器时只指定 -m 而不指定 –memory-swap,那么 –memory-swap 默认为 -m 的两倍,比如:

docker run -it -m 200M ubuntu

容器最多使用 200M 物理内存和 200M swap。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。