¿Cuándo se hace un cp vía ssh es normal que tarde 40 minutos?

Tengo una Raspberry Pi y como de linux no estoy muy puesto pregunto algo que quizás sea trivial, pero me tiene intrigado.
Estoy intentando "copiar" unos *.avi de una carpeta a otra mediante el comando cp.
Pensaba que la copia sería más rápida (de hecho pensaba que sería instantanea) que volver a subir los archivos que tengo en un PC con Windows otra vez a la Rapsberry Pi (mediante WinSCP)

¿Es normal ese comportamiento con el comando cp?
De donde a donde copias?, mismo dispositivo?, particiones?, carpetas?, tamaño de los archivos?.
Recuerda que copias, no es mover simplemente (que eso dentro de una misma partición si debería ser casi instantáneo). Y los usb de la raspberry no son los mas rapidos y muchos menos si usas la SD claro.

Revisa tambien el tamaño de los archivos y espacio disponible, si esta muy fragmentado los archivos, queda poco espacio y semejante tardara mas pues debera "buscar hueco" libre en el dispositivo. Pero el comando cp, es simplemente copiar y aunque lo hagas de manera remota es algo que se realiza localmente.
Estoy copiando *.avis (600 a 800 MB) de la carpeta A de un HDD de 2 TB a la carpeta B del mismo HDD.
El HDD está conectado a un hub USB (con alimentación propia) y el hub a su vez a una de las dos entradas USB de la RPi.

Espacio en ese HDD hay de sobra (mas de 1.2 TB libres)
Prueba con rsync, generalmente es más rápido y efectivo que el comando cp. Algo así

rsync -avzh [ORIGEN] [DESTINO]
Sin saber el tamaño total de los archivos que estás copiando (son 40 minutos para un archivo avi de 600MB o varios archivos?) ni la velocidad de lectura y escritura del disco, en principio sí puede ser perfectamente normal que tarde esos 40 minutos.

El acceso a discos USB puede ser algo lento, y si lees y escribes en el mismo disco USB más todavía.

Puedes hacer un test sencillo de velocidad de escritura en el disco USB con este comando:

dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync


Vas con "cd" a alguna carpeta de tu disco USB y lo ejecutas. Te creará un archivo llamado "test" de 512MB y te dirá el tiempo que ha tardado y la velocidad de escritura en el disco. Algo como esto:

512+0 registros leídos
512+0 registros escritos
536870912 bytes (537 MB) copiados, 6,40948 s, 83,8 MB/s


Para ver la velocidad de lectura:

sudo hdparm -t --direct /dev/sda


Donde /dev/sda será el nombre de tu dispositivo USB.

Con el resultado de ambas pruebas te puedes hacer una idea de si el tiempo que estás tardando en copiar es normal o no, teniendo en cuenta que al copiar entre carpetas de un mismo disco las lecturas y escrituras no se podrán estar haciendo en paralelo.

Si las matemáticas no me fallan [+risas] el tiempo total que tardarías en copiar un archivo de 600MB sería aproximadamente:

total = 600/(resultado en MB/s del test de lectura) + 600/(resultado en MB/s del test de escritura)

Aproximado porque eso sería en condiciones ideales de lecturas y escrituras completamente secuenciales, habría que añadir el tiempo de posicionamiento de los cabezales del disco, que de nuevo al estar leyendo y escribiendo al mismo disco también se incrementa.
En la raspberry via SSH sí es normal: el cuello de botella te lo hace el procesador, que no es capaz de cifrar los datos para transmitirlos a la velocidad de los USB/Ethernet. Si usas FTP te tardará bastante menos. (Una de las razones por las que el RPi no me termina de convencer como mini servidor de descargas)
Korso10 escribió:En la raspberry via SSH sí es normal: el cuello de botella te lo hace el procesador, que no es capaz de cifrar los datos para transmitirlos a la velocidad de los USB/Ethernet. Si usas FTP te tardará bastante menos. (Una de las razones por las que el RPi no me termina de convencer como mini servidor de descargas)


Pero no estamos hablando de transferir remotamente del ordenador A (Raspberry pi) al ordenador B. Estamos hablando de hacer login vía ssh para copiarlo en local.
Moki_X escribió:
Korso10 escribió:En la raspberry via SSH sí es normal: el cuello de botella te lo hace el procesador, que no es capaz de cifrar los datos para transmitirlos a la velocidad de los USB/Ethernet. Si usas FTP te tardará bastante menos. (Una de las razones por las que el RPi no me termina de convencer como mini servidor de descargas)


Pero no estamos hablando de transferir remotamente del ordenador A (Raspberry pi) al ordenador B. Estamos hablando de hacer login vía ssh para copiarlo en local.


Correcto, fallo mío [+risas], leí la parte del WinSCP y se ve que me lié.
7 respuestas