Como limitar / monitorar o blkio de um processo cgroup quando o processo tem redirecionamento de saída

1

Eu tenho algumas perguntas sobre o controlador cgroup blkio.
Eu quero limitar o IOPS em um processo específico. Esse processo usa o redirecionamento de IO para gravar o conteúdo do stdout em um arquivo. Eu tentei colocar o processo em um cgroup. No entanto, parece que o cgroup não detectou as operações de IO no processo, portanto, não conseguiu limitar a IOPS.

Eu fiz um pequeno experimento para simular o processo. Aqui está o que eu fiz:

cgexec -g blkio:/dummy_group --sticky dd bs=1 if=/dev/zero of=/dev/stdout count=30000000 > /tmp/test

Eu planejei gerar um arquivo de 30MB usando dd, enviá-lo para o stdout e, em seguida, redirecionar para o arquivo. Eu esperava que as operações de gravação devessem ser registradas nas estatísticas do cgroup. No entanto, quando eu li o arquivo "/cgroup/blkio/dummy_group/blkio.throttle.io_serviced", o número "Write" não mudou!

Então eu fiz as tarefas semelhantes usando o comando cp, o número 'Write' realmente mudou:

cgexec -g blkio:/dummy_group --sticky cp /tmp/test /tmp/test2

Estou me perguntando se fiz algo errado para atingir esse objetivo. Qual é o método correto para monitorar e limitar processos cujo IO é executado usando o redirecionamento de IO?

Obrigado.

    
por dsdashun 17.06.2016 / 09:15

0 respostas