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

Ошибки в radius.out
http://forum.bitel.ru/viewtopic.php?f=5&t=1961
Страница 1 из 1

Автор:  iONE [ 01 мар 2009, 21:08 ]
Заголовок сообщения:  Ошибки в radius.out

На границе месяца, после принудительного сброса сессий, идёт большой поток запросов к radius серверу, при этом лог radius.out забивается сообщениями след. вида.

Код:
01.03.2009 00:01:24 ERROR: RadiusPacket.addToLog(date, record_id)
01.03.2009 00:01:24 date = Sun Mar 01 00:01:24 MSK 2009
01.03.2009 00:01:24 tableName = log_server_1_200903
01.03.2009 00:01:24 record_id = 205346
01.03.2009 00:01:24 log:

Type=ACCOUNTING_REQUEST
Attributes:
        User-Name=1518
        NAS-IP-Address=172.17.1.6
        NAS-Port=255
        Service-Type=2
        Framed-Protocol=1
        Framed-IP-Address=10.0.61.173
        Acct-Input-Octets=57861663
        Acct-Output-Octets=74701893
        Acct-Status-Type=2
        Acct-Delay-Time=0
        Acct-Session-Time=8528
        Acct-Input-Packets=370841
        Acct-Session-Id=49A984D451DD00
        Acct-Authentic=1
        Acct-Terminate-Cause=1
        Acct-Output-Packets=401214
        Calling-Station-Id=10.49.15.157
        NAS-Port-Type=0


Таким образом, много сессий теряется.
Похоже надо крутить мускул на количество сокетов.

Какие рекомендации по тюннингу БД на одновременный обсчёт около 6000 сессий?

Автор:  snark [ 02 мар 2009, 17:32 ]
Заголовок сообщения:  Re: Ошибки в radius.out

ничего тюнить не надо ... я полагаю что это все из за этого (id модуля dialup = 1):
Код:
01.03.2009 00:00:03 com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'bgbilling.log_server_1_200903' doesn't exist
01.03.2009 00:00:03     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
01.03.2009 00:00:03     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
01.03.2009 00:00:03     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
01.03.2009 00:00:03     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
01.03.2009 00:00:03     at com.mysql.jdbc.Connection.execSQL(Connection.java:3124)
01.03.2009 00:00:03     at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1149)
01.03.2009 00:00:03     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
01.03.2009 00:00:03     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314)
01.03.2009 00:00:03     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299)
01.03.2009 00:00:03     at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:233)
01.03.2009 00:00:03     at bitel.billing.server.radius.RadiusPacket.addToLog(RadiusPacket.java:1278)
01.03.2009 00:00:03     at bitel.billing.server.processor.dialup.DialUpNASConnection.stopConnection(DialUpNASConnection.java:239)
01.03.2009 00:00:03     at bitel.billing.server.processor.dialup.DialUpNASConnectionList.stopConnection(DialUpNASConnectionList.java:176)
01.03.2009 00:00:03     at bitel.billing.server.processor.DefaultNASInfo.stopConnection(DefaultNASInfo.java:70)
01.03.2009 00:00:03     at bitel.billing.server.processor.DefaultNASList.stopConnection(DefaultNASList.java:107)
01.03.2009 00:00:03     at bitel.billing.server.processor.DefaultProcessor.accountingProcess(DefaultProcessor.java:48)
01.03.2009 00:00:03     at bitel.billing.server.processor.dialup.DialUpProcessor.accountingProcess(DialUpProcessor.java:425)
01.03.2009 00:00:03     at bitel.billing.server.radius.RadiusRequestThread.processRequest(RadiusRequestThread.java:147)
01.03.2009 00:00:03     at bitel.billing.server.radius.RadiusRequestThread.run(RadiusRequestThread.java:48)
01.03.2009 00:00:03     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
01.03.2009 00:00:03     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
01.03.2009 00:00:03     at java.lang.Thread.run(Thread.java:619)

