![Может ли быть какая-либо разница в скорости выполнения простой команды «копирования» большого (2 ГБ) файла между локальным выполнением и выполнением по SSH?](https://rvso.com/image/1402621/%D0%9C%D0%BE%D0%B6%D0%B5%D1%82%20%D0%BB%D0%B8%20%D0%B1%D1%8B%D1%82%D1%8C%20%D0%BA%D0%B0%D0%BA%D0%B0%D1%8F-%D0%BB%D0%B8%D0%B1%D0%BE%20%D1%80%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0%20%D0%B2%20%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D0%B8%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B%20%C2%AB%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%C2%BB%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B3%D0%BE%20(2%20%D0%93%D0%91)%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83%20%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D0%B8%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D0%BF%D0%BE%20SSH%3F.png)
Пример сценария:
-Линуксмашина (я думаю, операционная система не беспокоится).
-OpenSSH-сервер.
-Исходный большой файлна жестком диске, около 2 ГБ (я думаю, SSD или классический HD тоже не помешают).
- Место назначения для файла: a (умеренно быстрый 2.0)USB-флешка(Я думаю, что 3.0 или даже 1.0 тоже не помешали бы).
Я собираюсь заказать простое:
cp MyBigFile.iso /media/pendrive
Флешка подключена к той же машине.
Два случая:
- Локальная оболочка(Я сижу на машине и делаю
cp
) заказанный экземпляр большого файла. - SSH-оболочка(Я захожу на другой компьютер в той же локальной сети и вхожу через SSH-клиент) удаленно заказал копию большого файла.
Имеет ли смысл ожидать какой-либо разницы в скорости? Почему?
Я думаю, что на самом деле, когда копия включает в себямного маленьких файлов, связь (для оболочки SSH) между сервером и клиентом может добавить много небольших задержек (не стесняйтесь поправлять эту логику, если считаете, что я не прав), но я не уверен насчет больших задержек.
(Не стесняйтесь высказывать свое мнение о моем"не беспокоит"(Тоже сценарии выше.)
решение1
Когда вы подключаетесь к машине по ssh и запускаете cp fromFile toFile
, эта копия полностью выполняется на удаленной машине. Она не взаимодействует по ssh для копирования. Фактически, без каких-либо аргументов cp даже не будет сообщать о ходе выполнения в сеансе ssh, она только завершится, а затем вы увидите приглашение.
Если вы копируете много маленьких файлов и используете cp -v
, cp будет печатать имя каждого файла по мере его копирования. Печать имени вызовет связь по соединению ssh. Возможно, что если у вас медленное соединение, команда cp будет печатать имена файлов быстрее, чем ssh может передать их по сети, и кажется возможным, что после печати достаточного количества имен файлов cp может заблокировать попытку записи в stdout.
Я никогда не видел, чтобы это происходило, и скорость диска всегда была ограничивающим фактором, но я думаю, что теоретически это возможно.