Биллинг медленно работает

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

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

просмотр истории страницы
Подключите для БД [отдельный диск |CarbonBilling:Добавление диска под БД] с высокой скоростью доступа.

h2. Всё очень медленно работает, не проходят платежи, не управляется оборудование, не работают авторизации
h2. Большой объём данных в БД

h3. Причина

Проверьте, что БД не слишком большого размера - если она превышает 10Гб, это уже достаточно много, система мониторинга создаст автоматическую заявку по этой проблеме [ALARM Превышен лимит размера БД|Система мониторинга#check_billing_db_size.sh]. 10Гб достаточно чтобы хранить данные 20000 абонентов без дополнительных оптимизаций или активной работы механизма партиционирования. Если эти значения превышены, то нужно найти причины роста объёма БД. Далее очистить лишние данные и уменьшить размер БД. Ниже описано, как это сделать.
Если уменьшение размера БД не дало результатов, возможно нашим разработчикам удасться оптимизировать запросы по выборке данных - создайте заявку на [портале|https://helpdesk.carbonsoft.ru/login.php].

В среднем, 10Гб достаточно чтобы хранить данные нескольких десятков тысяч абонентов без дополнительных оптимизаций или активной работы механизма партиционирования.

Если абонентов у Вам меньше 50 000, при этом база вышла за рамки 10Гб, нужно изучить, на что ушло место, очистить лишние данные и уменьшить размер БД. Ниже описано, как это сделать.

h3. Решение

chroot /app/asr_billing/ gstat-fb5 169.254.30.50:/var/db/billing.fdb -u SYSDBA -pass servicem -data | \
grep -E '^[A-Z]|Data pages:' | grep -v 'Gstat' | sed ':a;N;$!ba;s/\n */ /g; s/,//g' | \
awk '{print $5,"data pages;",$1,$2";","average fill",$8}' | \
sort -h | tail -n 3
{code}
# Проанализируйте вывод, будет что-то вроде этого:
{code}
39178 data pages; ARCH_ACCOUNT_STACK (146); 39178 data page slots; 87% average fill
75789 data pages; RADIUS_SESSIONS (254); 75789 data page slots; 86% average fill
949991 data pages; EVENTS_STACK (193); 949991 data page slots; 94% average fill
39178 data pages; ARCH_ACCOUNT_STACK; average fill 87%
75789 data pages; RADIUS_SESSIONS; average fill 86%
949991 data pages; EVENTS_STACK; average fill 94%
{code}
*data pages* - количество страниц данных занятое таблицой. *average fill* - коэфицент заполнения страниц данных.
По выводу видно что под таблицау EVENTS_STACK в базе отведенено существенно больше места, чем под все прочие.
# Дальнейшие шаги зависят от конкретных таблиц - суть в том, чтобы TOP3 были примерно одного порядка)
# Решив проблему переполнения таблиц, сделайте резервную копию и восстановление из неё - таким образом работает механизм "сборки мусора". Это описано в статье по системе мониторинга в [статье|Восстановление БД биллинга из резервной копии.#Создание резервной копии БД с последующим восстановлением].
# Решив проблему переполнения таблиц, сделайте [резервную копию и восстановление из неё|Восстановление БД биллинга из резервной копии.#Создание резервной копии БД с последующим восстановлением] - таким образом работает механизм "сборки мусора". После операции должен увеличится коэфициент *average fill*, при нормальной работе БД он будет более 80%.

h4. EVENTS_STACK