Saya mencoba mengunduh data setahun dari Server FTP NOAA menggunakan wget (atau ncftpget). Namun, itu membutuhkan waktu lebih lama daripada seharusnya karena overhead FTP (saya pikir). Misalnya, perintah ini
time wget -nv -m ftp://ftp:[email protected]/pub/data/noaa/2015 -O /weather/noaa/2015
Atau juga, melalui ncftpget
ncftpget -R -T -v ftp.ncdc.noaa.gov /weather/noaa/ /pub/data/noaa/2015
Menghasilkan hasil. 53 menit untuk mentransfer 30 juta!
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
Ketika saya menonton transfer ini, masing-masing file individu mentransfer cukup cepat (500 kb / detik) tetapi proses mengunduh 12.000 file yang relatif kecil menimbulkan biaya overhead yang sangat besar dan memperlambat seluruh proses.
Pertanyaan saya:
- Apakah saya menilai situasi dengan benar? Saya menyadari sulit untuk mengatakannya tanpa mengetahui server tetapi apakah FTP benar-benar menyedot sebanyak ini ketika mentransfer banyak file kecil?
- Apakah ada tweak untuk wget atau ncftpget untuk memungkinkan mereka bermain lebih baik dengan server FTP jarak jauh? Atau mungkin semacam paralelisme?
Atau, jika Anda memiliki akses tulis pada host Anda (dalam hal ini, saya akan menganggap Anda masuk secara anonim dan tidak memiliki akses tulis) zip / tar file sebelum mengunduh
sumber
Ya kamu benar. Sayangnya sementara spesifikasi ftp menawarkan mode transfer alternatif yang mampu menyalurkan banyak file melalui koneksi data tunggal, terakhir kali saya melakukan survei terhadap perangkat lunak yang tersedia (yang diakui pada tahun 1998), tidak ada yang mendukungnya. Saya tidak berpikir situasinya telah berubah karena minat terhadap ftp agak rendah. Sebagian besar organisasi dengan kumpulan data semacam itu menyediakan akses kepada mereka melalui http, atau dalam arsip yang lebih besar untuk menghindari masalah ini. Anda harus memeriksa apakah NOAA melakukan ini.
sumber