Ich versuche, Daten im Wert von einem Jahr mit wget (oder ncftpget) von einem NOAA-FTP-Server herunterzuladen. Aufgrund des Overheads von FTP dauert es jedoch viel länger als erwartet (glaube ich). Zum Beispiel dieser Befehl
time wget -nv -m ftp://ftp:email@ftp.ncdc.noaa.gov/pub/data/noaa/2015 -O /weather/noaa/2015
Oder ähnlich über ncftpget
ncftpget -R -T -v ftp.ncdc.noaa.gov /weather/noaa/ /pub/data/noaa/2015
Ergibt ein Ergebnis von. 53 Minuten, um 30M zu übertragen!
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
Wenn ich mir diese Übertragung ansehe, wird jede einzelne Datei ziemlich schnell übertragen (500 KBit / s), aber das Herunterladen von 12.000 relativ kleinen Dateien verursacht einen enormen Overhead und verlangsamt den gesamten Prozess.
Meine Fragen:
- Beurteile ich die Situation richtig? Mir ist klar, dass es schwer zu sagen ist, ohne die Server zu kennen, aber saugt FTP wirklich so viel, wenn Tonnen kleiner Dateien übertragen werden?
- Gibt es irgendwelche Verbesserungen an wget oder ncftpget, damit sie besser mit dem Remote-FTP-Server spielen können? Oder vielleicht eine Art Parallelität?