forum.wfido.ru

forum.wfido.ru (http://forum.wfido.ru/index.php)
-   RU.ARGUS (http://forum.wfido.ru/forumdisplay.php?f=55)
-   -   Низкая скорость отправки большого количества мелких файлов (http://forum.wfido.ru/showthread.php?t=10593)

Alexey Korotkov 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Alexey Korotkov написал(а) к All в Feb 16 23:29:30 по местному времени:

Привет All!

Проблема: медленно передаются радиусом мелкие файлы.
Если взять binkd и через него залить файлы на radius - то скорость исчисляется сотнями файлов в секунду.
Если взять radius и через него заливать файлы на radius - то получается в среднем около 5-7 файлов в секунду. Если свернуть окно radius-а и при этом удачно сойдутся звезды, то может ускориться до 10-20 файлов/сек.
Вопрос: что такого умеет binkd, чего не умеет радиус? Как заставить радиус работать также быстро, как binkd ? (radius<=>radius).

На досуге пытался найти в исходниках что же тормозит процесс отправки, и нашел, что происходит задержка около 200 мс при вызове WSAGetOverlappedResult. Пошел в интернет и прочитал про параметр реестра TcpAckFrequency (НKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{интерфейс}). Попробовал - помогло. Но этот параметр нужно менять как минимум на стороне, на которую передаются файлы, чего делать крайне не хотелось бы. Тем более, что binkd работает без проблем и без изменения сетевых настроек ОС. Хотелось бы выставить какой-нибудь флаг/ограничение, и чтобы стало все быстро и красиво. Возможно такое?

Radius 4.010/январь 2005, binkd-mingw/1.0.1/w32, виртуалки win2003.

Alexey
--- GoldED+/W32 1.1.5-021109

Vladimir Bakhvaloff 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Vladimir Bakhvaloff написал(а) к Alexey Korotkov в Feb 16 00:10:41 по местному времени:

А чегой-та у нас гpаф Korotkov-Рымникский все жpёт?..

Отвечая на письмо Alexey Korotkov => All [Вс 21 Фев 16]:

AK> Radius 4.010/январь 2005, binkd-mingw/1.0.1/w32, виртуалки win2003.

Для начала - не мучать виртуалки...
Для продолжения - взять Тау по-новее...

С выражением глубокого почтения - Vladimir...
> ------------------------------------------------------------
[i] Windows 7 Ultimate x86 [version 6.1.7601] Service Pack 1 [/i]
[i] Taurus v.5.114.2013.19/Autumn/FastMM 4.991/DEBUG [/i]
--- System uptime is: 11:05:15.700 (max. - 27 day(s) 6:38:31.123)

Oleg Redut 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Oleg Redut написал(а) к Vladimir Bakhvaloff в Feb 16 12:14:46 по местному времени:

Доброе (current) время суток, Vladimir!

VB> Для начала - не мучать виртуалки...
VB> Для продолжения - взять Тау по-новее...

А что у нас считается более новее?
У меня
Taurus v.5.112.2009.64/Winter/FastMM 4.94/DEBUG
При штатном выходе: меню -> Exit вылетает

=== Вырезка из филе Windows Clipboard ===
---------------------------2016/2/22 12:13:40-----------------------
FastMM обнаружил попытку вызвать виртуальный метод освобожденного объекта. Сейчас будет вызвано нарушение доступа для прерывания текущей операции.

Класс освобожденного объекта: TCronThreadLogger

Виртуальный метод: Destroy

Адрес виртуального метода: 404A30

Выделенный номер был: 9278

The object was allocated by thread 0xD60, and the stack trace (return addresses) at the time was:
402E60 [system.pas][System][@GetMem][2439]
=== Кончилась врезка ===

Последующие тестовые сборки, помнится, так и не заработали, затыкаясь на множественных входящих и не закрывающихся сессиях.

Что я могу еще сказать?..
Oleg

... AKA oleg(&)redut.info AKA ICQ 28852595
--- GoldED+/W32-MINGW 1.1.5-b20120515 (пока работает)

Alexey Korotkov 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Alexey Korotkov написал(а) к Vladimir Bakhvaloff в Feb 16 19:52:40 по местному времени:

Привет Vladimir!

22-Фев-2016 00:10, Vladimir Bakhvaloff -> Alexey Korotkov:

AK>> Radius 4.010/январь 2005, binkd-mingw/1.0.1/w32, виртуалки
AK>> win2003.

VB> Для начала - не мучать виртуалки...
Вы, видимо, просто не умеете их готовить.

VB> Для продолжения - взять Тау по-новее...
Взял Tau.140708.1709.7z, начал сессию, файлы полились (вроде как даже не быстрей чем у радиуса). При попытке открыть вкладку tcp/ip1 таурус успешно падает практически сразу. Попробовал еще раз - результат тот же. На второй виртуалке те же яйца. Искать работоспособный турус желания нет, т.к. сложилось впечатление что изменение кода после радиуса 2005 года (грубо говоря) было не в пользу качества, а в сторону новых непонятных мне фитч.

PS Есть какой-нибудь курс молодого бойца по исходникам радиуса? Так чтобы не (проф.) программист разобрался.

Alexey
--- GoldED+/W32 1.1.5-021109

Vladimir Bakhvaloff 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Vladimir Bakhvaloff написал(а) к Alexey Korotkov в Feb 16 18:23:44 по местному времени:

Удачной охоты, Alexey! (Кстати, а как пpошла пpедыдущая?)

Отвечая на письмо Alexey Korotkov => Vladimir Bakhvaloff [Пн 22 Фев 16]:

AK>>> Radius 4.010/январь 2005, binkd-mingw/1.0.1/w32, виртуалки
AK>>> win2003.
VB>> Для начала - не мучать виртуалки...
AK> Вы, видимо, просто не умеете их готовить.

Вполне...
Ни VMWare, ни VirtualBox, ни VirtualPC у меня не вызвали особой радости на Core2Duo с 4Гб мозгу... :-D

VB>> Для продолжения - взять Тау по-новее...
AK> Взял Tau.140708.1709.7z, начал сессию, файлы полились (вроде как
AK> даже не быстрей чем у радиуса). При попытке открыть вкладку tcp/ip1
AK> таурус успешно падает практически сразу.

Вот сколько ни пытался повторить, ну ни разу такого не было... :-(

AK> изменение кода после радиуса 2005 года (грубо говоря) было не в пользу
AK> качества, а в сторону новых непонятных мне фитч.

Были какие-то изменения и даже парочку каких-то падений даже вылечил... ;-)
Ну, попробуй взять [url]http://bakhvaloff.ru/Download/Taurus/Tau.160223.1842.7z[/url]
В каталоге WODebug - без дебаговой информации, должно жить полегче...

AK> PS Есть какой-нибудь курс молодого бойца по исходникам радиуса? Так
AK> чтобы не (проф.) программист разобрался.

Сомневаюсь, что такой "ликбез" тебе кто-то сможет провести... :-D
Над тем, что есть сейчас работали, как минимум 6 человек... Причём с совершенно разными подходами...

С выражением глубокого почтения - Vladimir...
> ------------------------------------------------------------
[i] Windows 7 Ultimate x86 [version 6.1.7601] Service Pack 1 [/i]
[i] Taurus v.5.114.2013.19/Autumn/FastMM 4.991/DEBUG [/i]
--- System uptime is: 23:59:49.564 (max. - 27 day(s) 6:38:31.123)

Vladimir Bakhvaloff 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Vladimir Bakhvaloff написал(а) к Alexey Korotkov в Feb 16 19:07:18 по местному времени:

Удачной охоты, Alexey! (Кстати, а как пpошла пpедыдущая?)

Однажды, Вт 23 Фев 16 в 18:23:44, Vladimir Bakhvaloff
написал Alexey Korotkov, и я добавил:

VB> Ну, попробуй взять
VB> [url]http://bakhvaloff.ru/Download/Taurus/Tau.160223.1842.7z[/url]

Заодно можешь поискать "конкурентов" - TrapGate на sf.net...

Да и хватит пока... Vladimir.
> ------------------------------------------------------------
[i] Windows 7 Ultimate x86 [version 6.1.7601] Service Pack 1 [/i]
[i] Taurus v.5.114.2013.19/Winter/FastMM 4.991/DEBUG [/i]
--- System uptime is: 0:12:55.889 (max. - 27 day(s) 6:38:31.123)

Alexey Korotkov 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Alexey Korotkov написал(а) к Vladimir Bakhvaloff в Feb 16 22:25:06 по местному времени:

Привет Vladimir!

23-Фев-2016 18:23, Vladimir Bakhvaloff -> Alexey Korotkov:

VB> Ни VMWare, ни VirtualBox, ни VirtualPC у меня не вызвали особой
VB> радости на Core2Duo с 4Гб мозгу... :-D
На домашнем ESXi 5.1 xeon e3-1240@3,4GНz и 32GB RAM при условии прямого софта и отсутствия излишней дисковой активности никаких проблем не испытываю ;-)

VB> Вот сколько ни пытался повторить, ну ни разу такого не было... :-(
похоже что валится тот экземпляр, который отправляет.

VB> Ну, попробуй взять
VB> [url]http://bakhvaloff.ru/Download/Taurus/Tau.160223.1842.7z[/url]
VB> В каталоге WODebug - без дебаговой информации, должно жить
VB> полегче...
Даже с tcpackfrequency=1 что-то затыкается как будто этого параметра нет.
Для сравнения:
Чуток тюнингованный радиус (такая же версия отдает файлы)
23-Feb-2016 19:53:46 CONNECT To 192.168.0.212 #24554 (1:2/3)
23-Feb-2016 19:53:51 Disconnect from 192.168.0.212 - Complete (1:2/3) IN: 900 (11,700b) OUT: 0 (0b)
Данный таурус:
23-Feb-2016 20:21:09 CONNECT To 192.168.0.212 #24554 (1:2/3)
23-Feb-2016 20:22:20 Disconnect from 192.168.0.212 - Complete (1:2/3) IN: 900 (11,700b) OUT: 0 (0b)

VB> Сомневаюсь, что такой "ликбез" тебе кто-то сможет провести... :-D
VB> Над тем, что есть сейчас работали, как минимум 6 человек... Причём
VB> с совершенно разными подходами...
Оптимистичненько.... :-(

Пока что с помощью тюнинга реестра добился быстрой отдачи на сторону, где внесены изменения в реестр. Не густо, но хоть что-то. Проявилсь другая проблема: нелинейно возрастает загрузка процессора радиусом при увеличении количества отдаваемых файлов, достигая нездоровых значений (на стороне, которая передает файлы). Например, при количестве файлов 900 загрузка ядра процессора отдающей файлы стороны грубо говоря 0,6 клетки диспетчера задач, 1500- 2 клетки, 3000 - уже 14,5 клеток.
Наглядно передача 3000 файлов (с другим масштабом)
Без tcpackfrequency==1:
[url]http://pikbox.ru/img/16/20160224024321439noack_3000.jpg[/url]
С установл. tcpackfrequency==1:
[url]http://pikbox.ru/img/11/20160224025149202ack[b]3000[/b]scale2.jpg[/url]
На второй картинке примерно та же картина, только радиус не растягивает сессию на 11,5 минут, а отрабатывает за полторы, и загружает процессор по полной.
По расчетам (если принять значение средней загрузки 17%) грубо получается: 3400*0,17/4,38 = 130 МГц ядра далеко нетупого процессора нужно потратить чтобы передать за одну секунду один файл размером 13 байт. Если расчитать сколько файлов сможет передать такой процессор(ядро) за секунду с таким софтом, то получим примерно 26 файлов. Это какой-то позор! (с).
Причем, это не ограничения протокола или железа, т.к. малое количество файлов пролетает на "ура" (500 файлов передалось за 2 секунды, а при 3000 файлов скорость падает до 22-26 файлов/сек)
Может подскажете что может таким образом (см. на форму графика загрузки) тормозить процесс?


Alexey
--- GoldED+/W32 1.1.5-021109

Vladimir Bakhvaloff 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Vladimir Bakhvaloff написал(а) к Alexey Korotkov в Feb 16 22:52:55 по местному времени:

О, Благоpодная Дама Alexey!!! Или я опять пива пЕpепил?..

Отвечая на письмо Alexey Korotkov => Vladimir Bakhvaloff [Вт 23 Фев 16]:

VB>> Вот сколько ни пытался повторить, ну ни разу такого не
VB>> было... :-(
AK> похоже что валится тот экземпляр, который отправляет.

VB>> Ну, попробуй взять
VB>> [url]http://bakhvaloff.ru/Download/Taurus/Tau.160223.1842.7z[/url]
VB>> В каталоге WODebug - без дебаговой информации, должно жить
VB>> полегче...
AK> Даже с tcpackfrequency=1
^^^^^^^^^^^^^^^
А что это такое и с чем его едят?..

AK> что-то затыкается как будто этого параметра
AK> нет. Для сравнения: Чуток тюнингованный радиус (такая же версия отдает
AK> файлы)
AK> 23-Feb-2016 19:53:46 CONNECT To 192.168.0.212 #24554 (1:2/3)
AK> 23-Feb-2016 19:53:51 Disconnect from 192.168.0.212 - Complete (1:2/3)
AK> IN: 900 (11,700b) OUT: 0 (0b)
AK> Данный таурус:
AK> 23-Feb-2016 20:21:09 CONNECT To 192.168.0.212 #24554 (1:2/3)
AK> 23-Feb-2016 20:22:20 Disconnect from 192.168.0.212 - Complete (1:2/3)
AK> IN: 900 (11,700b) OUT: 0 (0b)

Лучше расскажи про "чуток тюнингованный радиус"...

VB>> Сомневаюсь, что такой "ликбез" тебе кто-то сможет провести...
VB>> :-D
VB>> Над тем, что есть сейчас работали, как минимум 6 человек...
VB>> Причём с совершенно разными подходами...
AK> Оптимистичненько.... :-(

Зато реальненько...

AK> Пока что с помощью тюнинга реестра добился быстрой отдачи на
AK> сторону, где внесены изменения в реестр. Не густо, но хоть что-то.
[ skipped ]
AK> файлов скорость падает до 22-26 файлов/сек) Может подскажете что может
AK> таким образом (см. на форму графика загрузки) тормозить процесс?

Рассчёты общих и/или частных размеров, времени, сжатия, вывод графики - что угодно...

Ладно... Пойду вешаться, Alexey... ;)
> ------------------------------------------------------------
[i] Windows 7 Ultimate x86 [version 6.1.7601] Service Pack 1 [/i]
[i] Taurus v.5.114.2013.19/Winter/FastMM 4.991/DEBUG [/i]
--- System uptime is: 3:58:31.225 (max. - 27 day(s) 6:38:31.123)

Alexey Korotkov 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Alexey Korotkov написал(а) к Vladimir Bakhvaloff в Feb 16 23:30:42 по местному времени:

Привет Vladimir!

23-Фев-2016 22:52, Vladimir Bakhvaloff -> Alexey Korotkov:

AK>> Даже с tcpackfrequency=1
VB> ^^^^^^^^^^^^^^^
VB> А что это такое и с чем его едят?..
Это ключ реестра, гугол расскажет в деталях. в кратце - система не будет ждать таймаута перед отправкой пакета подтверждения tcp-сессии (ack), то может ускорить обмен данными если удаленная система ждет ack чтобы продолжить передавать данные. актуально для ситуаций когда происходит обмен мелкими пакетами. как и везде, лекарство может навредить в некоторых случаях.

VB> Лучше расскажи про "чуток тюнингованный радиус"...
Я выкинул сканирование аутбаунда (периодическое и после окончания сессии) + убрал задерку при сканировании (вроде) файлбоксов. Зачем-то туда вставили sleep после сканирования (findnext) каждого файла, в результате чего получалась задежка при коннекте и в некоторых случаях она в итоге превышала таймаут установки сессии с логичным последующим ее (сессии) разрывом. Поделка для себя.

AK>> файлов скорость падает до 22-26 файлов/сек) Может подскажете что
AK>> может таким образом (см. на форму графика загрузки) тормозить
AK>> процесс?

VB> Рассчёты общих и/или частных размеров, времени, сжатия, вывод
VB> графики - что угодно...
Это все линейная зависимость и не требует таких ресурсов.


Alexey
--- GoldED+/W32 1.1.5-021109

Vladimir Bakhvaloff 17.08.2016 16:37

Низкая скорость отправки большого количества мелких файлов
 
Vladimir Bakhvaloff написал(а) к Alexey Korotkov в Feb 16 23:58:44 по местному времени:

Пpивет, Alexey.

Отвечая на письмо Alexey Korotkov => Vladimir Bakhvaloff [Вт 23 Фев 16]:

AK>>> Даже с tcpackfrequency=1
VB>> ^^^^^^^^^^^^^^^
VB>> А что это такое и с чем его едят?..
AK> Это ключ реестра, гугол расскажет в деталях. в кратце - система не

Тьфу, шаманские заклинания, никому практически ненужные...

VB>> Лучше расскажи про "чуток тюнингованный радиус"...
[ skipped ]
AK> Поделка для себя.

Вот никому её и не давай... ;-)

AK>>> может таким образом (см. на форму графика загрузки) тормозить
AK>>> процесс?
VB>> Рассчёты общих и/или частных размеров, времени, сжатия, вывод
VB>> графики - что угодно...
AK> Это все линейная зависимость и не требует таких ресурсов.

Значит, требует...
...
TrapGate нашёл?.. Попробовал?..

Ладно... Пойду вешаться, Alexey... ;)
> ------------------------------------------------------------
[i] Windows 7 Ultimate x86 [version 6.1.7601] Service Pack 1 [/i]
[i] Taurus v.5.114.2013.19/Winter/FastMM 4.991/DEBUG [/i]
--- System uptime is: 5:04:19.849 (max. - 27 day(s) 6:38:31.123)


Текущее время: 01:04. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot