Биллинговая система Nodeny

Главная категория => Nodeny 50 => Тема начата: Semi от 21 Сентября 2012, 11:19:39



Название: Падает ядро
Отправлено: Semi от 21 Сентября 2012, 11:19:39
Помогите! Может кто сталкивался с моей проблемой. Железо 8 ядерный j7 950, FreeBSD 8.1, ядро пытается обработать трафик и грузин один процессор на 100 %, после чего никак не реагирует пока не общитает тот объем трафика который к нему приплыл и за собой влечет много последствий и глюков вроде не подключение клиентов после погашения задолженностей, не подключает авторизаторы клиента и т. д. Всякие настройки и изменение временных параметров сбора трафиком ядром я уже испробовал, ничего не помогает.  Отключить сбор трафика нельзя так как когда заводишь нового клиента он делает перерасчет по датам и запускает денежный общет данного клиента при появлении первого трафика.

Внизу загрузил скрин обработки ядром трафика, ну и момент когда оно падает ;)



Название: Re: Падает ядро
Отправлено: stix от 21 Сентября 2012, 11:29:24
попробуй уменьшить время обработки данных.
детализация трафика отключена?


Название: Re: Падает ядро
Отправлено: Semi от 21 Сентября 2012, 11:44:00
Пробовал. Увеличивал время, и отключал в тарифах детализацию трафика. не помогло :(. Трафик собирается я так понял в usr/local/nodeny/sql и очень огромными объемами гда-то от 5 до 15 гегабайт. И еще заметил ядро начинает падать когда трафик превышает отметку в 400 Мегабит/сек.
Возможно ли решение проблемы заставить обрабатывать ядро билинга большим количеством процессоров. Или разделить обработку трафика и остальные функции ядра на разные процессоры. Я так понял мне наращивании мощности компьютера не поможет, а если и поможет то не надолго.


Название: Re: Падает ядро
Отправлено: stix от 21 Сентября 2012, 11:49:33
irqbalance запущен?


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 21 Сентября 2012, 12:28:03
irqbalance запущен?
А чем должен помочь irqbalance? Это как бы штука для прерываний, которые генеряться железом, а не софтом.
Цитировать
Irqbalance является демоном, который применяется для распространение аппаратных прерываний между процессорам и ядрами системы. Основная задача irqbalance создать баланс между энергосбережением и оптимальной производительностью.
Подробнее: http://www.securitylab.ru/processinfo/419735.php
И здесь: https://irqbalance.org/


Название: Re: Падает ядро
Отправлено: stix от 21 Сентября 2012, 13:30:03
да, верно )
думал о другом, привык за сетевые карточки отвечать.

насколько помню, ядро Nodeny не может размазываться на треды


Название: Re: Падает ядро
Отправлено: stix от 21 Сентября 2012, 13:41:09
кстати вот да, реально тема актуальная насчет размазывания по ядрам тредов.
это касается как флоу разгребальщиков, так и основного ядра биллинга.

раньше этому не особо уделял внимание.
но если так посудить, то эффективности установки intel core i7 под биллинг будет крайне мало.
кроме как выделение под Perl скрипт отдельного ядра.


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 21 Сентября 2012, 13:48:51
кстати вот да, реально тема актуальная насчет размазывания по ядрам тредов.
это касается как флоу разгребальщиков, так и основного ядра биллинга.

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


Название: Re: Падает ядро
Отправлено: stix от 21 Сентября 2012, 13:53:05
угу, нужно городить велосипед с синхронизацией потоков.


Название: Re: Падает ядро
Отправлено: 0xbad0c0d3 от 21 Сентября 2012, 17:06:00
Цитата: stimels
попробуй уменьшить время обработки данных.
детализация трафика отключена?
Цитата: Semi
Пробовал. Увеличивал время, и отключал в тарифах
oO что-то не понятно, пробовал и уменьшать, и увеличивать? или "пробовал - увеличичвал"... Увеличивать нет смысла - будет еще больше нагрузка... $Kern_t_traf вообще в 0 поставить
Это делается тут: Операции->Настройки->Ядро: С каким периодом (в секундах) снимать показания потребленного трафика клиентами.  Чем меньше число, тем оперативней будет информация, но тем больше нагрузка на сервер. Если установить в 0, то статистика будет сниматься сразу же после окончания подсчета и записи предыдущего среза


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 21 Сентября 2012, 17:52:22
Дык и так проц в соточку загружен судя из картинки.
Данная подстройка исправит ситуацию?


