我將大約31 TB的數據(包含4500個文件,文件大小範圍從69MB到25GB)從遠程服務器傳輸到s3存儲桶。我使用s4cmd put
要做到這一點,並把它放在一個bash腳本upload.sh
:將大量大文件傳輸到s3
#!/bin/bash
FILES="/path/to/*.fastq.gz"
for i in $FILES
do
echo "$i"
s4cmd put --sync-check -c 10 $i s3://bucket-name/directory/
done
然後我用qsub
提交作業:
qsub -cwd -e error.txt -o output.txt -l h_vmem=10G -l mem_free=8G -l m_mem_free=8G -pe smp 10 upload.sh
這是服用了太多的時間 - 它需要10個小時上傳〜20個文件。有人可以提出對我的命令的替代或修改嗎?
謝謝!
使用** GNU並行**並做一些並行可能嗎? 'parallel --eta -j 8 s4cmd put --sync-check -c 10 {} s3:// bucket-name/directory/:::/path/to/* fastq.gz' –
從哪裏轉移?如果另一個AWS服務,可能這個速度太慢了,但是如果從你的公司數據中心發送到AWS,我希望在這個範圍內(因爲你有單線程)。即使使用GParallel,您也可能很容易陷入源系統和AWS之間的帶寬限制。 (我的想法可能已過時,所以我很想看到來自當前用戶的回覆(總是!))。祝你好運! – shellter
您的互聯網連接有多快?對於這一數量的數據,儘管存在運輸費用,但使用[Snowball](https://aws.amazon.com/snowball/)可能會更快。 – stdunbar