Docker资源限制
CGroups:把服务器上的资源以指定的方式进行对docker分配
cpu:可压缩型资源,即一个容器占用全部cpu资源3分钟,另一个容器不会因得不到cpu而崩溃
内存: 不可压缩资源,如果进程全部运行,需要3G资源,但只给1G资源,就会报OOM
限制内存
-m or --memory 设置这个容器最大使用多大内存
--memory-swap 当前容器允许被使用的交换分区大小
--memory-swappiness 设置使用交换分区的倾向性。在0到100之间,值越大越倾向使用
--memory-reservation 给系统保留多大空间
--kernel-memory 给内核保留多大空间
--oom-kill-disable 如果容器发生OOM,不要kill掉
限制cpu
--cpu-shares 基于权重设置cpu,一般权重为2的倍数。共享cpu资源,假设有A和B两个容器,如果A和B都要使用cpu,基于权重比值来做。如果A不使用cpu,只有B用。B可以占据全部cpu资源
--cpus=<value> 整个系统上你一共可以占据多少个cpu,假设cpu一共有8个核心。这设置2核,程序可以跑8个核心,但最多使用2个核心
cpu核心 1c=1000mc
--cpuset-cpus 指定容器跑在哪个核上,cpu绑定
系统资源的压测镜像
docker-stress-ng
docker run --name stress -it --rm lorel/docker-stress-ng --help 查看帮助
-c 启动几个进程做cpu压测
-m ,--vm 启动几个进程,对内存做压测
压测cpu
docker run --name stress --cpus 2 --rm lorel/docker-stress-ng -c 4
docker stas 查看容器占用资源的情况
docker top stress 查看容器内进程的占用资源的情况
docker run --name stress --cpus 2 --cpuset-cpus 0,2 --rm lorel/docker-stress-ng -c 4
# 压测内存
docker run --name stress -m 512m --rm lorel/docker-stress-ng -vm 2
网友评论