forum.bitel.ru
http://forum.bitel.ru/

Inet accounting.workers
http://forum.bitel.ru/viewtopic.php?f=44&t=8363
Страница 1 из 1

Автор:  Cromeshnic [ 15 авг 2013, 12:17 ]
Заголовок сообщения:  Inet accounting.workers

Сабж.

Автор:  Cromeshnic [ 15 авг 2013, 12:24 ]
Заголовок сообщения:  Re: Inet accounting.workers

Вопросы:
- Как работают connection.close.timeout и connection.suspend.timeout вместе? С какого момента отсчитывается время? По-идее, сначала должен быть suspend, затем close?
- У меня был коннекшен в статусе "закрыт" (3), который не был завершен из-за косяка в настройке (не работало ни одного воркера, завершающего такие соединения). Я настроил BGInetAccounting нормально и ребутнул его. Но соединение всё ещё висит в активных в статусе "закрыт". Всего таких чуваков 67 штук. Что с ними делать? Воркеры работают, но в connection.log id этих соединений не появляется. Всё что есть в логах - до перезапуска:
Код:
08-15/11:42:31 DEBUG [accwrkr-1-p-14-t-1] connection - 5738:327716 Option set full: [2, 61]
08-15/11:43:11  INFO [accwrkr-1-p-14-t-1] connection - 5738:327716 Found error 11
08-15/11:43:11  INFO [accwrkr-1-p-14-t-1] connection - 5738:327716 Sending event to stop session...
08-15/11:43:11  INFO [rdsLstnr-p-8-t-11] connection - 5738:327716 Stopping NasConnection
08-15/11:43:11 DEBUG [accwrkr-1-p-14-t-1] connection - 5738:327716 Before calc inetOptions: 2,61
08-15/11:43:11 DEBUG [accwrkr-1-p-14-t-1] connection - 5738:327716 TariffRequest:
08-15/11:43:11 DEBUG [accwrkr-1-p-14-t-1] connection - 5738:327716 Executed TariffRequest:
08-15/11:43:11 DEBUG [accwrkr-1-p-14-t-1] connection - 5738:327716 Option set from tariff: [2, 61]
08-15/11:43:11 DEBUG [accwrkr-1-p-14-t-1] connection - 5738:327716 Option set full: [2, 61]
08-15/11:43:11  INFO [accwrkr-1-p-14-t-1] connection - 5738:327716 Found error 11
08-15/11:43:11  INFO [accwrkr-1-p-14-t-1] connection - 5738:327716 Already sent event to stop session.
08-15/11:44:01  INFO [accwrkr-1-p-14-t-1] connection - 5738:327716 Found error 11
08-15/11:44:01  INFO [accwrkr-1-p-14-t-1] connection - 5738:327716 Already sent event to stop session.
08-15/11:44:08 DEBUG [accwrkr-2-p-13-t-1] connection - 5738:327716 Flushing delta..


Может быть, это потому, что закрытые соединения не были восстановлены в память из базы?
67 таких коннектов будут вечно болтаться теперь что ли?
Это конечно мой косяк, что он не был закрыт до перезагрузки, но ведь даже при нормальной работе такое может произойти, если ребутнуть аккаунтинг до прохода соответствующего воркера?
Помог ручной сброс через монитор.

Автор:  Cromeshnic [ 15 авг 2013, 12:41 ]
Заголовок сообщения:  Re: Inet accounting.workers

Что-то я вообще не понимаю.
Взял нормального живого клиента с radius-сессией. Поставил статус договора=приостановлен. Трекер шустро поставил статус сессии = "закрыта". А какой процесс должен убрать её из "текущих"? Уже прошло минут 8, а она всё ещё болтается.

Код:
08-15/15:31:03 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set full: [10, 62]
08-15/15:31:14 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set full: [10, 62]
08-15/15:31:19 DEBUG [accwrkr-2-p-13-t-1] connection - 70028:328244 Flushing delta..
08-15/15:31:25 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set full: [10, 62]
08-15/15:31:35 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set full: [10, 62]
08-15/15:31:46 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set full: [10, 62]
08-15/15:31:57 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set full: [10, 62]
08-15/15:32:07 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set full: [10, 62]
08-15/15:32:18  INFO [accwrkr-1-p-14-t-1] connection - 70028:328244 Found error 10
08-15/15:32:18  INFO [accwrkr-1-p-14-t-1] connection - 70028:328244 Sending event to stop session...
08-15/15:32:18  INFO [rdsLstnr-p-8-t-7] connection - 70028:328244 Stopping NasConnection
08-15/15:32:55 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Before calc inetOptions: 10,62
08-15/15:32:55 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 TariffRequest:
08-15/15:32:55 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Executed TariffRequest:
08-15/15:32:55 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set from tariff: [10, 62]
08-15/15:32:55 DEBUG [accwrkr-1-p-14-t-1] connection - 70028:328244 Option set full: [10, 62]
08-15/15:32:55  INFO [accwrkr-1-p-14-t-1] connection - 70028:328244 Found error 11
08-15/15:32:55  INFO [accwrkr-1-p-14-t-1] connection - 70028:328244 Already sent event to stop session.
08-15/15:32:55  INFO [accwrkr-1-p-14-t-1] connection - 70028:328244 Found error 11
08-15/15:32:55  INFO [accwrkr-1-p-14-t-1] connection - 70028:328244 Already sent event to stop session.


Настройки:

Код:
accounting.tariffication.checkPrice=0
accounting.worker.1.serv.tracking.1.batchSize=0
accounting.worker.1.serv.tracking.1.delay=30
accounting.worker.1.tariffication.1.batchSize=0
accounting.worker.1.tariffication.1.delay=60
accounting.worker.1.tariffication.1.minDeltaAmount=0
accounting.worker.1.thread.count=1
accounting.worker.1.tracking.1.batchSize=0
accounting.worker.1.tracking.1.delay=10
accounting.worker.2.flushing.1.batchSize=0
accounting.worker.2.flushing.1.delay=30
accounting.worker.2.flushing.1.minDeltaAccount=0
accounting.worker.2.flushing.1.minDeltaAmount=0
accounting.worker.2.thread.count=1
accounting.worker.3.finishing.1.batchSize=0
accounting.worker.3.finishing.1.delay=5
accounting.worker.3.thread.count=1
connection.close.timeout=1260
connection.finish.timeout=2
connection.start.fromAccept=1
connection.start.fromUpdate=1
connection.suspend.timeout=1200

Автор:  Cromeshnic [ 15 авг 2013, 12:43 ]
Заголовок сообщения:  Re: Inet accounting.workers

Когда Амир выйдет из отпуска?

Автор:  Cromeshnic [ 15 авг 2013, 13:03 ]
Заголовок сообщения:  Re: Inet accounting.workers

Оооо, прекрасно!

batchSize = 0 для разных воркеров трактуется по-разному:

- SessionFlushingManager : batchSize=0 - это на самом деле 100
- SessionFinishManager : batchSize=0 - это реально 0! Т.е. он вообще не будет завершать сессии, что у меня и происходит.
- SessionTrackingWorker, ServTrackingWorker, SessionTarifficationWorker : batchSize=0 - это все сессии, чего я и ожидаю из документации

Сделайте уже одинаковую логику. Например, проверку на 0 не внутри каждого воркера, а при чтении из конфига.

inet вер. 5.2 сборка 1213 от 24.07.2013 15:33:55

Автор:  Cromeshnic [ 15 авг 2013, 13:05 ]
Заголовок сообщения:  Re: Inet accounting.workers

Можно заводить отдельный подфорум - "Разговоры с резиновой уточкой".

Изображение

Автор:  Cromeshnic [ 15 авг 2013, 14:32 ]
Заголовок сообщения:  Re: Inet accounting.workers

Расскажите подробнее про SessionTrackingWorker и ServTrackingWorker?
Какие события через какой проходят и как?
- Смена тарифа?
- Смена тарифных опций?
- Смена статуса договора?
- Изменение сервиса Inet (например, закрыли/открыли доступ на сервисе)?
- Изменение "баланс < лимита"?

Сюда же вопрос: зачем так сложно? Почему не вызывать изменения на девайсах сразу по событию, а не периодически чрез воркеры? Или хотя бы в дополнение к воркерам. Я понимаю, зачем сделали тарификацию, флашинг и финишинг. Dialup плохо справлялся с большим количеством радиус-пакетов, т.к. каждый вызывал запись в базу, тарификацию, проверки состояния и т.п. Но в том же dialup отлично работало мгновенное завершение сессии при закрытии договора, логина, или смены тарифа.
Тем более, часть воркеров работает также и по событиям: финишер вроде кое-где запускается мануально для закрытия отдельного соединения, сброс данных в базу вызывается явно при остановке BGInetAccounting.

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

Автор:  Magistr [ 27 авг 2013, 15:10 ]
Заголовок сообщения:  Re: Inet accounting.workers

+1

Автор:  borisk [ 27 авг 2013, 19:43 ]
Заголовок сообщения:  Re: Inet accounting.workers

Меня опять терзают смутные сомнения (c) Бунша Иван Васильевич
А каким биллингом пользуется Уфанет? :) Ведь клиентов у них там совсем как не мало.... значит и рекомендации должны быть толковые... Али на кошках тренируемся?

Автор:  Phricker [ 27 авг 2013, 19:48 ]
Заголовок сообщения:  Re: Inet accounting.workers

Так БГбиллингом же :) https://my.ufanet.ru/#

Автор:  stark [ 28 авг 2013, 13:21 ]
Заголовок сообщения:  Re: Inet accounting.workers

Документацию пишем . Будет .

Автор:  Amir [ 28 авг 2013, 20:56 ]
Заголовок сообщения:  Re: Inet accounting.workers

В 6.0 скоро будет обновление - batchSize унифицированы (0 - всё), возможность указать перерыв в миллисекундах (.delay.millis=), поддержка JMX для воркеров (статус и изменение параметров).
Будет добавлен обработчик accounting.worker.x.event.tracking для более быстрой реакции на события.

SessionTrackingWorker и ServTrackingWorker запускаются периодически, обрабатывая указанное кол-во сессий. Т.е. они не реагируют на события. Под обработкой подразумевается тарификация, получение текущих опций и проверка возможности дальше работать.

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

Автор:  Cromeshnic [ 29 авг 2013, 06:13 ]
Заголовок сообщения:  Re: Inet accounting.workers

То, что надо. Круто :)

Автор:  Amir [ 30 авг 2013, 17:23 ]
Заголовок сообщения:  Re: Inet accounting.workers

Выложили.

Автор:  Cromeshnic [ 02 сен 2013, 07:54 ]
Заголовок сообщения:  Re: Inet accounting.workers

Ок, а документацию?

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/