Название: Re: Падает ядро
Отправлено: 0xbad0c0d3 от 21 Сентября 2012, 20:01:45
Так будет маленький срез: маленький срез - меньше инфы на обработку - меньше нагрузка
хуже не будет - точно! )))


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 21 Сентября 2012, 20:05:51
Сделали пока так


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 21 Сентября 2012, 20:26:07
Цитировать
[root@cassiopeia ~]# ./mysqltuner.pl

 >>  MySQLTuner 1.2.0 - Major Hayden <major@mhtx.net>
 >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 >>  Run with '--help' for additional options and output filtering

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.53
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 3G (Tables: 50)
[--] Data in InnoDB tables: 285G (Tables: 429)
[!!] Total fragmented tables: 439

-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 3d 22h 40m 46s (29M q [85.332 qps], 94K conn, TX: 18B, RX: 14B)
[--] Reads / Writes: 22% / 78%
[--] Total buffers: 2.2G global + 11.2M per thread (151 max threads)
[OK] Maximum possible memory usage: 3.9G (45% of installed RAM)
[OK] Slow queries: 0% (6/29M)
[OK] Highest usage of available connections: 52% (79/151)
[OK] Key buffer size / total MyISAM indexes: 64.0M/1.7G
[OK] Key buffer hit rate: 100.0% (9M cached / 95 reads)
[OK] Query cache efficiency: 20.1% (1M cached / 7M selects)
[!!] Query cache prunes per day: 559652
[OK] Sorts requiring temporary tables: 0% (565 temp sorts / 195K sorts)
[OK] Temporary tables created on disk: 16% (38K on disk / 230K total)
[OK] Thread cache hit rate: 99% (79 created / 94K connections)
[!!] Table cache hit rate: 10% (272 open / 2K opened)
[OK] Open file limit used: 0% (76/11K)
[OK] Table locks acquired immediately: 99% (27M immediate / 27M locks)
[!!] Connections aborted: 6%
[!!] InnoDB data size / buffer pool: 285.5G/2.0G

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Increase table_cache gradually to avoid file descriptor limits
    Your applications are not closing MySQL connections properly
Variables to adjust:
    query_cache_size (> 32M)
    table_cache (> 2048)
    innodb_buffer_pool_size (>= 285G)


Название: Re: Падает ядро
Отправлено: stix от 22 Сентября 2012, 07:39:33
как вариант - вынести коллектор на другую машину.


Название: Re: Падает ядро
Отправлено: Efendy от 22 Сентября 2012, 08:40:36
Так будет маленький срез: маленький срез - меньше инфы на обработку - меньше нагрузка
хуже не будет - точно! )))
не совсем верно. Коллектор занимается агрегацией трафика. Т.е. если на клиента идет дофига потоков трафика, то он их объединит в один. По идее он это должен сделать быстрее ядра т.к написан на нескриптовом языке. Другой вопрос, что если потоки идут с разных ip, то особо агрегации не будет. В параметрах коллектора можно для теста поставить  чтоб он агрегировал в 0.0.0.0/0 весь инет, кроме сетей 10/8 и 192.168/16 в зависимости какую юзают. Посмотреть как изменится нагрузка


Название: Re: Падает ядро
Отправлено: stix от 22 Сентября 2012, 08:55:30
Цитировать
В параметрах коллектора можно для теста поставить  чтоб он агрегировал в 0.0.0.0/0 весь инет, кроме сетей 10/8 и 192.168/16 в зависимости какую юзают.
но в случае использования допустим UA-IX и World типа трафика - не поможет
ради теста можно попробовать )


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 22 Сентября 2012, 14:49:49
Тарифик делиться на локальный, мировой и Украину. Изменение маски в коллекторе снизит точность детальной статистики.

Я так понимаю, что без изменения скрипка ядра не обойтись... :(

Пы.Сы.: коллекторы находятся на других серваках, на этом только ядро, авторизация-ключик ( есть еще пока такие) и база.


Название: Re: Падает ядро
Отправлено: Efendy от 22 Сентября 2012, 21:43:31
Я так понимаю, что без изменения скрипка ядра не обойтись... :(
что изменять? алгоритм подсчета трафика? есть идеи по оптимизации/по его принципиальному изменению?


Название: Re: Падает ядро
Отправлено: stix от 22 Сентября 2012, 21:48:08
мультитрединг


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 22 Сентября 2012, 23:13:39
Я так понимаю, что без изменения скрипка ядра не обойтись... :(
что изменять? алгоритм подсчета трафика? есть идеи по оптимизации/по его принципиальному изменению?


Да ну как бы на 8-ядерном процессоре использовать одно ядро и 7 в простое - как-то сильно дорого.


Название: Re: Падает ядро
Отправлено: Efendy от 23 Сентября 2012, 07:37:12
мультитрединг
NoDeny+, он же NoDeny 52, он же на который всем наплевать))


Название: Re: Падает ядро
Отправлено: stix от 23 Сентября 2012, 08:09:44
пффф ))

