Jump to content

Первое число каждого месяца


MorS

Recommended Posts

Здравствуйте! 1-го числа каждого месяца, видимо, из-за процесса закрытия учетного периода "падает" радиус сервер:

 

May  1 00:00:15 billing kernel: [466821.810836] freeradius[15947]: segfault at 2012 ip 00007f7a9586f5da sp 00007f7a427fac60 error 4

May  1 00:00:15 billing kernel: [466821.810849] freeradius[15991]: segfault at 2012 ip 00007f7a9586f5da sp 00007f7a1a7f2c60 error 4 in rlm_perl-2.2.6.so[7f7a9586c000+6000]

May  1 00:00:15 billing kernel: [466821.811111]  in rlm_perl-2.2.6.so[7f7a9586c000+6000]

May  1 00:00:15 billing kernel: [466821.812848]  in rlm_perl-2.2.6.so[7f7a9586c000+6000] in rlm_perl-2.2.6.so[7f7a9586c000+6000]

 

Информация о системе:

-  OC Debian-7.11.0 Linux  2.6.32-3-amd64

- Версия биллинга ABillS 0.56b/20140807

- freeradius: FreeRADIUS Version 2.2.6

- mysqld  Ver 5.1.47-1

- сервера доступа Mikrotik (12 шт.)

- абонентов on-line на 1.05.2019 00:00:00 - 5570

Большинство тарифных планов с помесячной абонентской платой, с распределением абонплаты, макс. время сессии - 65535 сек.

 

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

1 вариант 

- выставить в параметрах сервера доступа !Session-Timeout=0,  макс. время сессии - 0 сек, отключить  в crontab (1    0  *  *  *  root   /usr/abills/libexec/periodic daily

1    1  *  *  *  root   /usr/abills/libexec/periodic monthly)

- 1-го числа каждого месяца (или каждые сутки?) воспользоваться программой autozh.pl и по очереди по одному насу переинициализировать сессии для сбора статистики.

 

2 вариант

В дополнении к первому пересобрать радиус на более свежий из второй ветки - 2.2.10. Возможно. проблема в нем. Плюс доработать скрипт, что следит за состоянием радиус-сервера (типа if [ -z "$(ps x | grep free[rad])" ]; then date >> /root/die.log;rm -f /var/run/freeradius/freeradius.pid;/etc/init.d/freeradius stop;/etc/init.d/freeradius start; fi)

 

3 вариант

В тарифных планах отказаться от месячной абонплаты  и настроить дневную абонентскую плату. В crontab оставить только periodic daily. Возможно это сделает нагрузку на биллинг более равномерной.

 

4 вариант 

Апгрейд биллинга до последней версии  - возможно модуль rlm_perl будет работать стабильнее. Интересует целесообразность и цена обновления.

 

Возможно, у есть другие варианты, с удовольствием с ними ознакомлюсь.

P.S. Может у кого есть autozh.pl для 0.5x версии биллинга? Скиньте, пожалуйста!

Edited by MorS
Link to post
Share on other sites

Я бы сказал что падает он от криво настроенного log rotate, а не от роста нагрузки.

Проверяйте как он hup отрабатывает.

Link to post
Share on other sites
3 часа назад, MorS сказал:

OC Debian-7.11.0 Linux  2.6.32-3-amd64

Не пора ли обновить? Debian 7 протух год назад.

 

Правильно выше про logrotate. Добавлю, проверьте еще задания cron которые выполняются в это время.

Edited by foreverok
Link to post
Share on other sites
14 часов назад, zulu_Radist сказал:

а раньше не падал?

Раньше не падал, пользователей в начале месяца выкидывало, но не так чтобы уж очень долго продолжался этот процесс.

Link to post
Share on other sites

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

Edited by zulu_Radist
Link to post
Share on other sites
17 часов назад, zulu_Radist сказал:

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

То есть вариант перейти на последнюю версию биллинга не рассматривается, как ненужный? B 0.5x уже не поддерживается разработчиками с 2018 года.

