Регистрация...

Eserv Forum / E3 / Eproxy 3 Support / Падение скорости на прокси

wikipost // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
EProxy 3.0 (build 10364)
PigProxy 1.36b
TrafC

Какое-то время назад началось сильное падение скорости на прокси. В настройках скорость нигде не ограничивалась, но на всякий случай отключил TrafC — не изменилось ничего.
Показания по скорости следующие:
  • на самом прокси сервере без прокси — 50 мегабит;
  • на самом прокси сервере через прокси — 22 мегабит;
  • клиент через прокси — 0.6-0.9 мегабита (и так у всех клиентов, но через тот же download master — скорость умножается на количество потоков).
В настройках сервера вроде бы нет такого, чтобы ограничивать скорость. На клиентах пробовал IE8, FireFox, Opera — результат одинаков.
Что проверить, какие настройки смотреть ?
 
Комментарии к этой версии (25.01.2011 17:30) [~ND] eb04f333
АвторДатаТекстtags
ac25.01.2011 18:28
Падение скорости случилось само собой, или некоторое время назад менялись настройки (можно по дате ini посмотреть)?

0.6 мегабит — это значит порядка 60КбАйт/сек? Попробуйте поотключать файловые plugin'ы — кэш, логи. Включить ini cache, auth cache (авторизация используется?). В общем минимизировать дисковую активность — изменится ли что-то?
wikipost
ND25.01.2011 18:35
Настройки в момент падения скорости не менялись. В один момент стало работать медленно. Решил что ограничил скорость провайдер на 1 подключение. Сегодня стали с ним смотреть — ограничений с его стороны нет.
Кэш и логи отключил уже — без изменений.
Авторизация используется, кэширование ini и auth используется.
Такое впечатление, что скорость принудительно "режется" до 60-80Кбайт прокси-сервером.
wikipost
ND25.01.2011 18:38
Вот сейчас проверяю, когда пользователей 1-3, а не 30-50 как днём.
Результат всё тот же.
wikipost
ac25.01.2011 19:55
Тогда стоит покрутить еще параметр PROXY[PacketSize]. Может провайдер роутеры поменял...
wikipost
ac25.01.2011 19:57
Параметр не во всех PigProxy/1.36b был, надо смотреть еще номер беты.
wikipost
ND25.01.2011 22:23
насколько я помню — ставил все беты PigProxy.
"Поигрался" этим параметром — +-0.1, ситуацию не исправило.
Как может быть, что с самого сервера через прокси — почти нормально. А с клиента — такое падение. Как сервер, так и клиент — следуют одним и тем же правилам и настройкам.
wikipost
pig25.01.2011 23:26
ред: 25.01.2011 23:29
А другие службы — HTTP-сервер, например, — они клиентам с какой скоростью отдают?

У вас ведь домен, если я правильно понимаю. Попробуйте на прокси посмотреть параметры безопасности любой папки — там главное выйти на получение списка пользователей домена (через "Добавить" хотя бы). Не тормозит? Аналогично на клиентах. И на клиентах попытаться померять локальную скорость обмена данными с прокси. Опять же посмотреть получение доменно-зависимой информации.

Информация к размышлению: в ЛЭНКе летом случилось непонятное, на прокси странным образом стало тормозить получение данных по локальной сети. Две идентичные встроенные сетевые карты, одна смотрит в интернет без подключения клиентов и служб MS, только голый TCP/IP, вторая смотрит в локальную сеть, подключены, соответственно, все необходимые MS-сервисы, и ещё домен. Клиент через прокси с отключённым каскадированием получает всё со свистом. Каскадный прокси (на базе Eproxy) тоже всё получает из интернета со свистом; для проверки туда поставили 3proxy — через него всё летает. А вот получить через каскад на главный прокси — тормоза. И список пользователей домена добывается главным прокси жутко долго. Зверей искал, не увидел. Вообще ничего лишнего не увидел в сетевых обработчиках. Windows 2000 там стоит. Без меня на него только пачку обновлений за полтора года поставили, но страшное случилось несколько позже этого.

P.S. 1.36b — это не бета, это третий после беты релиз (второе исправление багов). То есть, всё, что появилось в бетах, там есть.
wikipost
ac25.01.2011 23:51
ND пишет: "Поигрался" этим параметром — +-0.1, ситуацию не исправило.