да и проблема с апдейтом в том, что здесь уже кустомизировано все, что только можно.


Название: Re: Падает ядро
Отправлено: Efendy от 23 Сентября 2012, 09:08:23
пффф ))

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


Название: Re: Падает ядро
Отправлено: stix от 23 Сентября 2012, 09:22:32
а нельзя его выложить, чтобы был не в образе vmware, а тот же svn допустим?


Название: Re: Падает ядро
Отправлено: blackjack от 23 Сентября 2012, 11:48:54
с такими темпами, как вы поддерживали последнюю стабилную версию так и получилось, что у каждого теперь своя кастомизация. За два года ни одного официального апдейта.


Название: Re: Падает ядро
Отправлено: blackjack от 23 Сентября 2012, 11:50:19
если надо было денег доплатить, то так и надо было написать, что каждый апдейт стотит 50 баксов, и включать туда все что кому надо.


Название: Re: Падает ядро
Отправлено: elite от 23 Сентября 2012, 18:34:46
Как ни печально это звучит, но blackjack прав.
Nodeny+, он же Nodeny 52 - сырой продукт.
Он заточен под одну конкретную сеть, под которую он и разрабатывается.
Если же мы хотим получить Nodeny+ для всех, то надо:
1) написать документацию,
2) сделать скрипт миграции.
Только тогда народ станет по-тихоньку переходить на Nodeny+, тестировать его, оформлять заявки на доработку и т.п. Это и будут бета-тестеры.
ИМХО


Название: Re: Падает ядро
Отправлено: Efendy от 23 Сентября 2012, 18:56:31
Эти аргументы - это ваши оправдания перед самими собой. Сырой продукт? Неужели мой авторитет в написании старого биллинга дает вам опаску, что там будут серьезные баги? Он работает в нескольких сетях, в том числе моей. Не падает. Делает многие фичи лучше. Но, нет, мля, он сырой. Оправдали свою лень. Вы что-то сделали чтоб улучшить сырой продукт? Хотя бы один человек поставил его? Нет.  Лучше, когда Стас принесет на блюдечке с инсталятором и мигратором.

Цитировать
Как ни печально это звучит, но blackjack прав.
продолжайте оправдывать свою лень


Название: Re: Падает ядро
Отправлено: Cell от 23 Сентября 2012, 19:19:46
Причем тут лень? Продукта нет - это факт. Если вы планируете продавать ЭТО.... то сначала сделайте ЭТО... если не планируете, то выкладывайте в опенсоурс SVN хотя бы с минимальной докой, пишите, что это опенсоурс  и ждите когда сообщество само собой создастся как вокруг 49 версии постепенно это получилось благодаря и Элиту в том числе. Правда в последний раз это происходило лет 5 наверное без преувеличения. Наивно полагать что сейчас все бросятся тестить продукт, который находится на непонятно какой стадии готовности и даже не имеет номера версии.


Название: Re: Падает ядро
Отправлено: Efendy от 23 Сентября 2012, 19:38:10
Наивно полагать что сейчас все бросятся тестить продукт, который находится на непонятно какой стадии готовности и даже не имеет номера версии.
а как по твоему тестят продукты? Только готовые? А как они становятся готовыми? Открою секрет - после тестирования. Номер версии - это конечно важно. Если недостаточно моих заверений, что бил рабочий - о чем мы тогда говорим?

Цитировать
Если вы планируете продавать ЭТО.... то сначала сделайте ЭТО...
Я поднимал вопрос о продаже? Я говорю: люди, помогите оттестить. Если не помочь, он сам по себе не оттестится и не станет тем, что вы хотите видеть: мигратор, инсталятор, дока и т.д, ибо в процессе тестирования многие фичи могут поменяться. А поскольку бил пишу один я - я не могу распылятся на миграторы, которые, вы мля, спокойно можете сделать за вечер, не надо прибедняться. Где я говорил, что я нахаляву буду использовать ваш труд? Все что мне надо, что бы вы поставили хотя бы одну копию и сказали, что неудобно и чтте еще сделать. Но не теоретически, как вы любите, а практически - взять и поставить.

