Скорость копирования по сети

Хотите говорить о Far и не знаете, куда обратиться?
jiri
Posts: 24
Joined: Fri 29 Apr, 2005 00:45

Скорость копирования по сети

Post by jiri » Tue 26 Apr, 2011 10:14

Вопрос - Far Manager, version 2.0 (build 1807) x86. Гигабитная сеть, Samba 3.xx
Стабильная скорость копирования с сервера Total Commander встроенными средствами 115000 kb/s и разброс около полупроцента.
Встроенный копировщик FAR - "лихорадит" на 20% минимум, от 70 до 90 M/sec. FileCopyEx - стабильно копирует 55-60M/sec. И это, если мне память не изменяет, тянется со времен 1.70. Может, что-то можно подправить где-нибудь в чем-нибудь?
Копируется большой (8G) файл с сетевой шары в null.
Опции samba достаточно оптимальны - все другие программы копируют быстро и стабильно.
Last edited by HaRT on Wed 12 Feb, 2014 11:37, edited 1 time in total.
Reason: Исправлен заголовок Темы

User avatar
t-rex
Страшный и ужасный
Posts: 4901
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Contact:

Re: ...но скорость копирования по сети?

Post by t-rex » Wed 27 Apr, 2011 17:17

Надо:
procmon TotalCommander-а во время копирования (секунд 30 скажем)
procmon Far-а во время копирования (секунд 30 скажем)
и проверь ради интереса BackgroundCopy плагин.

User avatar
DrKnS
Posts: 5219
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 198 times

Re: ...но скорость копирования по сети?

Post by DrKnS » Wed 27 Apr, 2011 17:40

"Встроенных копировщиков FAR" как бы есть две штуки - самопальный и системный. Какой используется?

Да, и ещё:
скорость копирования - это ещё и размер данных / время копирования, измеренное секундомером.

А то мало ли, может у нас индикатор шалит. Или у них.

Nagisa
Posts: 10
Joined: Wed 12 Feb, 2014 02:56

Скорость копирования: FARуступает TC

Post by Nagisa » Wed 12 Feb, 2014 03:39

Пользуюсь FARом с 96ого года и всегда считал его законодателем качества и надежности. Однако столкнулся с ситуацией, когда FAR серьезно проигрывает конкуренту - ТС.

Теперь по ситуации подробно

сеть у нас исправна и показывает вполне нормальные скорости
iperf дает 943/940Mbit с первым сервером (далее S1) и 929/923 со вторым (далее S2), что тоже хороший результат.

cервером S1 выступает относительно шустрая линукс-машинка с самбой
клиентская машинка с W7
копируем файл (файл в кеше дабы идеализировать ситуацию), в nul, но разными средсвами:
1. FAR
2. TC
3. системная команда COPY
те мы имеем уверенную скорость копирования в 113МБ в секунду (~925Mbit) на ТС и COPY и в районе 95 в FARе

смотрим на график загрузки сети:
все подтверждается

сервер S2 на Windows 2003
тут ситуация хуже:

в случае если файл с дисков то и возникает вопрос почему так ?
усугубляется она тем, что не только FAR, но и другие программы получают данные также медленно,
хотя в принципе можно и быстрее и TC тому пример.

Так как в самбе есть что "подкрутить" то провел небольшое исследование: в пределах того же копирования с линукса на win7
изменяя размеры SO_RCVBUF и SO_SNDBUF, выяснил, что поведение FARа и ТС отличается:
FAR прекрасно работает на любом приемном буфере(SO_RCVBUF) от 128байт и больше,
тогда как TC требует не менее 4096 байт - иначе начинается "пила" и он начинает явно уступать FARу.
Соответственно рождается предположение - запросы TC "пакетные", что обуславливает его большую скорость, тогда как FAR и остальное ПО ведут обмен синхронно или как минимум маленькими пакетами.
Размер буфера отправки(SO_SNDBUF) явно определяет скорость передачи данных - при 128байтах она в районе ~28МБ, и ~95МБ при буфере в 16КБ.(скорость в FAR)

* включение/выключение опции использовать системнуюю процедуру копирования в FARе погоды не делает, равно как версия FARa (1.7x или 2.x)
* дуплекс в сети тоже прекрасно работает - те скорость транзитного копирования между 2мя никсами держится в райне 100-110МБ/c

Итого возникли следующие вопросы:
1. Почему так ?
2. Что сделать с FAR чтобы он не уступал TC ?
Last edited by Nagisa on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятаны высокие снимки экрана

User avatar
DrKnS
Posts: 5219
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 198 times

Re: Скорость копирования: FARуступает TC

Post by DrKnS » Wed 12 Feb, 2014 10:44

Nagisa wrote: версия FARa (1.7x или 2.x)
Версии 1.х и 2.х не поддерживаются.
Без результатов 3.0 эти сравнения бессмысленны.

User avatar
Alexey Samlyukov
Posts: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 2 times
Contact:

Re: Скорость копирования по сети

Post by Alexey Samlyukov » Wed 12 Feb, 2014 14:57

тык, в фаре функция копирования вообще тихий ужас (если смотреть сорцы :))

Nagisa
Posts: 10
Joined: Wed 12 Feb, 2014 02:56

Re: Скорость копирования по сети

Post by Nagisa » Wed 12 Feb, 2014 15:02

Провел сравнения - три версии FARа и TC
копируется в nul один и тот же файл с самбы. файл в кеше сервера.
клиентская машина win7 32x





что примечательно 1.70 быстрее всех
Last edited by Nagisa on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятаны высокие снимки экрана

