vue使用于网站开发,网站开发版本号,小程序商城多少钱一年,网站的代码在哪里设置Docker通过Cgroup来控制容器使用的资源配额#xff0c;包括 CPU、内存、磁盘三大方面#xff0c;基本覆盖了常见的资源配颡和使用量控制。 Cgoup 是CotrolGroups 的缩写#xff0c;是Linux 内核提供的一种可以限制、记录、隔高进程组所使用的物理资源#xff08;如CPU、内存… Docker通过Cgroup来控制容器使用的资源配额包括 CPU、内存、磁盘三大方面基本覆盖了常见的资源配颡和使用量控制。 Cgoup 是CotrolGroups 的缩写是Linux 内核提供的一种可以限制、记录、隔高进程组所使用的物理资源如CPU、内存、磁盘 IO 等等)的机制被LXC、docker等很多项目用于实现进程资源控制。cgroup 本身是提供将进程进行分组化管理的功能和接口的基础结构IO或内存的分配控制等具体的资源管理是通过该功能来实现的。 目录
一、CPU资源限制
1.设置CPU使用率上限
2.设置CPU资源占用比设置多个容器才有效
3.设置容器与CPU绑核
二、内存资源限制
三、对磁盘I/O配额的限制 一、CPU资源限制
1.设置CPU使用率上限 Linux通过CFSCompletely Fair Scheduler完全公平调度器来调度各个进程对CPU的使用。CFS默认的调度周期是10ms。我们可以设置每个容器进程的调度周期以及在这个周期内各个容器最多能使用多少CPU 时间。 --cpu-period #设置调度周期数值范围是1000~1000000 --cpu-guota #设置在每个周期内容器能使用的CPU时间值必须1000 --cpu-periodCPU分配的周期微秒所以文件名中用us表示默认为100000。 --cpu-guota表示该cgroups限制占用的时间微秒默认为-1表示不限制。如果设为50000表示占用50000/10000050%的CPU。 创建时限制cpu然后随便执行一个死循环在另一个终端进入容器执行top命令查看发现cpu跑满只有30%了。 同时设置--cpu-period和--cpu-guota周期设为1000050%占用就设为5000 注 以上只是针对单核的设置在多核情况下如果 --cpu-period 保持默认的100000设置 --cpu-guota 100000则会使用多核如设置为200000就是限制为跑满两个cpu。 2.设置CPU资源占用比设置多个容器才有效 --cpu-shares #指定CPU份额默认值为1024值为1024的倍数多个容器的数值成比例就能精确保证占用CPU的份额 分别进入三个容器进行压测
#分别下载stress压测并使用
docker exec -it c1 bash
yum -y install epel-release
yum -y install stress
stress -c 4docker exec -it c2 bash
yum -y install epel-release
yum -y install stressstress -c 4
docker exec -it c3 bash
yum -y install epel-release
yum -y install stress
stress -c 4 但在有一个容器不工作时其他容器会有其一获得该容器的cpu份额所以一般配合quota使用 3.设置容器与CPU绑核 --cpuset-cpus #指定与哪个cpu绑定cpu编号从0开始多个可以用逗号隔开 二、内存资源限制 -m--memory #限制容器使用的最大内存 --memory-swap #限制可用的swap大小使用时必须先指定-m。 正常情况下--memory-swap 的值包含容器可用内存和可用swap。 所以-m 300m --memory-swap1g 的含义为容器可以使用300M的物理内存并且可以使用700M (1G - 300M的 swap。 --memory-swap 设置为0或者不设置则容器可以使用的 swap大小为-m 值的两倍。 --memory-swap 的值和 -m 值相同则容器不能使用 swap。 --memory-swap 值为-1它表示容器程序使用的内存受限而可以使用的 swap空间使用不受限制宿主机有多少swap容器就可以使用多少) 。 三、对磁盘I/O配额的限制 --device-read-bps #限制某个设备的读速度bps数据量单位可以是kb、mb (M)或gb --device-write-bps #限制某个设备的写速度bps数据量单位可以是kb、mb (M)或gb --device-read-iops #限制读某个设备的iops次数 --device-write-iops #限制写入某个设备的iops次数 补docker system prune -a 可以用于清理磁盘删除关闭的容器、无用的数据卷和网络