Скорость копирования по сети
Скорость копирования по сети
Вопрос - 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 достаточно оптимальны - все другие программы копируют быстро и стабильно.
Стабильная скорость копирования с сервера 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: Исправлен заголовок Темы
Reason: Исправлен заголовок Темы
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: ...но скорость копирования по сети?
Надо:
procmon TotalCommander-а во время копирования (секунд 30 скажем)
procmon Far-а во время копирования (секунд 30 скажем)
и проверь ради интереса BackgroundCopy плагин.
procmon TotalCommander-а во время копирования (секунд 30 скажем)
procmon Far-а во время копирования (секунд 30 скажем)
и проверь ради интереса BackgroundCopy плагин.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: ...но скорость копирования по сети?
"Встроенных копировщиков FAR" как бы есть две штуки - самопальный и системный. Какой используется?
Да, и ещё:
скорость копирования - это ещё и размер данных / время копирования, измеренное секундомером.
А то мало ли, может у нас индикатор шалит. Или у них.
Да, и ещё:
скорость копирования - это ещё и размер данных / время копирования, измеренное секундомером.
А то мало ли, может у нас индикатор шалит. Или у них.
Скорость копирования: FARуступает TC
Пользуюсь 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 ?
Теперь по ситуации подробно
сеть у нас исправна и показывает вполне нормальные скорости
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: Спрятаны высокие снимки экрана
Reason: Спрятаны высокие снимки экрана
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
Re: Скорость копирования по сети
тык, в фаре функция копирования вообще тихий ужас (если смотреть сорцы )
Re: Скорость копирования по сети
Провел сравнения - три версии FARа и TC
копируется в nul один и тот же файл с самбы. файл в кеше сервера.
клиентская машина win7 32x
что примечательно 1.70 быстрее всех
копируется в nul один и тот же файл с самбы. файл в кеше сервера.
клиентская машина win7 32x
что примечательно 1.70 быстрее всех
Last edited by Nagisa on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятаны высокие снимки экрана
Reason: Спрятаны высокие снимки экрана
Re: Скорость копирования по сети
Теперь тоже самое но с сервером S2
и опять среди FARов самый шустрый 1.70
и опять среди FARов самый шустрый 1.70
Last edited by Nagisa on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан высокий снимок экрана
Reason: Спрятан высокий снимок экрана
Re: Скорость копирования по сети
покрутил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
Re: Скорость копирования по сети
беглое изучение обмена сниффером, выявило отличие:
ТС cтабильно посылает запросы пакетами по 8шт и в каждом запрашивая 32КБ
FAR (что 1.70 что 3.0) же запрашивает последовательно, при этом каждый раз меняя размер запроса - 8192 затем 61440, 32768,36864 итд
что видимо и обуславливает нестабильность скорости передачи данных
FAR 3.0 иногда посылает запросы парами, но вне какой-то системы: 32768 и 61440
ТС cтабильно посылает запросы пакетами по 8шт и в каждом запрашивая 32КБ
FAR (что 1.70 что 3.0) же запрашивает последовательно, при этом каждый раз меняя размер запроса - 8192 затем 61440, 32768,36864 итд
что видимо и обуславливает нестабильность скорости передачи данных
FAR 3.0 иногда посылает запросы парами, но вне какой-то системы: 32768 и 61440
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Скорость копирования по сети
Как оказалось, при копировании в nul фар не использует системную функцию копирования, поэтому во всех случаях вы тестировали встроенный велосипед.включение/выключение опции использовать системнуюю процедуру копирования в FARе погоды не делает
Думаю, это можно и нужно исправить, а пока что могу посоветовать копировать не в nul.
Re: Скорость копирования по сети
okDrKnS wrote:Как оказалось, при копировании в nul фар не использует системную функцию копирования, поэтому во всех случаях вы тестировали встроенный велосипед.включение/выключение опции использовать системнуюю процедуру копирования в FARе погоды не делает
Думаю, это можно и нужно исправить, а пока что могу посоветовать копировать не в nul.
проверил, да, если копировать на диск скорости отличаются, причем существенно в пользу собственной процедуры копирования, и в пользу версии 1.70 (те 3.0 и тут медленней)
в итоге проблема актуальна ибо FAR уступает в скорости более чем в 2 раза (FAR с диска около 25-27МБ/c, TC - 70-75МБ/c) при работе с Win2003
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Скорость копирования по сети
В 3806 можно будет использовать системную функцию для копирования в nul.
Попробуйте поставить размер буфера 32 К (для несистемной функции копирования в 3806 и выше).
Попробуйте, как выше советовали, взять Process Monitor и записать логи где-то в середине копирования, секунд на 30.
Вот это как-то вообще дико выглядит. Far в цикле делает ReadFile по 64 К. Такое впечатление, что ОС по 64 К не может и дробит эти запросы как попало.FAR (что 1.70 что 3.0) же запрашивает последовательно, при этом каждый раз меняя размер запроса - 8192 затем 61440, 32768,36864 итд
что видимо и обуславливает нестабильность скорости передачи данных
FAR 3.0 иногда посылает запросы парами, но вне какой-то системы: 32768 и 61440
Попробуйте поставить размер буфера 32 К (для несистемной функции копирования в 3806 и выше).
Попробуйте, как выше советовали, взять Process Monitor и записать логи где-то в середине копирования, секунд на 30.
Re: Скорость копирования по сети
установка буфера в 32КБ ситуацию с пакетами не изменило.
Process monitor показывает чтение файла блоками по 64КБ - что 1.70 что 3.0
TC запрашивает блоками по 32КБ
Логи записал
что 3800 что 3806 игнорируют HKEY_CURRENT_USER\Software\Far\System\CopyBufferSize
и все равно запрашивают по 64КБ
на клиенте TcpWindowSize=128КБ
на сервере 1МБ (пробовал и 128КБ - все едино)
а снифер видит это:
Process monitor показывает чтение файла блоками по 64КБ - что 1.70 что 3.0
TC запрашивает блоками по 32КБ
Логи записал
что 3800 что 3806 игнорируют HKEY_CURRENT_USER\Software\Far\System\CopyBufferSize
и все равно запрашивают по 64КБ
на клиенте TcpWindowSize=128КБ
на сервере 1МБ (пробовал и 128КБ - все едино)
а снифер видит это: