원격 서버에서 s3 버킷까지 파일 크기가 69MB에서 25GB까지 인 4500 개의 파일로 구성된 약 31TB의 데이터를 전송합니다.많은 수의 큰 파일을 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
를 사용 : 나는이 작업을 수행하고 bash는 스크립트 upload.sh
에 넣어 s4cmd put
을 사용하고
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 : // 버킷 이름/디렉토리/:::/path/to/* fastq.gz' –
어디에서 이전 했습니까? 다른 AWS 서비스 인 경우 어쩌면 너무 느릴 수 있습니다. 그러나 회사 데이터 센터에서 AWS로 보내는 경우이 범위의 시간을 기대할 수 있습니다 (단일 스레드로 설정 한 경우). GParallel을 사용하더라도 소스 시스템과 AWS 사이의 대역폭 제약 조건에 쉽게 적응할 수 있습니다. (내 생각은 시대에 뒤질 수 있으므로 현재 사용자의 응답을 보는 데 관심이 있습니다 (항상!). 행운을 빕니다! – shellter
인터넷 연결 속도는 얼마나 빠릅니까? 그 양의 데이터에 대해서는 [Snowball] (https://aws.amazon.com/snowball/)을 사용하는 것이 더 빠르지 만 배송 비용이 더 듭니다. – stdunbar