Недавно мы получили новый Интернет - оптоволокно 100 Мбит / с - и горько жаловались нашему новому интернет-провайдеру на скорость передачи данных на некоторые FTP-серверы в США (на расстоянии 300 мс). В частности, на один сервер мы получали всего 1 Мбит / с. После того, как они заверили нас, что они никоим образом не ограничивают передачу.
Итак, после визита технаря, который сказал, что видел ту же проблему на другом клиенте, и показал, что практически любой международный FTP-сайт, с которого он пытался загрузить, демонстрирует аналогичные проблемы со скоростью. Он сказал, что FTP просто так: чем выше задержка, тем ниже скорость. Я никогда раньше не слышал о таком ограничении. Итак, я немного почитал.
Я узнал, что «длинные толстые трубы» нуждаются в хороших больших буферах, чтобы гарантировать плавное течение. И что не существует точного и быстрого рецепта размеров буфера.
FTP-сервер находится на Windows VPS под управлением Filezilla. - Клиент на нашей стороне - это специальное стороннее приложение, которое отслеживает сервер на предмет новых заказов, когда они завершены, загружает их и удаляет файлы с сервера.
Я не могу играть с размером буфера клиента (я спрашиваю разработчиков, но я не видел способа), но я могу настроить размер буфера в File Zilla.
Так что я сделал несколько переводов с разной скоростью и, похоже, нашел приятное место, где я могу достичь почти 7 Мбит / с. Но это все еще лишь малая часть того, что я должен был получить. https://www.dropbox.com/s/0dlwwuteq2o6txq/Screenshot%202016-03-08%2016.45.03.png?dl=0
Я посмотрел на множество таких вопросов: Filezilla FTP медленная загрузка (350 Кбит / с) на оптоволокне 1 Гбит? и https://stackoverflow.com/questions/30847433/very-slow-ftp-download в основном все говорят: «Размер буфера, размер буфера, размер буфера». Но, конечно, я должен получить лучше, чем 7 Мб / с.
Итак, вот вопросы:
Если я не доверяю интернет-провайдеру и считаю, что моя линия формируется, как я могу это доказать?
FileZilla имеет «внутренний буфер», который ограничен 6 цифрами, и «буфер сокета», который может увеличиваться. Как эти двое работают вместе, я обнаружил, что лучше всего иметь внутреннюю половину сокета, но есть ли другие конфигурации, которые я должен попробовать?
Должны ли размеры буфера быть квадратами по 8 (32768, 65536, 131072 и т. Д.), Или я могу использовать другие числа между ними?
3b. Мой лучший случай, который я нашел, - это 262144 (сокет) и 131072 (внутренний) - следует ли мне начинать тестирование с меньшими приращениями?
Спасибо Стивен
Итак, из того, что я почерпнул из «продукта задержки полосы пропускания» Майкла Хэмптона, эта «длинная толстая труба» не даст нужных нам характеристик. Мы можем либо приблизить FTP, либо использовать более эффективный метод передачи файлов, который не является «назад и вперед».
Поскольку существуют и другие проблемы клиентского программного обеспечения, связанные с неиспользованием FTP, мы решили приблизить сервер. Я получаю местный VPS - вдвое дороже за половину спецификации, но всего в 2 мс, а скорость передачи прекрасна.
Альтернативный вариант - установить Dropbox на сервер и синхронизировать его с локальной папкой. Это бы значительно ускорило процесс. Но из-за других требований / ограничений программного обеспечения и рабочего процесса это не подходящее решение.
Попробуйте использовать последнюю версию FTP-сервера FileZilla. 0.9.59. Эта версия значительно увеличила пропускную способность сети для меня (в 10 раз) по какой-то причине. Я думаю, что изменения в версии 0.9.58 действительно помогли:
0.9.58 (2016-08-11) Новые возможности:
Автоматическая настройка буфера отправки TCP Улучшение производительности для снижения использования ЦП при высокой нагрузке Отключены шифры IDEA и SEED для FTP через TLS