第13章 Docker资源限制
1.Docker资源限制说明
https://docs.docker.com/config/containers/resource_constraints/
2.容器的内存限制
Docker限制内存相关参数:
-m 允许容器使用的最大内存,单位有k,m,g
--oom-kill-disable
下载压测工具镜像:
docker pull lorel/docker-stress-ng
压测工具参数说明:
#查看帮助说明
docker run --name mem_test -it --rm lorel/docker-stress-ng
#常用参数
-m N, --vm N 启动N个workers,默认一个256M内存
创建一个没有内存限制的容器:
#启动一个前台窗口任务
docker run --name mem_test -it lorel/docker-stress-ng --vm 2
#另开一个窗口查看
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
49493229356b c1 99.46% 514.2MiB / 1.934GiB 25.96% 1.1kB / 0B 0B / 0B 5
创建一个限制了内存大小的容器
#启动一个前台窗口任务
docker run --name mem_test --rm -m 300m -it lorel/docker-stress-ng --vm 2
#新开窗口查看
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
7d1a3b482a3a mem_test 98.75% 294.9MiB / 300MiB 98.30% 656B / 0B 0B / 0B 5
3.容器的CPU限制
官方文档:
https://docs.docker.com/config/containers/resource_constraints/
Docker限制CPU相关参数:
--cpus=<value>
查看宿主机CPU核数:
[root@docker-11 ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
压测工具命令:
#不限制容器的CPU使用,压测工具开启4个CPU
docker run --name cpu_test -it --rm lorel/docker-stress-ng --cpu 4
#新开窗口查看CPU占用情况
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
8701e7f14f6f cpu_test 402.31% 9.973MiB / 1.934GiB 0.50% 1.1kB / 0B 1.58MB / 0B 5
#限制容器只能使用1.5个CPU
docker run --cpus 1.5 --name cpu_test -it --rm lorel/docker-stress-ng --cpu 4
#查看容器运行状态
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
ae710912bb3e cpu_test 149.31% 14.9MiB / 1.934GiB 0.75% 656B / 0B 0B / 0B 5