Биллинговая система Nodeny
14 Ноября 2024, 19:06:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3
  Печать  
Автор Тема: Распараллелить ядро nodeny, как?  (Прочитано 14729 раз)
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« : 06 Декабря 2012, 07:34:37 »

Доброго времени суток, возникла необходимость распараллелить вычисления в ядре нодени. Дело в том что существенно повысился обрабатываемый траффик в сети и при достижении отметки в 3 гигабита информация с коллекторов перестает успевать обрабатываться ядром вовремя, возникают большие задержки до получаса. Ядро находится на отдельном сервере с 4 ядерным процессором, но возникает ситуация когда одно из ядер загружено процессом ядра на 100%, а остальные простаивают. Есть ли возможность как-то распараллелить по ядрам вычисления в ядре биллинга (простите за тафталогию)? Отключить подсчет трафика не вариант, какие могут быть выходы из положения?
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #1 : 06 Декабря 2012, 07:40:41 »

только Nodeny+
старый ноденай однотредовый
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #2 : 06 Декабря 2012, 07:59:56 »

А без смены биллинга есть варианты, может можно вынести как-то обработку трафика отдельно на каждый сателит с отдачей ядру уже подсчитанных по сателиту данных? Может другие выходы из положения, надо как-то решить ситуацию не убив весь биллинг, установкой более мощного сервера задача уже не решается, проблема архитектуры старой версии. Nodeny+ я пока не готов удаленно ставить без подробной документации на живой сети, нужно решить без простоя в работе.
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #3 : 06 Декабря 2012, 12:22:38 »

Ух, Рико, я и мой товарищ задавались подобным вопросом тут тыц!

У нас тоже такая проблема имеет место быть, и, что не удивительно, никакого решения нет, а есть пиар - используйте Nodeny 52 (который не известно на сколько стабильный).

тут немного моих рассуждений:
Цитировать
Если используются Perl threads (use threads;), то фактически для операционной системы мы имеем тот же один процесс на том же одном процессоре.
В нашем случае нужно использовать fork(). Но тут всплывают особенности с открытыми дескрипторами соединений к базе данных, лог-файла и, возможно, чему-то ещё (я так глубоко ядро не ковырял).
Пример - как-то вот так:
https://wiki.bc.net/atl-conf/pages/viewpage.action?pageId=20548191

Я даже что-то запустил, но видимо очень плохо переписал функции, что через некоторое время при завершении работы форка соединение с БД прерывалось.


Записан
Redmen
NoDeny
Ветеран
*

Карма: 62
Offline Offline

Сообщений: 546


Подяку в КАРМУ


Просмотр профиля WWW
« Ответ #4 : 06 Декабря 2012, 13:16:28 »

а есть пиар - используйте Nodeny 52 (который не известно на сколько стабильный).

N52 вполне прилично работает
вместо того что б глумится лутше бы взял и протестировал
а потом висказывать своё фэ

уже есть 55 ревизий N52
некоторие из них успешно роботают в реале
Записан

Приймаю подяку у вигляді карми... та/або грошей Подмигивающий
t.me/MrMethod
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #5 : 06 Декабря 2012, 13:18:17 »

У нас тоже такая проблема имеет место быть, и, что не удивительно, никакого решения нет, а есть пиар - используйте Nodeny 52 (который не известно на сколько стабильный).
Какой в жопу пиар? Для кого я делал новый нодени? Чтоб, блять, пиариться ради бесплатного распространения? Я четко объясняю причины:
- дофига людей просили новые фичи, в N50 их сделать невозможно либо большие костыли. Я начал делать и сделал новый.
- я не могу поддерживать старый и новый одновременно - в этом нет смысла.
- что это за, блять, отсылки к "неизвестно насколько стабильный"? Кто-то жаловался? Или я старый нодени делал стабильно, а новый решил сделать через жопу?
- дохрена платных модулей в новом нодени бесплатные.
- документация для разработчиков лучше чем в старом нодени. Посмотри по форуму как чел сходу сделал модуль для Н+.
- документация по установке есть, на 80% завершенная, но и это не мешает меня спросить еси что-то не получится.
- вы будете вечно сидеть на старой версии? Или может поможете и совместно сделаем новый и лучше и быстрее.

