janela de encaixe - controle de recursos

janela de encaixe - controle de recursos

Visão geral

Como um host coloca vários contêineres, por padrão, a janela de encaixe não limita os recursos de hardware da imagem do contêiner.Quando a carga do contêiner for muito alta, ele ocupará os recursos do host, portanto, é necessário definir um limite superior nos recursos do contêiner. Recursos de rede, CPU, E / S, memória são usados ​​para limitar.

1. Controle de recursos de rede

Ao instalar o Docker, ele criará automaticamente três redes: ponte (o contêiner está conectado a essa rede por padrão); nenhuma, host.

host (somente modo host): o contêiner não virtualiza sua própria placa de rede, configura seu próprio IP etc., mas usa o IP e a porta da máquina host.

Vantagem: O desempenho da rede é melhor, mas o isolamento da rede não é bom

Contêiner (modo de contêiner): o contêiner criado não criará sua própria placa de rede, configurará seu próprio IP, mas compartilhará o intervalo de IP e porta com um contêiner especificado

Nenhum: esse modo desativa a função de rede do contêiner.

Bridge (Modo Bridge): Este modo atribui cada contêiner, define o IP, etc., e conecta o contêiner a uma ponte virtual docker 0 e se comunica com o host por meio da configuração da ponte docker 0 e da tabela IPtable.

Comandos de gerenciamento de recursos de rede

[1] Ver modo de rede

docker network ls

janela de encaixe - controle de recursos

[2] Use o modo de ponte para criar

docker run -itd --name test1 --network bridge --ip 127.17.0.10 centos:7 /bin/bash

//会发现使用bridge无法支持指定IP
// 可以生成镜像和容器 但是无法开启容器
// 如果不加 --ip IP地址 是可以生成容器和镜像的 容器是启动状态
//进容器 发现没有IP地址 可以先装一个 yum install net-tools -y,在查询IP地址 就是发现有一个

janela de encaixe - controle de recursos

janela de encaixe - controle de recursos

janela de encaixe - controle de recursos

janela de encaixe - controle de recursos

[3] IP de rede personalizado

rede docker create --subnet = segmento de rede / 24 nome

docker network create --subnet=172.18.0.0/16 mynetwork
//最后的mynetwork可以按个人喜欢命名

janela de encaixe - controle de recursos

给容器test3固定mynetwork的网段IP地址
docker run -itd --name test3 --net mynetwork --ip 172.18.0.10 centos:7 /bin/bash

janela de encaixe - controle de recursos

janela de encaixe - controle de recursos

2. uso da CPU

cd / sys / fs / cgroup / cpu / docker / Você pode ver as informações de todos os contêineres.

janela de encaixe - controle de recursos

[1] Limite o uso da CPU a mais de 20%

O número de processos da CPU é 100000, então 20% da CPU é 20000

cpu-quota: especifique a porcentagem do limite superior de uso da CPU

docker run -itd --name test1 --cpu-quota 20000 centos:7 /bin/bash
-i:表示输入   -t:表示绑定终端
或者
echo 20000 > /sys/fs/cgroup/cpu/docker/容器ID号/cpu.cfs_quota_us

[2] Alocar CPU na proporção

compartilhamentos de
CPU : os recursos da CPU fornecem um grupo de contêineres para uso, os contêineres do grupo usam os recursos da CPU proporcionalmente, os recursos da CPU são ocupados por contêineres carregados por carga (distribuídos de acordo com a taxa de compactação). Outros recipientes

Crie dois contêineres como c1 e c2.Se houver apenas dois contêineres, defina o peso do contêiner para que os recursos da CPU de c1 e c2 representem 33,3% e 66,7%

docker run -itd --name c1 --cpu-shares 512 centos:7
docker run -itd --name c2 --cpu-shares 1024 centos:7

Verificação: insira o contêiner separadamente e instale dois softwares

yum install epel-release -y
yum install stress -y
stress -c 4  //产生四个CPU线程

Verifique a porcentagem de CPU em outra página do terminal, você pode ver que a CPU de c2 é duas vezes a de c1

docker stats 
//可以看到容器的百分比

[3] Restrinja o contêiner para usar a CPU especificada

cpuset-cpus: especifica que o contêiner pode ser executado apenas nesse núcleo da CPU (CPU vinculada); o núcleo usa 0, 1, 2, 3 números

docker run -itd --name test2 --cpuset-cpus 1,3 centos:7 /bin/bash

//进容器,安装软件
yum install epel-release -y
yum install stress -y
stress -c 4  //产生四个CPU线程

//验证方法:
//开启另一个终端输入:top 按 1 检查

[4] Restrições de uso de memória

docker run -itd --name test3 -m 512m centos:7

验证:
另一个终端查看容器状态 docker stats

[5] Otimização de leitura e gravação de E / S de disco

--device-read-bps:限制读某个设备的bps(数据量) 
列:docker run -d --device-read-bps /dev/sda:30M centos:7

--device-write-bps:限制写入某个设备的bos(数据量)
列:docker run -d --device-write-bps /dev/sda:30M centos:7

--device-read-iops:限制读某个设备的iops(次数)

--device-write-iops:限制写入某个设备的iops(次数)

Acho que você gosta

Origin blog.51cto.com/14557584/2489176
Recomendado
Clasificación