2010-05-03 3 views
1

저는 HTTP와 FTP를 통한 엄청난 양의 파일 전송이 필요한 소프트웨어를 만들고 있습니다. 종종 pax를 사용하는 axel 또는 lftp와 같은 다중 연결 다운로드 가속기로보다 빠른 HTTP 다운로드를 얻습니다. 단지 wget을 사용하여wget을 통한 HTTP 전송이 lftp/pget보다 빠른 이유는 무엇입니까?

axel http://example.com/somefile 

또는

lftp -e 'pget -n 5 http://example.com/somefile;quit' 

대 : 어떤 경우에는, 내가 본 배 - 3 배 빠른 같은 것을 사용하여 전송 파일

wget http://example.com/somefile 

그러나 다른 시간을, wget은 lftp보다 상당히 빠릅니다.

lftp -e 'pget -n 1 http://example.com/somefile;quit' 

나는 대역폭이 제한된 방식에 따라 여러 연결을 통해 파일을 다운로드하는 것은 항상 속도 향상이 유발되지 않음을 이해 : 내가 지금처럼, GET과 함께 lftp를 할 경우에도 Strangly,이 경우에도 마찬가지입니다. 하지만 왜 더 느린가? 특히 -n 1을 사용하여 lftp/pget을 호출 할 때?

+0

이것은 아마도 http://superuser.com에 있어야합니다. –

+0

소프트웨어가 명령 줄에 포격되지 않아야합니다. curl을 사용하면 대부분의 주요 언어에 대한 래퍼가 있습니다. –

+1

@Byron Whitlock - 호기심에서 벗어난 이유는 무엇입니까? 많은 경우 응용 프로그램에 라이브러리 코드를 추가하는 대신 하위 프로세스를 사용하는 것이 더 좋습니다. 그것은 imho 단점뿐만 아니라 장점이 있습니다. – Mic

답변

1

HTTP 서버가 gzip을 사용하여 스트림을 압축 할 수 있습니까? wget이 gzip Content Encoding을 처리하는지 여부를 기억할 수 없습니다. 그렇다면 성능 향상을 설명 할 수 있습니다. 또 다른 가능성은 파이프 라인 어딘가에 HTTP 캐시가 있다는 것입니다.

wget --no-cache --header="Accept-Encoding: identity" 

과 같이 시도해보고 FTP 기반 전송 시간과 비교해보십시오.

+0

콘텐츠 배포 네트워크, QOS 라우팅 (특히 비 수동 FTP와 관련), 프록시 캐싱 ..... – symcbean

관련 문제