Записан
Redmen
NoDeny
Ветеран
*

Карма: 62
Offline Offline

Сообщений: 546


Подяку в КАРМУ


Просмотр профиля WWW
« Ответ #6 : 06 Декабря 2012, 13:20:59 »

я за ПОМОГАТЬ!!!!
Записан

Приймаю подяку у вигляді карми... та/або грошей Подмигивающий
t.me/MrMethod
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #7 : 06 Декабря 2012, 13:32:01 »

на днях разверну >1000 абонентов на N+
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #8 : 06 Декабря 2012, 13:51:12 »

Я очень рад, что новая версия у многих уже работает в реале, но тут не только проблемы установки и запуска. Обучить персонал и тех поддержку новому биллингу, находясь от них за сотни километров тот еще геморрой. Я уже не говорю про связь с 1C модулями, платежными терминалами, ERP и прочим (писать самому - нет уж спасибо, у меня есть и другие сети с другими биллингами, а варианта дать денег и чтоб все работало пока нет), сам по себе биллинг может прекрасно работать и я погоняю его на стенде, но речь идет о сети в которой нужно как-то решить возникшую проблему и уже потом думать о плавном переходе. Понял что опробованного решения пока нет, буду думать дальше возможные варианты.
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #9 : 06 Декабря 2012, 18:55:57 »

а есть пиар - используйте Nodeny 52 (который не известно на сколько стабильный).

N52 вполне прилично работает
вместо того что б глумится лутше бы взял и протестировал
а потом висказывать своё фэ

уже есть 55 ревизий N52
некоторие из них успешно роботают в реале

В первых фэ никто не высказывает, во вторых некоторые != все.
В третьих:
1) Переезд с биллинга А на биллинг Б влечет за собой перестройку кастомных модулей, которые были написаны компанией/ написаны другими разработчика за деньги / куплены
2) во вторых, простои связанные с некачественным финалом при миграции чреваты финансовыми потерями и(или) уходом клиентов ( и еще хуже если корпоративных клиентов).
... и. Т.д.

Давайте не превращать топик снова в холивар, а общаться по теме: как распалелить ядро.
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #10 : 06 Декабря 2012, 19:09:52 »

У нас тоже такая проблема имеет место быть, и, что не удивительно, никакого решения нет, а есть пиар - используйте Nodeny 52 (который не известно на сколько стабильный).
Какой в жопу пиар? Для кого я делал новый нодени? Чтоб, блять, пиариться ради бесплатного распространения? Я четко объясняю причины:
- дофига людей просили новые фичи, в N50 их сделать невозможно либо большие костыли. Я начал делать и сделал новый.
- я не могу поддерживать старый и новый одновременно - в этом нет смысла.
- что это за, блять, отсылки к "неизвестно насколько стабильный"? Кто-то жаловался? Или я старый нодени делал стабильно, а новый решил сделать через жопу?
- дохрена платных модулей в новом нодени бесплатные.
- документация для разработчиков лучше чем в старом нодени. Посмотри по форуму как чел сходу сделал модуль для Н+.
- документация по установке есть, на 80% завершенная, но и это не мешает меня спросить еси что-то не получится.
- вы будете вечно сидеть на старой версии? Или может поможете и совместно сделаем новый и лучше и быстрее.



Стас, можно та "ты"?

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

Когда меня попросили посмотреть ядро, честно говоря в нём уже я немного растерялся. Основной цикл из трёх десяток строчек и КУЧА КУЧА функций после - всё в одном файле. Глобальные переменные почти везде, т.е. не являясь автором, очень долго нужно чтобы войти как и куда оно работает и откуда что появляется. Я свои скрипты пытаюсь писать с "use strict;" - тогда как-то более видно что где объявляется, куда и как передаётся. В процессе попыток распаралелить ядро оно у меня работало секунд 40, пока форки не начали заверщать обсчёты трайика и рвать соединения с БД. Т.е. чтобы работало всё как задумывалось, нужно создавать и закрывать соединение с БД в пределах той функции, в которой работаешь.

