Я переношу около 31 Тбайта данных, состоящего из 4500 файлов, размер файлов варьируется от 69 МБ до 25 ГБ, от удаленного сервера до ведра s3. Я использую s4cmd put
сделать это и поместить его в Баш скрипт 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 ** и сделать некоторые параллельно, возможно? '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