avatar_Killbrum

Анализ стабильности Connect Serverов. Интересные факты .

Автор Killbrum, 2011 Март 21, 09:18

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Ключевые слова [SEO] mu onlineПолезностиconnect server

Killbrum

Всем доброго времени суток! Собственно несколько слов лично от меня (сама статья написана не мной). Прежде всего данную статью читать на завтрак, обед и ужин всей бор тим, ребят вы сами этого хотели и просили :) . Так же я не беру на себя никаких копирайтов а законный автор текста - DoS.Ninja за что ему отдельный и очень низкий поклон.

Поехали! :)

Практический каждый администратор МуОнлайн сервера который живет не в тундре знает о такой программе как MCS (Mu Connect Server) от также не мало известной команды BoR. Данная программа являлась "очень хорошим" релизом от команды(Санька в частности) и достаточно быстро распространилась по интернету включая иностранные сервера. Про старый тормазнутый вебзеновский CS можно сказать уже забыли, ведь он действительно был более требовательным к ресурсам и менее быстрый чем аналог MCS. За все время работы с MCS я часто менял версии и бывали случаи сбоя программы, на которые я не обращал особого внимания, но недавно я натолкнулся на явную уязвимость программы, дело в том что разработчик S@NeK не достаточно хорошо продумал поведение программы при высоких нагрузках. Даже складывается такое впечатление что она просто напросто не тестировалась в таких условиях, что очень даже плохо. Ну что же я решил взять инициативу в свои руки и провел тестирование разных версий программы и сравнил их с аналогами от других производителей:

Тестируемые объекты:
- Mu Connect Server 1.0.4.360
- Mu Connect Server 1.0.7.300
- Mu Connect Server 1.0.8.950
- Mu Connect Server 1.0.9.200
- Mu Connect Server 1.0.9.530
- Mu Connect Server 1.0.9.750
- Mu Connect Server 1.0.9.1000
- MU Connect Server v1.0.10.675
- Connect Server 1.0.6 External Client
- SCF Connect Server 1.0
- [P4F] Connect Server 0.2 (dev)
- Webzen Mu Connect Server 20050502

Инструменты:
- Написан тестовый эмулятор большого числа подключений и DOS атаки
- 2 компьютера, сервер-клиент и клиент

Mu Connect Server 1.0.4.360 - версия не устойчивая к высоким нагрузкам
Результат тестирования:
Выдержала 1954 подкл. после чего самоблокировалась

Mu Connect Server 1.0.7.300 - версия не устойчивая к высоким нагрузкам
Результат тестирования:
Выдержала 1940 подкл. после чего самоблокировалась

Mu Connect Server 1.0.8.950 - эта версия неустойчива даже к низким нагрузкам
Результат тестирования:
30 подкл. - программа сбрасывает подключения после чего можно переподключится
700 подкл. - привели к выводу ошибки в окне логирования, после чего коннект сервер закрыл порт 44405 и не принимал больше подключений до его перезапуска
При небольшой одновременной нагрузке программа самоблокируется до перезапуска, что позволяет с легкостью выводить её из рабочего состояния

Mu Connect Server 1.0.9.200 - такая же неустойчивость как и в 1.0.8.950
Результат тестирования:
20 подкл. -  программа сбрасывает подключения после чего можно переподключится
700 подкл. - вызвали самоблокирование программы и закрытием порта 44405
Отличие от предыдущей версии в уменьшении лимита подключений с 30 на 20. То есть MCS самоблокируется еще раньше...

Mu Connect Server 1.0.9.530 - неустойчивая версия, та же проблема с самоблокировкой
Результат тестирования:
50 подкл. -  программа сбрасывает подключения после чего можно переподключится
700 подкл. - самоблокирование программы и закрытие порта 44405
Всё тоже лимит повышен уже до 50 подключений

Mu Connect Server 1.0.9.750 - поведение полностью такое же как и в 1.0.9.530

Mu Connect Server 1.0.9.1000 - абсолютно не устойчивая версия
Результат тестирования:
50 подкл. -  падение программы через секунду, логи указывают на ошибку:
[TTCPContext->LoadExtensionFunction]  ErrorCode: 10038

MU Connect Server v1.0.10.675 - абсолютно не устойчивая версия
Результат тестирования:
30 подкл. -  вызвали дикую нагрузку на систему. Коннект Сервер начал кушать практически 100% ЦПУ.



https://www.youtube.com/watch?v=7gtRCQoTOck