Я сделал 300 абонентов бесплатно в старом нодени. Я наибал всех вас? Я не заслуживаю помощи чтоб сделать для вас продукт? Да, кажется, что это маркетинговая фигня "для вас". Но на самом деле, бил этот  для вас - у меня он уже работает и выполняет все задачи, мне этого достаточно. Мне просто обидно, что я год ебался и не просто делал продукт, а делал с оглядкой чтоб вам было удобно писать под него модули. Но вы меня кинули, сообщество, мля. Я понимаю, что раз сообщество - большинство, то право оно, а не я. Пусть будет так.  Я закрываю новый нодени, пишу исключительно для себя


Название: Re: Падает ядро
Отправлено: stix от 23 Сентября 2012, 20:38:37
да никто не кидал.

просто поставлять новый биллинг в виде образа vmware не совсем какбе правильно.


Название: Re: Падает ядро
Отправлено: Rico-X от 23 Сентября 2012, 20:42:25
Я думаю этот момент все давно поняли, я лично несколько раз ставил вопрос о каких-то сроках и возможностях, ответ был - пилю когда есть время, занят другим проектом. Хотел перевести 4 сети на новый продукт, как программер я не силен, но финансовые возможности у фирм есть, оплатить полную интеграцию, поддержать разработчика и сообщество (за модули), но для этого нужны конкретные планы и сроки, а не может быть, когда-нибудь. Я заманался объяснять руководству, почему в сети год не внедряются новые фикши, так-как мы все ждем с дня на день новый биллинг, плюнул и оплатили снова поддержку UTM и купили недостающие модули там (Не реклама, UTM - биллинг отвратительный, хотел с него соскочить, но не вышло). Никто не говорит о бесплатности и взять все готовое на блюдечке, но должны быть какие-то планы и сроки. Помочь оттестить? Как? Выделить сервера и другие мощности не проблема, думаю для многих, но вот как быть с людьми. Как могут помочь в тестировании те, у кого нет кучи сателитов, где без потерь можно пустить один через новый биллинг, у нас стоят брасы, перенастроить брас - это пустить сразу несколько тысяч реальных живых людей через систему, на которую нет даже документации.  Поставить в песочнице и тыкать самому, но тогда никогда не всплывут реальные проблемы. Закрываете, великолепно: "Баба з возу – кобилі легше". Те сети что работают на старых версиях, так пусть и работают, пока нет проблем архитектуры, все новые сети буду делать на других продуктах и всего делов, жаль что хороший, годный проект загнулся. Текущая стабильная реализация проживет еще года 3, пока не вылезли проблемы архитектуры, за это время думаю подыщем альтернативу.


Название: Re: Падает ядро
Отправлено: stix от 23 Сентября 2012, 20:46:33
ну вот единственная серьезная проблема это использование биллингом одного ядра.
причем это всего лишь следствия мэйнстрима, а не недоработки.


Название: Re: Падает ядро
Отправлено: Cell от 23 Сентября 2012, 20:56:49
Считать трафик не сегодня, так завтра перестанут ВСЕ. Некоторые большие сети уже давно этого не делают - снимают коунтеры с брасов или саттелитов и пишут апдейтами в базу а нетфлоу поток с коллекторов заворачивают на специальные флоу сервера (для истории) где он хранится в формате flow5. Вот и освободил я процессор на много лет вперед )))


Название: Re: Падает ядро
Отправлено: stix от 23 Сентября 2012, 21:53:28
да, мы тоже не считаем трафик.
но очень полезная фича, начинать считать активным тот день, когда пошел первый трафик на абонента
ну и для общей статистики нагрузок, смотреть где наиболее активные


Название: Re: Падает ядро
Отправлено: Cell от 24 Сентября 2012, 08:32:38
Так юзерам коунтеры можно апдейтами складывать - вот тебе и статистика активных.


Название: Re: Падает ядро
Отправлено: stix от 24 Сентября 2012, 08:47:25
можно и так, пока нагрузка не сильно критическая, но скоро будет аларм )


Название: Re: Падает ядро
Отправлено: poxy. от 24 Сентября 2012, 12:10:52
В новом Ноудени должен быть набор фитч аналогичных старому, чтобы можно было мигрировать. ИМХО. Лично мне не хватает nomake и мак-адресов.

В моей сети нет авторизации, все по макам... Плюс куча точек топологии и оборудования, Если бы это было в новой версии - перешли бы не задумываясь!


Название: Re: Падает ядро
Отправлено: Semi от 24 Сентября 2012, 14:11:03
Не надо ругаться! Как по мне билинг может и сыроват но весьма и весьма жизни способен. У него есть недочеты, но самое главное, что они решаемы! Спасибо большое за советы и за билинг. Трафик нам уже давно не нужен, но как выше я писал, он много где участвует в жизни деятельности билинга и полностью от него отказаться не удаться.

