Meu problema é o seguinte: meu laptop tem um subsistema de disco relativamente lento (e não vou comprar um melhor) e faço backup do meu sistema usando o rsync
que funciona bem para mim. No entanto, durante o processo de backup, os arquivos lidos são lidos no buffer/cache do sistema, que eventualmente aciona o sistema de troca.
Por exemplo, executar cat Win10.qcow2 > /dev/null
um arquivo de 60 GB resultará em
free -h
total used free shared buff/cache available
Mem: 15Gi 2.2Gi 210Mi 170Mi 13Gi 12Gi
Swap: 30Gi 14Mi 30Gi
e se eu gravar em um dispositivo real, como minha unidade de backup USB, a troca começa a ser usada, até alguns GB. eu tenho vm.swappiness = 0
em/etc/sysctl
Por si só, isso não é ruim, mas por causa do meu sistema de disco lento, o computador torna-se menos dinâmico em resposta às entradas. Dolorosamente lento, na verdade.
O que eu gostaria de ter é um método para limitar a quantidade de buffer de página que o processo pode consumir, deixando espaço suficiente para executar comandos menores, como abrir um terminal.
O que tentei foi usar lxc
, que não limitou o uso de buffers pelo sistema, o docker
que ainda não consegui descobrir totalmente, e estou tentando começar a lxd
executar, mas precisarei de algum tempo para descobrir isso.
Existe um programa nocache
que eu acho que funciona, mas rsync
não produz indicadores de progresso.
Por padrão, quando
rsync
atualiza seu backup, ele cria uma cópia do arquivo e o move para o lugar. Para evitar esta etapa, você podersync
gravar diretamente em seu backup com o--inplace
argumento.De acordo com https://linux.die.net/man/1/rsync :