E / S de disco limite que um programa cria?

3

Hardware: um servidor de virtualização. Dual Nehalem, 24 GB de RAM, 2 TB de HD espelhado.

Software: Debian, KVM, virt-manager no servidor com várias máquinas virtuais que usam o Linux também. O disco de 2 TB é um grande LVM, cada VM obtém um volume lógico e cria suas próprias partições.

Problema: Um dos programas que são executados em uma das VMs cria uma enorme carga de disco. Isso nunca foi um problema, porque o programa nunca rodou em um hardware tão poderoso. Agora as CPUs são rápidas e muitas E / S são o resultado. Nós não podemos fazer muito contra isso no momento, porque a ferramenta é uma caixa preta. Por outro lado, a computação rápida é bem-vinda. O programa cria cerca de 5 GB de arquivos temporários que são sobrescritos durante a próxima iteração.

Pergunta: Como podemos limitar a E / S do disco para o processo?

    
por Posipiet 27.04.2010 / 13:59

2 respostas

6

Você deseja o comando ionice . Para prioridade inativa (prioridade mais baixa):

ionice -c3 bash

Você pode usar o comando regular nice para diminuir a prioridade da CPU, o que também pode limitar o IO como um efeito colateral.

Você pode também limitar a quantidade de FDs no programa com ulimit . Isso pode limitar o máximo de arquivos abertos dos quais o aplicativo é capaz, mas também pode apenas quebrá-lo.

Ainda outra opção pode ser ir comprar um monte mais memória e mapear esses arquivos temporários para um disco RAM com a montagem, tirando a carga do disco inteiramente. Você poderia, claro, fazer o mesmo, adicionando outro disco para os arquivos temporários também.

    
por 27.04.2010 / 14:03
1

O RHEL6 também suporta cgroups, o que permite que você faça um ajuste mais refinado. Você poderia tentar procurar no Debian também

    
por 06.05.2010 / 09:24