А перезапускали при этом Eproxy? Если ситуацию не улучшает, то хотя бы ухудшить должно было . Если при маленьком размере пакета (500, допустим) скорость не падает дальше, то это подозрительно. Оптимальный размер этого PacketSize на разных машинах/сетях/ОС разный — обычно 24000, 32000, 65000.
wikipost
ND26.01.2011 00:12
EProxy перезапускал каждый раз.
При разный размерах пакета скорость колеблется незначительно +-0.1. Даже при 500-байтном пакете.
Список пользователей EProxy получает из списков MD5.
Списки пользователей на закладке "безопасность" получается без малейших задержек.
Просто скорость связи клиента с сервером по локалке — 30-50Мегабит.
Попробовал отключать/включать каскадирование прокси — без изменений.
Даже не представляю куда "копать".
wikipost
ND26.01.2011 09:51
Экспериментировал с включением/отключением кэшей, логов, списков доступа, размерами пакетов, каскадированием, количеством активных подключений — всё-равно изменения скорости у клиента +-0.2мегабита.
Тот же клиент на выходе в Интернет минуя прокси — 50мегабит.
Сам сервер через свой же прокси 20мегабит.
wikipost
pig26.01.2011 11:28
В журналах Windows ничего подозрительного (типа крестов и восклицательных знаков) нет? Что-нибудь ещё сетевое (фильтрующее трафик) на прокси и/или клиентах стоит?
wikipost
ac26.01.2011 11:39
А если с Eserv'ного acWEB'а этим клиентом качнуть большой файл локально?
wikipost
ND26.01.2011 12:09
В журналах Windows ничего подозрительного нет.
На прокси-сервере ничего не установлено фильтруещего трафик. Стоит только снифер WireShark. На клиентах установлен Symantec Endpoint Protection 11.
Попробовал качнуть большой файл с acWEB:
  • на самом прокси-сервере 0.5
  • на клиенте 0.3-0.4
wikipost
ND26.01.2011 14:56
ред: 26.01.2011 15:30
Локализовал проблему, но от этого легче не стало.
Сеть построена на сетевом оборудовании Nortel (24 и 48 портовые управляемые 100Мб).
Включаем прокси и клиента в Nortel — скорость те же 0.6-0.9 мегабита.
Теперь между Nortel и клиентом с прокси-сервером ставлю простейший Cisco (1Gb неуправляемый 16 портов), получается что клиент и прокси-сервер включены в Cisco. А сам Cisco включен в Nortel. И скорость выдаётся по полной — 50мегабит.

Переговорил с сетевиками — говорят с сетью порядок. И я им верю, с другим программным обеспечением проблем нет. Что-то именно в связке Nortel+EProxy.
Вот о чём договаривается EProxy c Cisco, и не может договориться с Nortel ?

Обнаружил ещё нюанс, при вышеописанных манипуляциях повышение скорости происходит только у клиентов Windows Vista (пара клиентов). У клиентов Windows XP остаётся без изменений (все компьютеры).
Получается ещё зависимость от операционной системы клиента.
wikipost
ac26.01.2011 15:30
Eproxy не знает ни того, ни другого. Не на том уровне работает. Тут что-то между сетевыми картами ваших компьютеров и этим Nortel. Или внутри самого Nortel. Если он управляемый, то может посмотреть на его управление и выключить ему лишний интеллект? В 100мбитных устройствах обычно слабые процессоры. Я, когда DHCP отлаживал, делал стресстесты — сколько запросов в секунду выдержит Eserv. Оказалось, что Eserv-то выдерживает, а вот свичи — нет. Их буферы забиваются бродкастами на раз, вся подсеть просто ложится, теряя львиную долю пакетов.
wikipost
ac26.01.2011 15:33
ND пишет: Symantec Endpoint Protection 11

Он тоже может как-то влиять, кстати, т.к. тоже на пакетном уровне работает.
wikipost
pig26.01.2011 15:47
Eproxy о сетевом железе знать ничего не знает, он работает через Winsock. Попробуйте в порядке бреда параллельно с Eproxy установить другой прокси (хоть тот же упомянутый 3proxy) и проверить работу через него.

IMHO, если свичи управляемые, то, наверное, и какую-то статистику с них можно снять. И ещё имеет смысл спросить у сетевиков, не меняли ли они что-то в настройках свичей. Какие конкретно модели? А то я на их сайте сразу запутался. Навскидку — очень там всё навороченное, с функциями шейпинга протоколов высокого уровня.
wikipost
ND26.01.2011 16:07
В порядке бреда запустил на другом порту 3dproxy.
Проверяю:
  • EProxy — 0.6 мегабита
  • 3dproxy — 32 мегабита
wikipost
ND26.01.2011 16:18
Со стороны клиента сторонний софт отметается — проверил на "голой" системе, где из софта были только видеокодеки.
wikipost
ac26.01.2011 16:56
ND пишет: запустил на другом порту

