Почему передача HTTP через wget будет быстрее, чем через lftp / pget? - PullRequest
1 голос
/ 04 мая 2010

Я создаю программное обеспечение, которое должно выполнять огромные объемы передачи файлов через HTTP и FTP.Часто я получаю более быструю загрузку по HTTP с помощью ускорителя загрузки с несколькими подключениями, такого как axel или lftp с pget.В некоторых случаях я видел передачу файлов в 2–3 раза быстрее, например:

axel http://example.com/somefile

или

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

vs.просто используя wget:

wget http://example.com/somefile

Но в других случаях, wget значительно быстрее, чем lftp.Как ни странно, это даже верно, даже когда я выполняю lftp с get, вот так:

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

Я понимаю, что загрузка файла через несколько соединений не всегда приводит к ускорению, в зависимости от того, как ограничена пропускная способность,Но: почему это будет медленнее?Особенно при вызове lftp / pget с -n 1?

1 Ответ

1 голос
/ 04 мая 2010

Возможно ли, что HTTP-сервер сжимает поток с помощью gzip? Я не помню, обрабатывает ли wget gzip Content Encoding или нет Если это так, то это может объяснить повышение производительности. Другая возможность заключается в том, что где-то в конвейере находится HTTP-кеш. Вы можете попробовать что-то вроде

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

и сравните это со временем передачи по FTP.

...