2011-10-13 5 views
6

매분마다 S3에 업로드 할 수천 개의 작은 파일 (약 1KB)이 있습니다. 루프의 모든 파일을 업로드하는 경우"S3의 HTTP 응답 대기 - 다음 요청 보내기 - 다음 응답 대기 ..." S3 사이의 대기 시간을 2 시간 대기해야하기 때문에 많은 시간을 들여야합니다. 내 서버. 물론 HTTP Keep-Alive 헤더를 이미 사용하고 있습니다.S3가 HTTP 파이프 라이닝을 지원합니까?

그래서 (HTTP 파이프 라이닝을) 기다리지 않고 여러 HTTP 요청을 보내려고합니다. 배치에서 20 개의 요청을 보내고 20 개의 응답을 기다립니다. 이전 응답이있을 때 요청을 보낼 수 있기 때문에 시간이 많이 절약 될 것으로 예상했습니다.

그러나 세상을 더 좋게 만들지는 못합니다.

약 20 분 후에 20 개의 요청을 보내면 응답을 받으려고합니다. 첫 번째 응답 (예 : this graph)을받은 후 요청을 보내는 것만 큼 빨리 응답을받을 수있을 것으로 기대됩니다.

첫 번째 응답을받은 후에 모든 응답에 대해 약 300ms를 기다려야한다는 사실이 있습니다. 하나의 요청을 보내고 하나의 응답을받는 것과 비교하면 더 좋아지지 않습니다.

왜 파이프 라이닝 기술의 시간을 단축 할 수 없습니까? S3가 모든 요청에 ​​대해 많은 시간을 들여야하는 이유는 무엇입니까? S3가 HTTP 파이프 라이닝을 지원합니까?

감사합니다.

답변

4

각 요청에 대한 대기 시간 문제를 해결하는 Amazon S3 스포츠 병렬 처리.

매우 짧은 기간에 수백 개의 동시 요청을 S3에 보내고 대량의 파일을 업로드 할 수 있습니다.

관련 문제