Onde posso limitar o uso do processador de um processo que está copiando arquivos?

1

Como posso limitar o limite de uso do processador para o processo de cópia quando ele está em execução? Meu amigo e eu estamos planejando obter um PC para hospedar servidores e precisamos saber como limitar esse uso ao processo de cópia porque da última vez que fizemos uma máquina host, toda vez que estávamos copiando novos arquivos, os servidores estavam começando a ficar atrasados.

    
por ᔕᖺᘎᕊ 11.08.2012 / 21:29

2 respostas

3

Use nice para CPU

A prioridade de agendamento da CPU é tratada com nice (1), que diz:

Run COMMAND with an adjusted niceness, which affects process scheduling. With no COMMAND, print the current niceness. Nicenesses range from -20 (most favorable scheduling) to 19 (least favorable).

Use ionice para E / S de Disco

Usar ionice -c3 usará a prioridade inativa para E / S de disco. A página de manual do ionice (1) diz:

A program running with idle io priority will only get disk time when no other program has asked for disk io for a defined grace period. The impact of idle io processes on normal system activity should be zero.

Combine as duas opções

Para o menor impacto no seu sistema, você pode combinar os dois. Por exemplo:

# Run script with lowest possible CPU and disk priorities.
nice -n19 ionice -c3 foo.sh
    
por 11.08.2012 / 21:39
0

A cópia tem muito pouco impacto na CPU, o recurso que ela usa é a largura de banda de E / S.

Você deve prefixar comandos com uso intensivo de io com ionice -c2 -n6 se não quiser que eles causem impacto em outros aplicativos. Você também pode confinar coisas usando cgroups e o controlador blkio, mas isso está mais envolvido.

    
por 11.10.2012 / 16:58