Restringir uso de gravação de E / S usando cgroups

3

Estou tentando restringir o uso de gravação de E / S no meu servidor usando cgroups.

Estas são as informações da minha tabela de partições:

major minor  #blocks  name    
   8        0   10485760 sda
   8        1    9437184 sda1
   8        2    1047552 sda2

Aqui está a minha estrutura do sistema de arquivos:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       8.9G  8.4G   37M 100% /
none           1004M     0 1004M   0% /dev/shm

Aqui está a configuração do meu cgroups:

mount { 
    blkio = /cgroup/blkio;      
}

group test2 {
    blkio {
        blkio.throttle.write_iops_device="";
        blkio.throttle.read_iops_device="8:0 10485760";
        blkio.throttle.write_bps_device="";
        blkio.throttle.read_bps_device="8:0 10485760";
        blkio.weight="";
        blkio.weight_device="";
    }
}

Quando executo o seguinte comando de leitura, ele restringe a operação de leitura para usar somente 10 B / s

dd if=file_1 of=/dev/zero

Quando eu executo o seguinte comando Write, ele não está restringindo conforme a configuração

dd of=file_1 if=/dev/zero

O que estou perdendo?

    
por Divij Satra 10.03.2015 / 12:28

1 resposta

1

Você provavelmente já resolveu tudo, mas de acordo com esta postagem do blog , é necessário informar dd a abra o arquivo de saída com o sinalizador O_DIRECT, caso contrário o cache entra em ação e sua configuração do cgroup se torna inútil:

dd of=file_1 if=/dev/zero oflag=direct
    
por 09.10.2018 / 17:26