cgroups: blkio.weight não parece ter o efeito esperado

3

Eu tenho dois contêineres LXC com essas configurações de cgroup:

lxc.cgroup.blkio.weight = 200
lxc.cgroup.cpu.shares = 200

and

lxc.cgroup.blkio.weight = 800
lxc.cgroup.cpu.shares = 800

Eu verifiquei em /sys/fs/cgroup/blkio/lxc/test1-lxccontainer/blkio.weight está realmente definido como 200 no sistema operacional host.

Eu verifiquei que cpu.shares são divididos em 80% para o contêiner 1 e 20% para o contêiner 2.

Mas quando eu executo este comando em ambos os containers:

# write a 10GB file to disk
dd bs=1M count=10000 if=/dev/zero of=1test conv=fdatasync

Eu fiz um teste semelhante em leituras:

davidparks21@test-cgroups1:/tmp$ time sh -c "dd if=1test of=/dev/null bs=1M"
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 37.9176 s, 277 MB/s

real    0m37.939s
user    0m0.004s
sys     0m24.306s

As velocidades de E / S ver em iotop no sistema operacional host são praticamente as mesmas entre os dois contêineres.

Eu esperava ver o comando do contêiner 2 80% do acesso do IO nesse caso.

    
por David Parks 27.03.2013 / 10:50

2 respostas

4

O problema aqui é que você precisa usar o planejador justo, eu estava usando o planejador errado e tinha interpretado mal uma configuração (pensei que eu estava usando o planejador justo, mas realmente não estava). A troca para o agendador de IO correto corrigiu o problema.

Para alterar o agendador de IO (retirado de aqui ):

echo cfq > /sys/block/{DEVICE-NAME}/queue/scheduler
    
por 24.08.2013 / 04:02
0

Pode ser um problema de comando do dd com o cache do seu sistema, você tentou esvaziar seu cache primeiro:

echo 3 > /proc/sys/vm/drop_caches

E iniciando o comando dd com a opção "nocache"?

    
por 23.08.2013 / 15:02