Вы можете пропусить этот раздел при первичной настройке системы.
При обсчёте сессий в реальном режиме времени происходит значительная нагрузка на базу данных. Постоянно обновляются таблицы log_session, session_detail, session_account, contract_balance, contract_account.
В таблицу session_detail_<mid>_yyyyMM производится запись объёма потреблённых по ходу сессии услуг с разбивкой по часам. Возможно снизить число обновлений таблицы, отменив запись по некоторым тарифицируемым по нулевой стоимости и не нужных услуг (например, время при тарификации трафик). Также возможно сгруппировать записи, например, по суткам, если тарифные планы не предполагают различную стоимость услуг по времени суток. Правила "свёртки" таблицы session_detail определяются в конфигурации модуля следующим образом:
detail.compress.<sid>.<hour_range>=<rule>
Где:
- числовой код услуги, запись о которой вносится в session_detail; |
- диапазон часов, к которым относится правило; |
- ключевое слово SKIP (пропуск обновления), либо час, в который преобразуется реальный час вносимой записи. |
Например, для отброса записи в session_detail информации об услуге Время с кодом 2 и свёртке по суткам записей по наработке по услугам трафиков 23 и 24 определяются следующие правила:
detail.compress.2.0-23=SKIP detail.compress.23.0-23=0 detail.compress.24.0-23=0
В случае, если стоимость трафика изменяется от времени суток, возможно преобразование реального часа потребления услуги в час начала диапазона.
При безлимитных тарифах жёсткое фиксирование посчитанного по нулевой цене трафика в session_detail не обязательно, информация может быть сохранена в конце часа, либо сессии. Так же не требуется постоянное обновление таблицы log_session (стоимость сессии и время её окончания). Для включения отложенного обновления таблиц session_detail и log_session возможно определение в узле
тарифного плана следующих правил:session_detail.delayed.update=1 log_session.delayed.update=1
При необходимости можно добавить только одну из строк.
Установка опции в значение 0, равно как и в любое другое, не отключает ее! Для отключения необходимо удалить, либо закомментировать строку символом # в начале строки.
На снимке экрана ниже изображён узел в тарифном плане.
Отложенное обновление таблицы log_session может происходить только при нулевом приращении стоимости сессии. Отложенное обновление таблицы session_detail при ненулевых тарифных планах также возможно, однако следует учитывать следующие нюансы:
При обсчёте трафика по RADIUS-атрибутам при перезагрузке BGRadiusDialup произойдёт потеря трафика, при восстановлении сессии средства за этот трафик будут начислены повторно;
При тарификации трафика по NetFlow-данным в случае перезагрузки BGRadiusDialup произойдёт просто потеря накопленного счётчике в памяти трафика;
При использовании тарифов с узлом
инициализация тарифа при старте сессии происходит по таблице session_detail, при нескольких параллельных сессиях одного договора возможна несколько некорректная тарификация. Тариф будет инициализироваться недостаточной наработкой. Проблема может быть решена переобсчётом в конце месяца всех сессий.