Estoy intentando descargar un año de datos de un servidor FTP de NOAA usando wget (o ncftpget). Sin embargo, toma más tiempo del que debería debido a la sobrecarga de FTP (creo). Por ejemplo, este comando
time wget -nv -m ftp://ftp:[email protected]/pub/data/noaa/2015 -O /weather/noaa/2015
O de manera similar, a través de ncftpget
ncftpget -R -T -v ftp.ncdc.noaa.gov /weather/noaa/ /pub/data/noaa/2015
Produce un resultado de. ¡53 minutos para transferir 30M!
FINISHED --2015-01-03 16:21:41--
Total wall clock time: 53m 32s
Downloaded: 12615 files, 30M in 7m 8s (72.6 KB/s)
real 53m32.447s
user 0m2.858s
sys 0m8.744s
Cuando veo esta transferencia, cada archivo individual se transfiere con bastante rapidez (500 kb / s), pero el proceso de descarga de 12,000 archivos relativamente pequeños conlleva una enorme cantidad de sobrecarga y ralentiza todo el proceso.
Mis preguntas:
- ¿Estoy evaluando la situación correctamente? Me doy cuenta de que es difícil saberlo sin conocer los servidores, pero ¿FTP realmente apesta tanto al transferir toneladas de archivos pequeños?
- ¿Hay algún ajuste en wget o ncftpget para permitirles jugar mejor con el servidor FTP remoto? ¿O tal vez algún tipo de paralelismo?
Alternativamente, si tiene acceso de escritura en su host (en este caso, supongo que está iniciando sesión de forma anónima y no tiene acceso de escritura) comprima los archivos antes de descargarlos.
fuente
Sí, estás en lo correcto. Desafortunadamente, aunque las especificaciones ftp ofrecen un modo de transferencia alternativo que es capaz de multiplicar múltiples archivos a través de una sola conexión de datos, la última vez que hice una encuesta del software disponible (que ciertamente fue en 1998), ninguno lo admitió. No creo que la situación haya cambiado porque el interés en ftp ha sido bastante bajo. La mayoría de las organizaciones con tales conjuntos de datos les proporcionan acceso a través de http, o en archivos más grandes para evitar este problema. Debe verificar si NOAA hace esto.
fuente