Edited by MorS
Link to post
Share on other sites
1 час назад, MorS сказал:

То есть вариант перейти на последнюю версию биллинга не рассматривается, как ненужный? B 0.5x уже не поддерживается разработчиками с 2018 года.

можете конечно, только на выходе можете получить вполне себе НЕрабочий биллинг

Link to post
Share on other sites
18 часов назад, zulu_Radist сказал:

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

У нас два мікротіка Х86 на серверах. Для них радіус відпрацьовує добре. Розвернув Ацель. При авторизації на Ацелі (1000+ абонів) Радіус падає до рестарта. Аббілс 0.59

Link to post
Share on other sites
5 часов назад, Digital_storm сказал:

У нас два мікротіка Х86 на серверах. Для них радіус відпрацьовує добре. Розвернув Ацель. При авторизації на Ацелі (1000+ абонів) Радіус падає до рестарта. Аббілс 0.59

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

Link to post
Share on other sites
7 часов назад, MorS сказал:

То есть вариант перейти на последнюю версию биллинга не рассматривается, как ненужный? B 0.5x уже не поддерживается разработчиками с 2018 года.


поправочка: 0.59 - 2016 год
Насколько помню у абиллса всегда политика поддержки = обновитесь до последней и тогда уже поехали по багам.
Работать-то оно будет, но "разбирайтесь сами". Подсмотреть в новые версии публичные никто никогда не мешает.

 

Link to post
Share on other sites
В 03.05.2019 в 20:26, zulu_Radist сказал:

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

Зулу я с этим посуточным мучаюсь уже лет 8. Есть две сети, разные места. Везде биллинг стг, так вот тариф допустим 150-170 грн. Хорошо когда месяц 30 дней и тариф 150 грн - снимается по 5 грн в сутки абонки и все. А вот когда 31 день и тариф 150-170, вот тогда ничинаются фокусы. стг делит 150 на 31 и естественно сутки не целое число. И в последний день месяца вылазят какие минимальные копейки в минусе и абона отключает не 1 числа а 31го числа. Делали фокус-скрипт, который в конце месяца сравнивает абонплату за месяц и смотрит остаток в последний день, а потом обнуляет минус. Но он вроде как работает только если абонент вовремя пополнил счет (до конца месяца заплатил за следующий). Если же абонент завтыкал и платит 1-2-3 числа, абонка уже в минусе + месячная абонка и в конце этого нового месяца у него уже копейки в минусе. Уточню что абонов приучил, что месяц у нас с 1 числа по 31 и вариант с 4го по 4 не катит. Может есть у кого идеи как победить мою беду? а то у меня 31-1 число каждый месяц танцы с бубном

Edited by Romeshik
Link to post
Share on other sites
22 minutes ago, Romeshik said:

Зулу я с этим посуточным мучаюсь уже лет 8. Есть две сети, разные места. Везде биллинг стг, так вот тариф допустим 150-170 грн. Хорошо когда месяц 30 дней и тариф 150 грн - снимается по 5 грн в сутки абонки и все. А вот когда 31 день и тариф 150-170, вот тогда ничинаются фокусы. стг делит 150 на 31 и естественно сутки не целое число. И в последний день месяца вылазят какие минимальные копейки в минусе и абона отключает не 1 числа а 31го числа. Делали фокус-скрипт, который в конце месяца сравнивает абонплату за месяц и смотрит остаток в последний день, а потом обнуляет минус. Но он вроде как работает только если абонент вовремя пополнил счет (до конца месяца заплатил за следующий). Если же абонент завтыкал и платит 1-2-3 числа, абонка уже в минусе + месячная абонка и в конце этого нового месяца у него уже копейки в минусе. Уточню что абонов приучил, что месяц у нас с 1 числа по 31 и вариант с 4го по 4 не катит. Может есть у кого идеи как победить мою беду? а то у меня 31-1 число каждый месяц танцы с бубном

 

