Sto tentando di scaricare un anno di dati da un server FTP NOAA usando wget (o ncftpget). Tuttavia, ci vuole molto più tempo di quanto dovrebbe a causa dell'overhead di FTP (credo). Ad esempio, questo comando
time wget -nv -m ftp://ftp:email@ftp.ncdc.noaa.gov/pub/data/noaa/2015 -O /weather/noaa/2015
O allo stesso modo, tramite ncftpget
ncftpget -R -T -v ftp.ncdc.noaa.gov /weather/noaa/ /pub/data/noaa/2015
Produce un risultato di. 53 minuti per trasferire 30 M!
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
Quando guardo questo trasferimento, ogni singolo file si trasferisce abbastanza rapidamente (500kb / sec) ma il processo di download di 12.000 file relativamente piccoli comporta un'enorme quantità di sovraccarico e rallenta l'intero processo.
Le mie domande:
- Sto valutando la situazione correttamente? Mi rendo conto che è difficile dirlo senza conoscere i server, ma FTP fa davvero tanto schifo quando si trasferiscono tonnellate di piccoli file?
- Ci sono delle modifiche da wget o ncftpget per consentire loro di giocare meglio con il server FTP remoto? O forse una sorta di parallelismo?