User avatar
DrKnS
Posts: 5219
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 198 times

Re: Скорость копирования по сети

Post by DrKnS » Wed 12 Feb, 2014 15:13

Попробуйте изменить значение system.copybuffersize.

Nagisa
Posts: 10
Joined: Wed 12 Feb, 2014 02:56

Re: Скорость копирования по сети

Post by Nagisa » Wed 12 Feb, 2014 15:15

Теперь тоже самое но с сервером S2


и опять среди FARов самый шустрый 1.70
Last edited by Nagisa on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан высокий снимок экрана

Nagisa
Posts: 10
Joined: Wed 12 Feb, 2014 02:56

Re: Скорость копирования по сети

Post by Nagisa » Wed 12 Feb, 2014 15:27

DrKnS wrote:Попробуйте изменить значение system.copybuffersize.
покрутил
HKEY_CURRENT_USER\Software\Far\System\CopyBufferSize
при 0 скорость 25МБ/c
64КБ - 36МБ/c
1МБ - 36МБ/c
16МБ - 36МБ/c

тогда как TC дает среднюю 90МБ/c

Nagisa
Posts: 10
Joined: Wed 12 Feb, 2014 02:56

Re: Скорость копирования по сети

Post by Nagisa » Thu 13 Feb, 2014 15:15

беглое изучение обмена сниффером, выявило отличие:
ТС cтабильно посылает запросы пакетами по 8шт и в каждом запрашивая 32КБ
FAR (что 1.70 что 3.0) же запрашивает последовательно, при этом каждый раз меняя размер запроса - 8192 затем 61440, 32768,36864 итд
что видимо и обуславливает нестабильность скорости передачи данных
FAR 3.0 иногда посылает запросы парами, но вне какой-то системы: 32768 и 61440

User avatar
DrKnS
Posts: 5219
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 198 times

Re: Скорость копирования по сети

Post by DrKnS » Thu 13 Feb, 2014 16:24

включение/выключение опции использовать системнуюю процедуру копирования в FARе погоды не делает
Как оказалось, при копировании в nul фар не использует системную функцию копирования, поэтому во всех случаях вы тестировали встроенный велосипед.
Думаю, это можно и нужно исправить, а пока что могу посоветовать копировать не в nul.

Nagisa
Posts: 10
Joined: Wed 12 Feb, 2014 02:56

Re: Скорость копирования по сети

Post by Nagisa » Thu 13 Feb, 2014 16:47

DrKnS wrote:
включение/выключение опции использовать системнуюю процедуру копирования в FARе погоды не делает
Как оказалось, при копировании в nul фар не использует системную функцию копирования, поэтому во всех случаях вы тестировали встроенный велосипед.
Думаю, это можно и нужно исправить, а пока что могу посоветовать копировать не в nul.
ok
проверил, да, если копировать на диск скорости отличаются, причем существенно в пользу собственной процедуры копирования, и в пользу версии 1.70 (те 3.0 и тут медленней)

в итоге проблема актуальна ибо FAR уступает в скорости более чем в 2 раза (FAR с диска около 25-27МБ/c, TC - 70-75МБ/c) при работе с Win2003

User avatar
DrKnS
Posts: 5219
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 198 times

Re: Скорость копирования по сети

Post by DrKnS » Thu 13 Feb, 2014 20:13

В 3806 можно будет использовать системную функцию для копирования в nul.
FAR (что 1.70 что 3.0) же запрашивает последовательно, при этом каждый раз меняя размер запроса - 8192 затем 61440, 32768,36864 итд
что видимо и обуславливает нестабильность скорости передачи данных
FAR 3.0 иногда посылает запросы парами, но вне какой-то системы: 32768 и 61440
Вот это как-то вообще дико выглядит. Far в цикле делает ReadFile по 64 К. Такое впечатление, что ОС по 64 К не может и дробит эти запросы как попало.
Попробуйте поставить размер буфера 32 К (для несистемной функции копирования в 3806 и выше).
Попробуйте, как выше советовали, взять Process Monitor и записать логи где-то в середине копирования, секунд на 30.

Nagisa
Posts: 10
Joined: Wed 12 Feb, 2014 02:56

Re: Скорость копирования по сети

Post by Nagisa » Fri 14 Feb, 2014 16:20

установка буфера в 32КБ ситуацию с пакетами не изменило.

Process monitor показывает чтение файла блоками по 64КБ - что 1.70 что 3.0
TC запрашивает блоками по 32КБ
Логи записал
что 3800 что 3806 игнорируют HKEY_CURRENT_USER\Software\Far\System\CopyBufferSize
и все равно запрашивают по 64КБ

на клиенте TcpWindowSize=128КБ
на сервере 1МБ (пробовал и 128КБ - все едино)

а снифер видит это:
Image

User avatar
DrKnS
Posts: 5219
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 198 times

Re: Скорость копирования по сети

Post by DrKnS » Fri 14 Feb, 2014 16:29

Nagisa wrote:установка буфера в 32КБ ситуацию с пакетами не изменило.

Process monitor показывает чтение файла блоками по 64КБ - что 1.70 что 3.0
TC запрашивает блоками по 32КБ
Логи записал
что 3800 что 3806 игнорируют HKEY_CURRENT_USER\Software\Far\System\CopyBufferSize
и все равно запрашивают по 64КБ
1.
для несистемной функции копирования в 3806 и выше
2. 3.0 не использует реестр, изменять надо через far:config.

Post Reply

Return to “Обсуждение Far Manager”