Connect Server 1.0.6 External Client - абсолютно не устойчивая версия
Результат тестирования:
50 подкл. - программа самоблокировалась на момент создания подключений и вызвала дикую нагрузку на систему. после отключения работоспособность программы сохранилось. (данная программа является неким продолжением серии MCS, её можно было скачать с репозитория BoR Team. Над её разработкой участвовала вся команда BoR + другие люди - прим. Killbrum)

SCF Connect Server 1.0 - стабильная версия
Результат тестирования:
1000 подкл. - не вызвали никаких сбоев в программе и нагрузки на систему, программа самоблокировалась после 1000 подключений и разблокировалась после окончания теста, причем сохранив возможность подключения к ней

[P4F] Connect Server 0.2 - стабильная версия
Результат тестирования:
1000 подкл. - не вызвали никаких сбоев в программе и нагрузка на систему была минимальная, программа с лёгкостью самоблокировалась и разблокировалась по достижению пика подключений.

Webzen Mu Connect Server 20050502 - стабильная версия
Результат тестирования:
10000 подкл. -  мне подручными средствами всё таки удалось эмулировать 10 тысяч подключений, причём как раз таки судя по индикатору допустимо до 10 000 подключений. Несмотря на нагрузку поведении программы было вполне нормальным, в момент достижения 10000 подключений, программа само блокировалась сохранив текущие подключения, замечена небольшая нагрузка на систему во время отключения от коннект сервера, в любом случае после отключения работоспособность CS сохранилась.


Ну что, проведя достаточно тестов, я подведу итоги:

Mu Connect Server [BoR] - нету стабильной версии программы MCS от команды BoR! Данная программа может хороша в быстродействии и по функциональности лучше оригинальной версии от Webzen, но они не устойчивы к большим нагрузкам и DOS атакам. Версии с поддержкой IOCP (1.0.9+) вообще лучше не ставить на свой сервер, так как судя по тестам эти версии абсолютно нестабильные и выводятся из строя небольшими нагрузками, что кстати и не отрицалось разработчиком, так же к явно нестабильным версиям отнесу и продукт Connect Server 1.0.6 External Client который вызывает сильную нагрузку на систему.
SCF Connect Server - данный продукт прошел тест идеально, без влияния на систему программа смогла достойно противостоять во время нагрузки. Но как данный КС будет вести себя на не SCF сервере я затрудняюсь ответить, поскольку таких тестов я еще не делал)
[P4F] Connect Server - учитывая что данная программа находится пока еще на стадии разработки, ей показаны замечательные результаты. Показатели быстродействия и нагрузки на систему даже немного меньше чем у SCF.
Webzen Mu Connect Server - старый добрый оригинальный CS является стабильной версией и несмотря на свою громоздкость справился с тестом.


Нестабильность [BoR] MCS
Но все же почему так происходит? Я начал просматривать логи разработки программы и сразу стало ясно в чем подвох, оказывается S@NeK постоянно мудрил с системой защиты забивания портов, которую он часто дорабатывал в новых версиях, но так и не сумел её нормально реализовать. Как я понимаю данная система не подвергалась нормальной отладке, либо об этом просто напросто умалчивали.

В новой версии Санек несколько улучшил свою программу тем что теперь она не падает. Точнее падений замечено не было. Но даже при 30 подключениях программа начинает загружать процессор до 100%. А в режиме простоя она кушает по 2-4% ЦПУ. Этот факт для меня является странным т.к. в режиме простоя никаких подключений не осуществляется.

Что теперь делать?
Если вы использовали MCS от BoR и хотите устранить эту уязвимость, то лучше всего заменить ваш Connect Server, либо распределяйте файрволом макс. кол-во подключений и мультиподключений на порт 44405, чтобы не было возможным нагрузить ваш CS.

Благодарю за внимание ...

Автор и тестер: DoS.Ninja


xTc


ketanof

Прочитав пост и сделав выводы получается пока Киллбрум дорабатывает свой конект сервер предпочтительней юзать Webzen Mu Connect Server ? (радует что он и на серверных осях работает)


Killbrum

Как программист мне конечно приятно если мой продукт будут использовать :) , но если с точки человечности... то тут не однозначный ответ. Тобишь есть варианта:

1) Если железо позволяет и есть частые ДДоСы то используем КС от ВЗ.
2) Если железо не ахти и постоянных ДДоСов нету то можно либо SCF(Titans Teach) либо [P4F]. Кто из них лучше? Если не вдаваться в очень мелкие подробности то они нога в ногу. Так что дело вкуса.

Fantazy

#4
Очень интересная статья, если и пользоваться BoR[CS] то действительно, единственный выход: ограничение кол-ва подключений.
[PF4] - как и говорил, будет возможность его работы на Windows Server 2003 SP1, с радостью проверю.
;)

