wget(またはncftpget)を使用して、NOAA FTPサーバーから1年分のデータをダウンロードしようとしています。ただし、FTPのオーバーヘッドが原因で、必要以上に時間がかかります(私は思います)。たとえば、このコマンド
time wget -nv -m ftp://ftp:email@ftp.ncdc.noaa.gov/pub/data/noaa/2015 -O /weather/noaa/2015
または同様に、ncftpget経由
ncftpget -R -T -v ftp.ncdc.noaa.gov /weather/noaa/ /pub/data/noaa/2015
結果をもたらす。30Mを転送する53分!
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
この転送を見ると、個々のファイルの転送は非常に高速(500kb /秒)ですが、12,000の比較的小さなファイルをダウンロードするプロセスでは、膨大なオーバーヘッドが発生し、プロセス全体の速度が低下します。
私の質問:
- 状況を正しく評価していますか?サーバーを知らないと分からないことはわかりますが、FTPは大量の小さなファイルを転送するときにこれを本当に吸いますか?
- リモートFTPサーバーでより快適にプレイできるように、wgetまたはncftpgetに微調整はありますか?それとも、ある種の並列性ですか?