Equivalente a `nice 'para IO do sistema de arquivos?

11

Quando estou executando um rsynctrabalho de backup que envolve a cópia de arquivos grandes, a máquina que executa o backup (tanto para desktops Mac quanto para servidores Linux) é interrompida e a média de carga passa pelo telhado.

Eu tentei:

  • niceing o rsyncprocesso (não ajuda - o gargalo é o disco)
  • No Linux, reniceing a kjournald(ajuda, mas parece um hack e não funciona no Mac)
  • Usando a --bwlimit rsyncbandeira (ajuda, mas significa que todas as transferências são lentas - mesmo quando não precisam ser)

Então, existe alguma maneira de eu " nice" fazer rsynca IO para que as máquinas possam ser usadas enquanto o backup estiver em execução?

PS: Estou ciente dos perigos do rsyncMac… Mas usei o BackupBouncer para verificar meus backups, e eles parecem bem.

David Wolever
fonte

Respostas:

7

Parece que a setpriorityAPI no Mac OS X deve poder alterar o agendamento de E / S (consulte http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man2/setpriority.2.html ) . Como não tenho nenhum MacOS à mão, não posso testar se isso nicerealmente altera a prioridade de IO.

No lado do Linux, ioniceé o que você está procurando.

Evan Anderson
fonte
1
Ah obrigada. Aqui está o que a página de setprioritymanual diz: "Ao definir um encadeamento no estado de segundo plano, a prioridade de agendamento é definida como o valor mais baixo, E / S de disco e rede são limitadas". - o que parece indicar que as E / S de disco / rede são limitadas apenas quando algo é reduzido para 20 (o "estado de segundo plano").
David Wolever
2
Alguns testes rápidos também parecem confirmar isso - quando o script de backup foi aumentado apenas para 10 (ou seja, nice backup), notei uma desaceleração ... Mas quando é reduzido para 20 (ou seja nice -n 20 backup), não percebi nenhuma desaceleração.
David Wolever
(e por "notado uma desaceleração" Quero dizer "notou que programas interativos em execução no computador não respondeu tão rapidamente como fazem normalmente")
David Wolever
1
É um pouco decepcionante que você só acelere com uma prioridade de 20, no entanto.
Evan Anderson
+1, boa resposta. Sempre se perguntou sobre o IO girando.
Avery Payne
4

No linux, você pode usar ionice http://linux.die.net/man/1/ionice

Rory
fonte
Exemplo de uso:ionice -c idle rsync ...args...
VasyaNovikov 16/06