Почему scp не показывает истинную скорость загрузки?

Вы не можете объединить символы после -type (если у Вас нет другой находки, чем я имею). Необходимо сделать что-то как:

 find .  \( -type f -o -type d \) -name "somefile"

В моей системе:

 $ find .  -type fd -name "somefile"
 find: Arguments to -type should contain only one letter

Это обменивается сообщениями, прибывает из функции insert_type() в строке 2601 в findutils-4.4.2 find/parser.c. Это просто берет первый символ, более старые/другие версии find сделал IIRC, даже не предупреждают, если было несколько символов после -type.

2
30.03.2015, 16:59
1 ответ

SCP измеряет скорость, которую данные проходят через .

В основном SCP считывает некоторые данные с диска и передают его через трубу в SSH . В ядре есть трубный буфер, хотя это довольно мало. Затем SSH шифрует его и передает его на ядро, чтобы отправить через сеть. Этот буфер может быть довольно большим.

Все буферизация довольно прозрачна для приложения; Это просто делает как Написать Призыв к трубе или розетке. Ядро принимает данные и не указывает на приложение, если его сидеть в буфере или фактически отправлено и подтверждено удаленной стороной. Существуют способы приложения, но это было сложно для SCP , как SSH на самом деле обрабатывает сокет.

То, что вы видите, так это то, что первоначальное заполнение всех буферов (в основном в буфере TCP) происходит быстро-и SCP отображается, что в качестве его скорости передачи. В следующем конце SCP заканчивает чтение файла, отправляет его на SSH через трубу и ждет SSH для завершения. SSH видит, что SCP выполняется отправка, и ждет ядра, чтобы завершить промывку буфера TCP. Это пауза в конце.

Я думаю, что только два решения (кроме «игнорируют его»), должны получить более быструю ссылку или понизить размер буфера отправки TCP.

3
27.01.2020, 22:05

Теги

Похожие вопросы