Как правильно сделать расчет фиксированной абоненты при разной длине месяца я подробно объяснял автору стг еще... дай бог памяти, году эдак в 1997. Не сложилось. Видимо, никак это не исправить в стг.

Link to post
Share on other sites
В 04.05.2019 в 23:47, vop сказал:

 

Как правильно сделать расчет фиксированной абоненты при разной длине месяца я подробно объяснял автору стг еще... дай бог памяти, году эдак в 1997. Не сложилось. Видимо, никак это не исправить в стг.

Есть ли у вас возможность обьяснить и мне? У меня есть товарищ, которой смог бы мне прикрутить вашу идею к стг.

Link to post
Share on other sites
В 04.05.2019 в 23:21, Romeshik сказал:

Зулу я с этим посуточным мучаюсь уже лет 8. Есть две сети, разные места. Везде биллинг стг, так вот тариф допустим 150-170 грн. Хорошо когда месяц 30 дней и тариф 150 грн - снимается по 5 грн в сутки абонки и все. А вот когда 31 день и тариф 150-170, вот тогда ничинаются фокусы. стг делит 150 на 31 и естественно сутки не целое число. И в последний день месяца вылазят какие минимальные копейки в минусе и абона отключает не 1 числа а 31го числа. Делали фокус-скрипт, который в конце месяца сравнивает абонплату за месяц и смотрит остаток в последний день, а потом обнуляет минус. Но он вроде как работает только если абонент вовремя пополнил счет (до конца месяца заплатил за следующий). Если же абонент завтыкал и платит 1-2-3 числа, абонка уже в минусе + месячная абонка и в конце этого нового месяца у него уже копейки в минусе. Уточню что абонов приучил, что месяц у нас с 1 числа по 31 и вариант с 4го по 4 не катит. Может есть у кого идеи как победить мою беду? а то у меня 31-1 число каждый месяц танцы с бубном

это "размазанная" оплата, сделайте посуточную (т.е. к примеру 5 грн сутки, мес 30 д - 150 грн, 31 день - 155 грн), и проблем не будет.

Link to post
Share on other sites
3 часа назад, Romeshik сказал:

Есть ли у вас возможность обьяснить и мне? У меня есть товарищ, которой смог бы мне прикрутить вашу идею к стг.

вся суть идеи vop простая

два интовых поля, в одном храним целую часть, во втором дробную с округлением до нужной вам точности

всё

 

В 04.05.2019 в 21:15, mixtery сказал:

2016 год

сегфолтится rlm_perl и этим всё сказано

либо бага в перловом колбеке либо в либе радиуса

без трейса вряд ли можно отловить кто из двух уиноват

Link to post
Share on other sites
4 hours ago, Romeshik said:

Есть ли у вас возможность обьяснить и мне? У меня есть товарищ, которой смог бы мне прикрутить вашу идею к стг.

 

Попробую, хотя я уже давно занимаюсь другими вещами.

 

У вас есть абонплата - фиксированная цена за - один календарный месяц - период переменной длительности (31, 30,29 или 28  дней). Т.е. у вас есть расчетный период - один месяц. Независимо от его длительности. Это значит, что в лицевом счет должна появляться одна-единственная запись по окончанию расчетного периода - начисление за этот период.

 

С другой стороны, у вас услуга _непрерывного_ характера. Следовательно, самый естественный способ определения стоимости услуги тоже является непрерывным. Например, пропорционально доли абонплаты в зависимости времени предоставления услуги. Считать можно по-секндно, поминутно, по-часово. А проще - посуточно.

 

Вы же сможете двумя арифметическими операциями определить, сколько стоит услуга, предоставлявшаяся 1 день в месяц, 12, 23 или 30? Для любой длительности месяца? Эта стоимость является свойством продаваемой вам услуги. Точнее, свойством ресурса, который вы продаете. И это свойство попадет в лицевой счет, как выше писалось, только в конце расчетного периода.

 

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

 

