J'essaie de télécharger l'équivalent d'un an de données à partir d'un serveur FTP NOAA en utilisant wget (ou ncftpget). Cependant, cela prend beaucoup plus de temps qu'il ne le devrait en raison de la surcharge de FTP (je pense). Par exemple, cette commande
time wget -nv -m ftp://ftp:[email protected]/pub/data/noaa/2015 -O /weather/noaa/2015
Ou de même, via ncftpget
ncftpget -R -T -v ftp.ncdc.noaa.gov /weather/noaa/ /pub/data/noaa/2015
Donne un résultat de. 53 minutes pour transférer 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
Lorsque je regarde ce transfert, chaque fichier individuel est transféré assez rapidement (500 Ko / s), mais le processus de téléchargement de 12 000 fichiers relativement petits entraîne une énorme surcharge et ralentit l'ensemble du processus.
Mes questions:
- Suis-je en train d'évaluer correctement la situation? Je me rends compte que c'est difficile à dire sans connaître les serveurs, mais FTP aspire-t-il vraiment autant lors du transfert de tonnes de petits fichiers?
- Existe-t-il des ajustements à wget ou ncftpget pour leur permettre de jouer plus agréablement avec le serveur FTP distant? Ou peut-être une sorte de parallélisme?
Alternativement, si vous avez un accès en écriture sur votre hôte (dans ce cas, je suppose que vous vous connectez de manière anonyme et n'avez pas accès en écriture) zip / tar les fichiers avant le téléchargement
la source
Oui tu as raison. Malheureusement, bien que les spécifications ftp offrent un mode de transfert alternatif capable de multiplier plusieurs fichiers sur une seule connexion de données, la dernière fois que j'ai fait une enquête sur les logiciels disponibles (qui était certes de retour en 1998), aucun ne les a pris en charge. Je ne pense pas que la situation ait changé car l'intérêt pour le ftp a été plutôt faible. La plupart des organisations disposant de tels ensembles de données y ont accès via http ou dans des archives plus grandes pour éviter ce problème. Vous devriez vérifier si la NOAA le fait.
la source