Worker (ядро биллинга)

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (4)

просмотр истории страницы
* Одна итерация не должна превышать 180 секунд, если больше - уменьшите количество потоков/абонентов balance_change.
* При массовых списаниях (раз в месяц при типе списания "Ежемесячно" и каждый день при "Ежедневно равными долями в день" или "Ежедневно"), каждый процесс balance_change должен обработать не менее 1000 записей, при этом уложиться в 180 секунд
* Желательно чтобы общее Общее количество подпроцессов balance_change и прочих не превышало должно превышать количество потоков процессора, иначе balance_change может замедлить всю работу системы
* На слабых платформах лучше не изменять настройки, а оставить стандартные: 110 абонентов в 1 потоке

* На слабых платформах лучше не изменять настройки и оставить один поток

Выше описан параметр "abonents.perfork.cnt". Его можно настроить более тонко, под каждый воркер своё значение. Например, так:
{code}
worker['abonents.perfork.account_voip']='1000'
{code}
По-умолчанию для account_voip установлено значение 1000. То есть каждый поток будет обрабатывать звонки для 1000 разных абонентов. Это оптимальная конфигурация, которую мы протестировали на большом количестве звонков и количестве абонентов от 200.
Однако, если у Вас немного абонентов с телефонией, например несколько десятков, но у каждого из них очень много трафика, то может оказаться что оптимальней будет настроить abonents.perfork.account_voip равным 1-5.
Это можно понять, если протестировать работу ядра в разных конфигурациях и сравнив результат, каждый раз запуская перерасчёт одних и тех же звонков.
Заметки и рекомендации по настройке:
* Параметр может отсутствовать в конфигурационном файле по-умолчанию. Если он требуется - добавьте вручную.
* Настройка конкретного ворвера более приоритета, чем общая, то есть если abonents.perfork.cnt=100, а abonents.perfork.account_voip=1000, то account_voip каждый поток account_voip будет брать в обработку 1000 абонентов.
* На слабых платформах лучше не изменять настройки и оставить 1000 абонентов на поток
В каждом потоке {{account_voip}} обрабатывает звонки для 1000 разных абонентов. На текущий момент, это значение не настраивается и прописано в коде ядра.

Пример лога:
{code}

h3. Настройка многопоточности events
Настроить многопоточность службы обработки событий оборудования можно параметром:
{code}
worker['events.fork.cnt']='8'
{code}
h3. Настройка многопоточности send_commands
Настроить многопоточность службы отправки коммманд на оборудование можно параметром:
{code}
worker['send_commands.fork.cnt']='8'
{code}
h3. Настройка многопоточности usluga_abon_pay
Настроить многопоточность службы списанием за услуги можно параметром:
{code}
worker['usluga_abon_pay.fork.cnt']='8'
{code}
h3. Настройка многопоточности account_traf
{code}
worker['account_traf.fork.cnt']='8'
{code}

h1. Отладка