Как FTP, FTPS, SFTP и SCP сравниваются с точки зрения скорости передачи и как я могу сравнить их с помощью тестирования?
Если у вас есть быстрая глобальная сеть, вы обнаружите, что sftp
и scp
имеют примерно одинаковую скорость, а это медленно. Они оба страдают от проблем с производительностью в основном openssh. На современном оборудовании это происходит не из-за накладных расходов на шифрование, а из-за проблем с реализацией openssh - он реализует собственный внутренний механизм работы с окнами, который не работает при быстрых соединениях.
Эти проблемы становятся более очевидными при подключении на большие расстояния (с более высокой задержкой), но я заметил медлительность даже в локальных сетях.
Они хорошо документированы, и доступны исправления для решения проблемы. Исправление любого конца соединения может помочь; в идеале вы должны исправить оба конца. Для получения дополнительной информации и исправлений см. Высокопроизводительный SSH в Питтсбургском суперкомпьютерном центре.
Кстати, накладные расходы на шифрование тоже могут стать проблемой, как только проблема с окнами будет решена. В патчах есть исправления и для этого.
Между тем вы обнаружите, что ftp
ужасно небезопасен; он отправляет пароли в виде обычного текста.
ftps
Думаю оборачивает протокол ftp в SSL. это, вероятно, быстрее, чем непропатченный SFTP / SCP.
И последнее замечание: по моему опыту, клиент WinSCP (по крайней мере, иногда) очень медленный. Я не знаю почему, но судя по их часто задаваемым вопросам, я не единственный, у кого была эта проблема. Так что, если вы используете scp из Windows, и это кажется медленным, попробуйте другой клиент. Даже с непропатченным сервером openssh вы можете сделать намного лучше с другим клиентом. К сожалению, я не уверен, какие клиенты являются хорошими.
В целом все протоколы работают примерно одинаково. Вы, скорее всего, будете ограничены скоростью вашей сети или диска, чем протоколом.
В более старых версиях OpenSSH (SFTP / SCP) использовался фиксированный размер окна, который ограничивал скорость в сетях с высокой задержкой (например, трансатлантических). Для решения этой проблемы существует набор исправлений под названием HPN (высокопроизводительная сеть), который включен в большинство современных установок OpenSSH.
Если вы столкнулись с такой ситуацией, как гигабитный или более быстрый канал LAN и более медленный процессор, тогда SFTP / SCP может стать узким местом. Вы сможете сказать, потому что процесс ssh / scp / sftp будет использовать 100% процессора на отправляющем или принимающем хостинге. Если вы используете более новую версию OpenSSH (6.4+), вы можете включить поточную версию шифра AES, которая сможет использовать более 1 ядра для обработки шифрования и будет с меньшей вероятностью ограничиваться ЦП, а не диском. или пропускная способность сети.
Если вы контролируете как отправляющую, так и принимающую сторону, OpenSSH 6+ также имеет дополнительный режим «НЕШИФРОВАНИЕ». Он использует обычное шифрование / ключи и т. Д. Для входа на удаленный компьютер, но затем переходит на незашифрованное соединение для фактического копирования файлов. Это устранит накладные расходы на ЦП. В NONECIPHER есть встроенные меры безопасности, которые не позволяют вам получить незашифрованную оболочку.
В конце концов, протокол не должен быть ограничением по скорости, хотя в старых версиях ssh есть проблемы с ссылками с высокой задержкой.
Основываясь на накладных расходах на шифрование, я бы сказал, что простой FTP, вероятно, имеет немного лучшую производительность, чем другие протоколы, но, вероятно, она незначительна. Я бы сначала использовал протокол, который обеспечивает необходимую вам безопасность, а затем беспокоился бы о пропускной способности.
При этом вам нужно будет настроить тест, чтобы найти реальные числа. Все вышесказанное - только мое мнение. Если вы тестируете производительность локально, настройте сервер в своей сети. Если конечное использование будет осуществляться через Интернет, проверьте с внешнего хоста.
Как всегда, Google хранит ответы,
FTP v / s SFTP v / s FTPS
Что говорит FTP> FTPS> SFTP
FTP также оказался быстрее SCP в чужом тесте (http://www.lysesoft.com/support/forums/viewtopic.php?f=5&t=542), но я бы рекомендовал попробовать это на себе, чтобы убедиться.
Так что просто настройте SCP и FTP в любом произвольном ящике в вашей сети, затем запустите обычную передачу файлов и посмотрите, сколько времени займет оба.