А если запустить его на порту вместо Eproxy?

На нижний уровень у Eproxy никакого влияния нет кроме как изменение размера пакета (точнее порции данных для отправки по TCP), но это вы уже испытали.
wikipost
ac26.01.2011 17:12
Посмотрел исходник 3dproxy — он использует буфер 4Кб
wikipost
ND26.01.2011 17:40
Запустить его на порту EProxy смогу вечером.
Заодно хочу "поиграться" параметрами (сейчас привёл их в исходное состояние":
UsePerformanceTuning=0
PacketSize=65000
MappingBufferSize=1600
ListenQLen=1000

Эти параметры в разделе [Proxy] находятся, так какие выставить им значения, чтобы приблизить к параметрам 3dproxy ?
wikipost
ac26.01.2011 17:56
Непосредственно на передачу по HTTP влияет только PacketSize. У 3dproxy он 4096.

И, если уж все равно взялись за тестирование, то испытайте и PigProxy/2, и Eproxy/4. За два года много воды утекло...
wikipost
ac26.01.2011 17:58
UsePerformanceTuning должно быть =1, иначе PigProxy не использует параметр PacketSize.
wikipost
ac26.01.2011 18:08
И еще: раз с acWEB локально проявляется тот же эффект, то удобнее тестировать на нем. Соответственно HTTP[UsePerformanceTuning]=1, HTTP[PacketSize]=4096 (покрутить варианты; обычно зависимость от этого параметра хорошо заметна, я в локальном FTP с FAR'ом часто замечаю — странно, что в ваших тестах это никак не сказалось).
wikipost
ND26.01.2011 20:28
ред: 26.01.2011 21:15
Установил 3dproxy на 3128-порт, на котором остановил предварительно EProxy — скорость с клиента 46 мегабит.
Перезапускал потом EProxy с разными значениями PacketSize — ну нет никаких изменений — те же 0.6 мегабита.

Попробывал изменять PacketSize и для acWEB — без изменений.
В обоих случаях естественно выставлял UsePerformanceTuning=1.
wikipost
ac26.01.2011 23:10
Становится всё интереснее...
ac пишет: если уж все равно взялись за тестирование, то испытайте и PigProxy/2, и Eproxy/4

Или давайте я завтра напишу спец.программу, которую можно ставить на двух компьютерах, и, не мешая нормальной работе пользователей, тестировать скорость с разными настройками.
wikipost
ND26.01.2011 23:21
EProxy/4 попробовал поставить два раза, в том числе и сегодня — с первого взгляда не понял что и где (хотя часть настроек перенеслась), и не стал разбираться — привык к PigProxy сильно
PigProxy/2 пытался пару раз установить — но не переносилась конфигурация, даже поднял вирт.сервер для экспериментов, но пока из-за нехватки времени забросил

Потестировать всегда можно.
Параллельно думаю, поднять на этом сервере чистую инсталляцию в отдельной папке и попробовать на ней. Может в настройках что намудрено у меня
wikipost
ac27.01.2011 10:32
http://www.eserv.ru/download/NPTest1.rar

Запускать так:
на сервере NPTest.exe SERVER номер_порта на клиенте NPTest.exe CLIENT имя_сервера номер_порта размер_буфера задержка_в_миллисекундах

Т.е. например так:
NPTest.exe SERVER 5555
NPTest.exe CLIENT 192.168.0.1 5555 65000 2

Или клиентом может быть браузер, тогда таким URL'ом http://192.168.0.1:5555/65000/2

Сервер отдает самого себя (в качестве случайного буфера), суммарным объёмом 1Гб. Размер буфера (порция данных) ограничена 130Кб.

Параметр "задержка_в_миллисекундах" — сколько ms ожидать между отправками порций данных (для справки: в текущей версии Eproxy это по умолчанию 4ms, задается параметром WriteSocketRetryDelay (там асинхронная передача); в старых версиях Eproxy, вышедших до 2008г, этого параметра не было).
wikipost
ac27.01.2011 10:39
Кстати, да, об этом WriteSocketRetryDelay вчера не говорили, а он тоже влияет, см. http://code.eserv.ru/22.03.2010. В PigMail/2.x даже в ini вынесен. В переходных версиях можно ставить в OnStartup такую команду: "4 TO WriteSocketRetryDelay".
wikipost
ND27.01.2011 11:15
Выставил строчку с WriteSocketRetryDelay (у нас пинги как раз большие) в OnStartup — скорость стала 8.5мегабит !
Попробую ещё со значениями поэкспериментировать, и с тестом тоже посмотрю.
wikipost
Работает на Eserv/5.05567 (10.02.2020)