Primero: la cantidad de archivos en este caso será un factor importante. Es un tamaño promedio de 3MB cada uno. Probablemente haya un cuello de botella io que influya en la velocidad en el caso del OP. Más aquí : es una lectura bastante seca, pero la imagen de portada lo vale.
Entonces, ¿usa rsync para copiar en un directorio vacío? Aquí hay algunas formas de acelerarlo:
- No -z: definitivamente no use -z como en el OP.
- --no-comprimir podría acelerarlo. Esto podría tener el mayor impacto ... mi prueba fue de 13,000 archivos, tamaño total de 200MB, y usando rsync 3.1.3. Me sincronicé con una partición diferente en la misma unidad SSD interna. Con --no-compress, obtengo 18 MBps, y sin él obtengo 15 MBps. cp, por cierto, obtiene 16 MBps. Sin embargo, ese es un tamaño de archivo promedio mucho más pequeño. Además, no puedo encontrar ninguna documentación para --no-compress. Lo aprendí de esta publicación en stackexchange.com.
- -W para copiar archivos completos : use siempre esto si no desea que compare diferencias; No importa que el objetivo de rsync sea comparar diferencias y solo actualizar los cambios.
- -S para manejar bien los archivos dispersos : no puede hacer daño si no tiene archivos dispersos.
- --exclude-from o algo similar para excluir archivos que quizás no necesite reducirá el tiempo, pero no aumentará su velocidad de transferencia.
- Es posible si envía la salida a un archivo como este
rsync -a /source /destination >/somewhere/rsync.out 2>/somewhere/rsync.err
: el primero> básicamente imprime un archivo con todo lo que normalmente vería, y el 2> se refiere a mensajes de error.
- Finalmente, ejecutar múltiples instancias de rsync para diferentes partes de su transferencia podría ser de gran ayuda.
Mi comando sería:
rsync -avAXEWSlHh /source /destination --no-compress --info=progress2 --dry-run
Si todo se veía bien, eliminaría "--dry-run" y lo dejaría pasar. A, X y E cubren atributos y permisos extendidos no cubiertos por -a, l es para enlaces blandos, H es para enlaces duros y h es para lectura humana.
La actualización de un directorio ya sincronizado en una unidad USB, o la misma unidad, o en una red, requerirá diferentes comandos rsync para maximizar la velocidad de transferencia.
Bonificación : aquí está la página de manual de rsync , y si desea probar la velocidad de su disco duro, bonnie ++ es una buena opción, y para la velocidad de su red, pruebe iperf .
* La publicación tiene casi diez años, pero a los motores de búsqueda les gusta, y la sigo viendo. Es una buena pregunta, y no creo que la respuesta principal a "cómo acelerar rsync" deba ser "usar cp en su lugar".