В общем, чтоб сделать хорошо много времени нужно потратить на изучение и рефакторинг того что есть.

Прошлая наша тема превратилась в переписку о прелестях Nodeny+, но не решении проблемы. Т.е. вышло как-то так: имеете проблему, решайте сами.

Много компаний, который интегрировали свои продукты и Вашим биллингом не могут взять и сорваться на новую версию. Процесс перехода для них будет длительным.
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #11 : 06 Декабря 2012, 19:11:01 »

Я очень рад, что новая версия у многих уже работает в реале, но тут не только проблемы установки и запуска. Обучить персонал и тех поддержку новому биллингу, находясь от них за сотни километров тот еще геморрой. Я уже не говорю про связь с 1C модулями, платежными терминалами, ERP и прочим (писать самому - нет уж спасибо, у меня есть и другие сети с другими биллингами, а варианта дать денег и чтоб все работало пока нет), сам по себе биллинг может прекрасно работать и я погоняю его на стенде, но речь идет о сети в которой нужно как-то решить возникшую проблему и уже потом думать о плавном переходе. Понял что опробованного решения пока нет, буду думать дальше возможные варианты.
+1 Улыбающийся
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #12 : 06 Декабря 2012, 20:13:56 »

1) Переезд с биллинга А на биллинг Б влечет за собой перестройку кастомных модулей, которые были написаны
компанией/ написаны другими разработчика за деньги / куплены
Конкретно какие кастомные модули и что они выполняют?


2) во вторых, простои связанные с некачественным финалом при миграции чреваты финансовыми потерями и(или) уходом клиентов ( и еще хуже если корпоративных клиентов).
... и. Т.д.
Ну есть же кучу раз опробованное решение: берешь район и подключаешь его к новой версии. Учишься работать, учишься исправлять проблемы, понимать. Если проблема - ничего страшного не произойдет - во-первых людей не много, во вторых можно просто кабелек перетыкнуть на старый биллинг. Было бы желание. Я просто не понимаю одной вещи: существует ли вообще биллинг, который в идеале вам всем нужен? Ведь вы все равно запоете, что он непроверенный, боитесь нового, потерять бабло и т.д. Причем я не упрекаю. Но если так оно и есть, нахрена было просить новую версию? Можно на костылях и доковылять на старом.

Давайте не превращать топик снова в холивар, а общаться по теме: как распалелить ядро.
Ядро было написано тучу лет назад, я тогда вообще ни с одним perl-программистом не общался и делал все исходя из внутреннего наития и направления ветра. Самый идеальный вариант - физически разделить биллинг (да, я к предложенному выше варианту клоню). Да будут висжать бухгалтера "мы хотим консолидированную статистику" и т.д. Но как бы ты не отдалял проблему, она все равно вернется с ростом сети. Неужели нет смысла помочь оттестить н+ на больших нагрузках - это как раз то, что мне не хватает т.к. сеть у меня маленькая и уже не могу тестить на нескольких десятках тысяч абонов как ранее
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #13 : 06 Декабря 2012, 20:14:12 »

Ну, видимо, нужно понять, что переход будет длительный а не "разом все" и не парится по этому поводу. А имеющиеся баги (ну как минимум те, которые можно профиксить не переписывая ядро с нуля) нужно все-таки устранять и если не выпускать багфиксы, то хотя-бы описание устранения. А то на сегодняшний момент интересная получилась картина.... Много... очень много сетей купили биллинг.... а теперь нате вам...
Сорри за офтоп... итак... как распараллелить ядро --- ответ никак.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #14 : 06 Декабря 2012, 20:19:47 »

А то на сегодняшний момент интересная получилась картина.... Много... очень много сетей купили биллинг.... а теперь нате вам...
Ну, не надо. Во-первых, большинство таки не купило. Во-вторых есть срок техподдержки. Я лично не могу быть в рабстве на всю жизнь только потому что 5 лет назад кто-то купил копию. Я же не отказываюсь от поддержки продукта! Я говорю - старый устарел, ширина колеи сменилась, пора менять составы, ау!
Записан
Страниц: [1] 2 3
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!