Так будет маленький срез: маленький срез - меньше инфы на обработку - меньше нагрузка
хуже не будет - точно! )))

Чуть выше я писал, что все пробовал по изменению времени общета трафика ядром. Совет поставить 0 был фатален для сервера :). Это привело к тому, что ядро не успевало обработать трафик, создавала файлики в usr/local/nodeny/sql до тех пор пока не закончилось место на винте %). У кого возникнет такая проблема не ставте 0. По моим тестам чем больше это время тем более стабильно работает ядро. Файлики  собираются, но не так быстро.



Название: Re: Падает ядро
Отправлено: Semi от 24 Сентября 2012, 14:26:59
Считать трафик не сегодня, так завтра перестанут ВСЕ. Некоторые большие сети уже давно этого не делают - снимают коунтеры с брасов или саттелитов и пишут апдейтами в базу а нетфлоу поток с коллекторов заворачивают на специальные флоу сервера (для истории) где он хранится в формате flow5. Вот и освободил я процессор на много лет вперед )))


Я думаю мы тоже будем двигаться в этом направлении! С текущими ценами на интернет и постоянными расширениями каналов, общет трафика ядром большим количеством процессоров не спасет положение.


Название: Re: Падает ядро
Отправлено: stix от 25 Сентября 2012, 14:03:32
и еще в тему производительности.
в старой версии не помню кто оптимизировал dopvalue.

в новой механизм надеюсь поправлен.

а то я сейчас в новой сети 55600 записей вдул и adm.pl встал раком.


Название: Re: Падает ядро
Отправлено: elite от 25 Сентября 2012, 14:34:41
ну 55.33 поставь


Название: Re: Падает ядро
Отправлено: stix от 25 Сентября 2012, 15:10:28
уже запускаю параллельный биллинг 50.34.l3


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 27 Сентября 2012, 20:09:37
В общем пока тут холиварят, я запускаю биллинг под отладкой:
screen perl -d:NYTProf /usr/local/nodeny/nodeny.pl

NYTProf - Это профайлер от компании New York Times, детали тут: http://search.cpan.org/dist/Devel-NYTProf/lib/Devel/NYTProf.pm
Показывает вплоть до того, сколько по времени каждая строчка выполнялась/вызывалась/и т.д.



Название: Re: Падает ядро
Отправлено: elite от 28 Сентября 2012, 10:31:21
уже запускаю параллельный биллинг 50.34.l3
34 - это какая версия?


Название: Re: Падает ядро
Отправлено: stix от 28 Сентября 2012, 13:12:59
это я просто я скопипастил из названия, что шла в vmware


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 28 Сентября 2012, 14:36:10
В общем пока тут холиварят, я запускаю биллинг под отладкой:
screen perl -d:NYTProf /usr/local/nodeny/nodeny.pl

NYTProf - Это профайлер от компании New York Times, детали тут: http://search.cpan.org/dist/Devel-NYTProf/lib/Devel/NYTProf.pm
Показывает вплоть до того, сколько по времени каждая строчка выполнялась/вызывалась/и т.д.


Получается что вот так (ф-я Count_traf жрёт всё):


Название: Re: Падает ядро
Отправлено: stix от 28 Сентября 2012, 14:52:10
а что за система у тебя была?


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 28 Сентября 2012, 15:34:38
а что за система у тебя была?
OS имеется ввиду?

Вообще так:
OS: 8.1-RELEASE-p2 amd64
RAM: 4x2048Mb = 8Gb
CPU: Intel(R) Core(TM) i7 CPU
HDD: 2x Hitachi HDS721010CLA332 (1Tb) in Software RAID


Название: Re: Падает ядро
Отправлено: stix от 28 Сентября 2012, 15:37:50
не, железо имел ввиду
жирненько


Название: Re: Падает ядро
Отправлено: Semi от 28 Сентября 2012, 23:05:40
OS: 8.1-RELEASE-p2 amd64


Название: Re: Падает ядро
Отправлено: Andrey Zentavr от 29 Сентября 2012, 00:34:00
Интересно, а нафига два раза Count_Traf тут вызывается?
nodeny.pl:
Код:
368: # Время обсчета трафика. Запустим подпрограмму согласно $Traf_Act
369: &{ (\&Request_Traf,\&Check_Traf,\&Count_Traf,\&Count_Traf)[$Traf_Act] } if $t>$When_get_traf;