speka21

да кстати, вот на рмст серваке боровский коннект у меня падал вроде через 6-8 часов, хотя всё норм настроенно было, а вот вебзен поставил, так проблемм нету пока что )

DJAKS

ну что же в дальнейшем нас ждет смена коннект сервера  с БОР на P4F(причем глобальная) так как он круче и использование серверов от RMST так как стабильные и быстрые. И ето пока что все что можно получить безплатно любой школоадмин  из серверной части также RMST может сделать и идеальный клиент под сервер если захочет. В будущем хотелось бы увидить аналог едатасервера от одной из команд (хотя я не откидываю вариант соединения команд и розроботку общих проектов которые перевернут мир му комюнити на голову и буквально завалят своими серверами и доп. программами )
Сезон 4.6 от RMST станет на ноги буквально через пару месяцев а так как в паблике появились соурсы P4F seaon 3 ep 1 будем просить RMST доработать их до финал версии. В принцыпе ето все спасибо за внимание.

vr-frost


buffon

#8
аналога eDataServer"а в паблике никогда не будет, ибо это огромная работа и выкладывать ее никто не будет, а дописать существующий-не один уважающий себя кодер не будет тоже.
объедение тоже не будет
и переворотов в ближайшее время не будет
м.б. f1x допишет свой емуль - будет переворот =Р

Killbrum

ну как сказать...

аналог еДата вполне возможен. Лично у нас в планах поковырять его. Сурсы 1.0 ведь есть. Они не столь плохи. Тобишь это очень похоже на декомпиль... как то так. Либо очень старый подход к стилю программирования (Си стиль). Но они есть. А как работает один или другой пакет не важно. Ведь действия одни и те же.

Так что по сути... если будет время может немножко переделаю ту же еДата.

Фикс он же не один делает эмуль. Он вроде делает опен сурс. Эмуль делают и IGC, Bor, Scf, LC , p4f . И думаю многие другие. Конечно качество эмуля... кхе... ну далеко не у всех на нужном уровне. Но они есть.

На счет обеденения... смешно правда =)) . Это предлогают посторонние люди, предлогал даже Росомаха (он ведь из бор тим). Но и я и Санек понимаем прекрасно что слияния никогда небыло, нету и не будет , уж слишком у нас разные взгляды.

С другими командами мы обеденится не пытались и не пытаемся но от толковых людей (скажу иначе - программистов) мы никогда не отказывались. Но увы тех же программистов с которыми мы можем работать, а точнее пригласить в команду, нету. Я не буду описывать с кем мы вели переговоры или ведем но за год, из сферы прикладного программирования, мы никого еще не взяли.

Почему? Если взять человека который будет помогать в разработке ПО то он сразу явно захочет "внести свою лепту" в наши эмуляторы. Этого позволить мы не можем. А сидеть за второстепенным ПО не каждый хочет.

DJAKS

Цитата: buffon от 2011 Март 29, 08:54  м.б. f1x допишет свой емуль - будет переворот =Р

А что он делает ? а то я не в курсе :)

MuForum

#11
Цитата: DJAKS от 2011 Март 22, 10:50  ну что же в дальнейшем нас ждет смена коннект сервера  с БОР на P4F(причем глобальная) так как он круче и использование серверов от RMST так как стабильные и быстрые.
...
А я бы не стал так быстро списывать ветерана боевых действий ;)
- Ещё не вечер как говорится =)

Цитата: Killbrum...
Connect Server 1.0.6 External Client - абсолютно не устойчивая версия
Результат тестирования:
50 подкл. - программа самоблокировалась на момент создания подключений и вызвала дикую нагрузку на систему. после отключения работоспособность программы сохранилось. (данная программа является неким продолжением серии MCS, её можно было скачать с репозитория BoR Team. Над её разработкой участвовала вся команда BoR + другие люди - прим. Killbrum)
...
Во-первых: Над этой программой работал лишь Leo123.
- Я ему помог лишь с логами и пакетами.
Во-вторых: Не красиво как-то говорить не зная на самом деле =)
В-третьих: Хочу выразить Killbrum персональную благодарность за эту тему, так как она меня подстегнула поднять свой зад и снова взяться за MCS =)
- Так как под нагрузкой свой продукт не тестировал, результаты действительно удивили =)


P.S. -> На днях встретимся =) под нагрузкой =) под большой нагрузкой =)

Killbrum

Добавлен тест нового MCS
Спойлер
[свернуть]
Спойлер
[свернуть]

Похожие темы (2)