RSYNC è lento durante la copia dei file

L'operazione rsync viene eseguita molto lentamente su un file system.

Causa: rsync è un'operazione seriale, pertanto la copia di un file system di grandi dimensioni è lenta, soprattutto se nel processo sono inclusi snapshot.

Soluzione: utilizzare una delle seguenti alternative:

  • GNU Parallel per eseguire rsync in parallelo. Ad esempio:
    time find /mnt/MyFileSystem -mindepth 1 -maxdepth 1 | parallel -P100 rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --exclude=.snapshot --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh {} root@10.0.3.6:/mnt/rsync_target

    Per ulteriori informazioni, vedere GNU Parallel - GNU Project.

  • Strumenti paralleli di storage dei file

    Per ulteriori informazioni ed esempi, vedere Uso degli strumenti paralleli di storage di file.

  • Il comando find con l'opzione xargs. Ad esempio:
    find ${source_dir}  -mindepth 1 -maxdepth 1 | xargs -P 24 -I {} rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --log-file=<logfile_path> -quiet -e ssh {} <destination_user>@<destination_instance>:<destination_dir>

    Per ulteriori informazioni, vedere find(1)- Linux Man Page e xargs(1)- Linux Man Page.

  • Se si utilizza rsync per copiare i file da un'area all'altra, vedere La copia dei file da un'area all'altra utilizzando RSYNC o FPSYNC è lenta.