Estou tentando fazer backup de alguns arquivos do meu PC para um disco rígido externo usando o rsync. A cópia funciona bem, mas leva muito tempo até mesmo para o padrão USB 2.0. Para um USB 2.0 a velocidade real de transferência deve ser de 30MB / s, no meu teste a velocidade chega às vezes 2MB / s. O pen-drive que estou usando é um bom 32GB USB3.0 com FAT32 fs.
Nota: antes de cada teste eu apaguei todo o conteúdo do pen-drive e também tentei em uma porta USB diferente.
Parte do script que estou usando é a seguinte:
mkdir /media/eusbd0
mount -t vfat -o shortname=mixed,iocharset=utf8 /dev/sdb1 /media/eusbd0
# copy only data between date1 to date2
for dir in $(find /home/records -type d -newermt "2016-08-04" ! -newermt "2016-08-18" 2>&1); do
if [ "/home/records" != "$dir" ]; then # skip parent dir
rsync -ravP --inplace --modify-window=2 --log-file=/var/log/download_records "$dir" /media/eusbd0 > /var/log/rsync_report.txt
fi
done
#sync
umount -l /media/eusbd0
Aqui faz parte da saída do rsync:
sending incremental file list 2016-08-11/ 2016-08-11/gps_00000
44,179 100% 10.88MB/s 0:00:00 (xfr#1, to-chk=34/36) 2016-08-11/log
106,792 100% 101.84MB/s 0:00:00 (xfr#2, to-chk=33/36) 2016-08-11/log_cam0
5,532 100% 5.28MB/s 0:00:00 (xfr#3, to-chk=32/36) 2016-08-11/rec_2016-08-11.13_57_22.mov
3,513,782 100% 108.10MB/s 0:00:00 (xfr#4, to-chk=31/36) 2016-08-11/rec_2016-08-11.13_59_00.mov
4,281,177 100% 63.79MB/s 0:00:00 (xfr#5, to-chk=30/36) 2016-08-11/rec_2016-08-11.14_02_09.mov
3,359,207 100% 36.82MB/s 0:00:00 (xfr#6, to-chk=29/36) 2016-08-11/rec_2016-08-11.14_04_16.mov
1,877,863 100% 17.91MB/s 0:00:00 (xfr#7, to-chk=28/36) 2016-08-11/rec_2016-08-11.14_05_42.mov
........
50,482,791 100% 114.90MB/s 0:00:00 (xfr#20, to-chk=15/36) 2016-08-11/rec_2016-08-11.15_14_53.mov
19,291,527 100% 34.52MB/s 0:00:00 (xfr#21, to-chk=14/36) 2016-08-11/rec_2016-08-11.15_18_42.mov
50,700,461 100% 58.68MB/s 0:00:00 (xfr#22, to-chk=13/36) 2016-08-11/rec_2016-08-11.15_20_20.mov
.......
sent 802,030,914 bytes received 685 bytes 94,356,658.71 bytes/sec
total size is 801,832,718 speedup is 1.00 tail:
/var/log/rsync_report.txt: file truncated sending incremental file
list 2016-08-16/ 2016-08-16/log
41,966 100% 8.77MB/s 0:00:00 (xfr#1, to-chk=16/18) 2016-08-16/obd_00000
46,798 100% 44.63MB/s 0:00:00 (xfr#2, to-chk=15/18) 2016-08-16/rec_2016-08-16.16_24_12.mov
50,649,317 100% 18.64MB/s 0:00:02 (xfr#3, to-chk=14/18) 2016-08-16/rec_2016-08-16.16_25_50.mov
25,602,242 100% 7.78MB/s 0:00:03 (xfr#4, to-chk=13/18) 2016-08-16/rec_2016-08-16.16_57_42.mov
50,496,580 100% 15.18MB/s 0:00:03 (xfr#5, to-chk=12/18) 2016-08-16/rec_2016-08-16.16_59_20.mov
50,617,906 100% 13.29MB/s 0:00:03 (xfr#6, to-chk=11/18) 2016-08-16/rec_2016-08-16.17_00_58.mov
50,759,115 100% 10.16MB/s 0:00:04 (xfr#7, to-chk=10/18) 2016-08-16/rec_2016-08-16.17_02_36.mov
50,883,325 100% 6.81MB/s 0:00:07 (xfr#8, to-chk=9/18) 2016-08-16/rec_2016-08-16.17_04_14.mov
47,995,074 100% 4.41MB/s 0:00:10 (xfr#9, to-chk=8/18) 2016-08-16/rec_2016-08-16.17_09_44.mov
50,813,636 100% 2.35MB/s 0:00:20 (xfr#10, to-chk=7/18) 2016-08-16/rec_2016-08-16.17_11_22.mov
50,953,015 100% 2.52MB/s 0:00:19 (xfr#11, to-chk=6/18) 2016-08-16/rec_2016-08-16.17_13_00.mov
50,221,069 100% 2.93MB/s 0:00:16 (xfr#12, to-chk=5/18) 2016-08-16/rec_2016-08-16.17_14_38.mov
50,445,757 100% 2.87MB/s 0:00:16 (xfr#13, to-chk=4/18) 2016-08-16/rec_2016-08-16.17_16_16.mov
51,036,959 100% 3.16MB/s 0:00:15 (xfr#14, to-chk=3/18) 2016-08-16/rec_2016-08-16.17_17_54.mov
51,056,196 100% 3.19MB/s 0:00:15 (xfr#15, to-chk=2/18) 2016-08-16/rec_2016-08-16.17_19_32.mov
50,434,922 100% 3.12MB/s 0:00:15 (xfr#16, to-chk=1/18) 2016-08-16/rec_2016-08-16.17_21_10.mov
19,456,000 100% 2.71MB/s 0:00:06 (xfr#17, to-chk=0/18)
sent 701,682,372 bytes received 343 bytes 4,512,429.04 bytes/sec
total size is 701,509,877 speedup is 1.00
O que pode ser notado na saída é que, no começo, a velocidade é alta, enquanto no final fica mais lenta e lenta. Por que isso está acontecendo?
O arquivo que estou copiando é praticamente o mesmo (exceto o tamanho que pode variar um pouco) e a quantidade deles é baixa, menos de 100 arquivos. Eu também tentei com outros pen-drives, mas eu tenho o mesmo resultado.
Obrigado!
NOVA EXPERIÊNCIA:
Eu tentei o cpio em vez do rsync para copiar os mesmos arquivos. O script modificado:
mkdir /media/eusbd0
mount -t vfat -o shortname=mixed,iocharset=utf8 /dev/sdb1 /media/eusbd0
# copy only data between date1 to date2
for dir in $(find /home/records -type d -newermt "2016-08-04" ! -newermt "2016-08-18" 2>&1); do
if [ "/home/records" != "$dir" ]; then # skip parent dir
find "$dir" -print | cpio -pdm /media/eusbd0 > /var/log/rsync_report.txt
fi
done
#sync
umount -l /media/eusbd0
A quantidade de dados para copiar é de cerca de 3 GB e o tempo necessário para o cpio é de 900 segundos, o que se traduz em uma velocidade média de transferência de 3-4 MB / s. Parece que o problema diz respeito ao hardware ou às unidades, uma vez que também a velocidade do rsync está próxima desse valor.
UPDATE
Eu tentei com outros 3 pen-drive formatados em FAT32, mas eu tenho o mesmo comportamento. Então eu tentei o NTFS fs e obtive um bom resultado de > 30MB / s, mas infelizmente apenas em um dos 4 pen drives USB que tenho. Outros experimentos com HDD e SSD externos mostraram também alguns resultados razoavelmente bons > 20MB / s.
Para resumir, minha placa-mãe (ou drivers) provavelmente não gosta de pen drives ou FAT32 fs. Discos rígidos externos (alimentados ou não) funcionam como esperado pelo menos em NTFS. E eu não tenho ideia de por que isso aconteceu.