Я не знаю, как это сделать в стг.

 

56 minutes ago, l1ght said:

вся суть идеи vop простая

два интовых поля, в одном храним целую часть, во втором дробную с округлением до нужной вам точности

всё

 

Про два поля - интересно. :) Что вы имели в виду?

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

 

Link to post
Share on other sites
34 минуты назад, vop сказал:

Про два поля - интересно. :) Что вы имели в виду?

Очевидно для поля в РСУДБ. Бабло ж в надежной базе храним.

34 минуты назад, vop сказал:

Учет ведется в единицах, в 10 раз меньших минимальной денежной единицы

Я помню просто был тема что нужно единицы хранить отдельно от "копеек" в двух разных целочисленных полях.

Link to post
Share on other sites
1 hour ago, l1ght said:

Очевидно для поля в РСУДБ. Бабло ж в надежной базе храним.

 

Понятно. Бабло храним в надежной базе. :)

 

1 hour ago, l1ght said:

Я помню просто был тема что нужно единицы хранить отдельно от "копеек" в двух разных целочисленных полях.

 

Видимо, это было без меня.

Link to post
Share on other sites
7 hours ago, l1ght said:

Ну может память подводит, придется тред поискать.

 

Вопрос не столь принципиален, но если желание есть, было бы интересно почитать. :)

Edited by vop
Link to post
Share on other sites
50 минут назад, vop сказал:

 

Вопрос не столь принципиален, но если желание есть, было бы интересно почитать. :)

Не смог найти.

Может это был плод моей подбитой фантазии.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By ~AsmodeuS~
      Розщеплення платежів
      В нашу систему додається підтримка нового функціоналу платіжних систем під назвою «Розщеплення платежів»
      Список систем:
      — Liqpay
      — Приват
      — Easypay merchant
      — Easypay provider (скоро)
      — Portmone (скоро)
      — City24 (скоро)
      — iPay (скоро)
      Список підтримуваних платіжних може бути розширено в майбутньому.
      Уже доступно в release 1.30.00.
      Підтримується з Paysys V4.
    • By ~AsmodeuS~
      Новий модуль Power: облік роботи генераторів (http://abills.net.ua/wiki/display/AB/Power)
       
      Ми раді представити новий модуль Power, який дозволяє здійснювати облік та контроль роботи генераторів.
      Основні можливості модуля включають:
      — Типи генераторів: Перелік доступних типів генераторів.
      — Типи баків генераторів: Інформація про різні типи паливних баків для генераторів.
      — Типи сервісних робіт: Каталог доступних типів обслуговування та ремонтних робіт.
      — Статус генераторів: Моніторинг запусків, зупинок та інших дій з генераторами.
      Звіти:
      — Звіт заправок генераторів
      — Звіт запусків генераторів
      — Звіт обслуговування генераторів
      Цей модуль допоможе вам легко керувати генераторами та відстежувати їхній стан. Ви можете переглядати останні запуски, заправки та сервісні роботи для всіх генераторів на одній головній сторінці.
      Буде доступно в master 1.29.00.
       
       
       
    • By ~AsmodeuS~
      PON  панель
       
       
    • By ledemip
      Всем привет! Интересует вопрос покупки приложения ABillS Lite. Однако вопрос стоит в том как приобрести данное приложение и его поддержку, поскольку я сам гражданин РФ, но в настоящее время я нахожусь в Латвии, однако услуги интернета моя компания предоставляет на рынке РФ и зарегистрирована компания также в РФ.
       
      Однако, возможно ли какие-то варианты приобрести данное приложение? Платеж отправлю из Латвии, если такой вариант будет возможен, или в крипте.
       
      Я не в политике и действительно не восторге от всех этих событий, поэтому прошу вас очень, давайте по существу. Буду благодарен за любую помощь!
       
      Я использую ABillS v0.94.
      Мой телеграмм @ledemir556
×
×
  • Create New...