Você pode usar ratepipe .
Eu baixei e tentei e parece DTRT. Deve funcionar para você:
tar --remove-files -cvif - 2011-08-02_14-05-09 | ratepipe -r 20 > 2011-08-02_14-05-09.tar
Meu comando tar
tar --remove-files -cvif 2011-08-02_14-05-09.tar 2011-08-02_14-05-09
Escreve 80MB / s. Isso está além da capacidade que podemos poupar, porque o MySQL começa a enfileirar gravações e, eventualmente, recebemos alertas de monitoramento, fazendo com que os sistemas não esperem para sempre no MySQL e expirem.
P: Posso acelerar tar
para fazer apenas 20MB / s?
Não encontrei nada na manpage e já tentamos com a menor ionice
class: /usr/bin/ionice -c3 tar <...>
, mas isso não afeta os MBs escritos / se o MySQL ainda congela.
Talvez ionice
seja ignorado porque estamos em um dispositivo RAID de software /dev/md0
?
Você pode usar ratepipe .
Eu baixei e tentei e parece DTRT. Deve funcionar para você:
tar --remove-files -cvif - 2011-08-02_14-05-09 | ratepipe -r 20 > 2011-08-02_14-05-09.tar
Você provavelmente poderia escrever o tar para stdout (usando -f - ) e canalizá-lo para algo que seja acelerado. Vou ver se consigo encontrar algo rapidamente.
Como o tar não armazena muito em buffer, ele deve esperar pelas leituras.
Edit: MikeB me bateu nisso: ratepipe vai fazer.