т.е. биллинг знает что надо сбросить юзеров в конце месяца и знает когда наступает этот конец месяца, но вот почему он не создает новую таблицу хотя бы за 5 минут до этого момента - для меня этот вопрос без ответа уже очень давно :( надеюсь подобное поведение все же когда нибудь поправят ...

Автор:  iONE [ 02 мар 2009, 18:07 ]
Заголовок сообщения: 

Точно, так оно и есть:

Начало февраля:

Код:
01.02.2009 00:00:03 com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'bgbilling.log_server_1_200902' doesn't exist
01.02.2009 00:00:03     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
01.02.2009 00:00:03     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
01.02.2009 00:00:03     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
01.02.2009 00:00:03     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
01.02.2009 00:00:03     at com.mysql.jdbc.Connection.execSQL(Connection.java:3124)
01.02.2009 00:00:03     at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1149)
01.02.2009 00:00:03     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
01.02.2009 00:00:03     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314)
01.02.2009 00:00:03     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299)
01.02.2009 00:00:03     at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:233)
01.02.2009 00:00:03     at bitel.billing.server.radius.RadiusPacket.addToLog(RadiusPacket.java:1278)
01.02.2009 00:00:03     at bitel.billing.server.processor.dialup.DialUpNASConnection.stopConnection(DialUpNASConnection.java:239)
01.02.2009 00:00:03     at bitel.billing.server.processor.dialup.DialUpNASConnectionList.stopConnection(DialUpNASConnectionList.java:176)
01.02.2009 00:00:03     at bitel.billing.server.processor.DefaultNASInfo.stopConnection(DefaultNASInfo.java:70)
01.02.2009 00:00:03     at bitel.billing.server.processor.DefaultNASList.stopConnection(DefaultNASList.java:107)
01.02.2009 00:00:03     at bitel.billing.server.processor.DefaultProcessor.accountingProcess(DefaultProcessor.java:48)
01.02.2009 00:00:03     at bitel.billing.server.processor.dialup.DialUpProcessor.accountingProcess(DialUpProcessor.java:421)
01.02.2009 00:00:03     at bitel.billing.server.radius.RadiusRequestThread.processRequest(RadiusRequestThread.java:147)
01.02.2009 00:00:03     at bitel.billing.server.radius.RadiusRequestThread.run(RadiusRequestThread.java:48)
01.02.2009 00:00:03     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
01.02.2009 00:00:03     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
01.02.2009 00:00:03     at java.lang.Thread.run(Unknown Source)


Начало марта:

Код:
01.03.2009 00:00:01 com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'bgbilling.log_server_1_200903' doesn't exist
01.03.2009 00:00:01     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
01.03.2009 00:00:01     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
01.03.2009 00:00:01     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
01.03.2009 00:00:01     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
01.03.2009 00:00:01     at com.mysql.jdbc.Connection.execSQL(Connection.java:3124)
01.03.2009 00:00:01     at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1149)
01.03.2009 00:00:01     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
01.03.2009 00:00:01     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314)
01.03.2009 00:00:01     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299)
01.03.2009 00:00:01     at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:233)
01.03.2009 00:00:01     at bitel.billing.server.radius.RadiusPacket.addToLog(RadiusPacket.java:1278)
01.03.2009 00:00:01     at bitel.billing.server.processor.dialup.DialUpNASConnection.stopConnection(DialUpNASConnection.java:239)
01.03.2009 00:00:01     at bitel.billing.server.processor.dialup.DialUpNASConnectionList.stopConnection(DialUpNASConnectionList.java:176)
01.03.2009 00:00:01     at bitel.billing.server.processor.DefaultNASInfo.stopConnection(DefaultNASInfo.java:70)
01.03.2009 00:00:01     at bitel.billing.server.processor.DefaultNASList.stopConnection(DefaultNASList.java:107)
01.03.2009 00:00:01     at bitel.billing.server.processor.DefaultProcessor.accountingProcess(DefaultProcessor.java:48)
01.03.2009 00:00:01     at bitel.billing.server.processor.dialup.DialUpProcessor.accountingProcess(DialUpProcessor.java:421)
01.03.2009 00:00:01     at bitel.billing.server.radius.RadiusRequestThread.processRequest(RadiusRequestThread.java:147)
01.03.2009 00:00:01     at bitel.billing.server.radius.RadiusRequestThread.run(RadiusRequestThread.java:48)
01.03.2009 00:00:01     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
01.03.2009 00:00:01     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
01.03.2009 00:00:01     at java.lang.Thread.run(Unknown Source)


И что теперь с этим делать?

Автор:  snark [ 02 мар 2009, 19:58 ]
Заголовок сообщения: 

iONE писал(а):
И что теперь с этим делать?

ждать исправления этого бага ...

может попутно исправят и это:
Код:
INFO   01.03.2009 00:00:31  [ i1021; i1021; 32371 ] DialUpNASConnection update connection..
INFO   01.03.2009 00:00:31  [ i1021; i1021; 32371 ] DialUpNASConnection set STATUS=1
INFO   01.03.2009 00:00:31  [ i1021; i1021; 32371 ] Set connection to KILL
INFO   01.03.2009 00:00:31  [ i1021; i1021; 32371 ] Month break

т.е. новый месяц уже начался, а БГБ только начал отключение ...

Автор:  iONE [ 02 мар 2009, 23:23 ]
Заголовок сообщения: 

А что если сыграть на опережение, создать таблиц на несколько мес. вперёд...

Автор:  snark [ 03 мар 2009, 00:35 ]
Заголовок сообщения: 

да хоть на годы :) главное - как себя поведет в этом случае БГБ?

Автор:  Администратор [ 05 мар 2009, 14:50 ]
Заголовок сообщения: 

Цитата:
Таким образом, много сессий теряется.

Это не таблица сессий, а таблица radius логов с запросами по сессии. К потере сессий это не ведет.

Цитата:
Какие рекомендации по тюннингу БД на одновременный обсчёт около 6000 сессий?

Текущий рекорд у нас ~ 42 000 одновременных соединений на 90 МПД серверах с обсчетом раз в 10 минут.. К 4.6 версии создадим раздел в доке, посвященный оптимизации. Радиус и биллинг 4.6 сильно доработаны в этой области.

По несоздаваемой таблице - разберемся, я тоже фиксировал эту ошибку.

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