Добрый день! Помогите, пожалуйста, разобраться.
Тестируем обновление на 5.2. Наблюдаю следующую проблему:
Использую механизм мусорных таблиц, в конфигурации сервера:
Код:
db.trash.trash1.url=jdbc:mysql://172.18.128.102:3306/trash1?useUnicode=true&characterEncoding=Cp1251&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&useCursorFetch=true&queryTimeoutKillsConnection=true
db.trash.trash1.user=bgbilling
db.trash.trash1.pswd=...
db.trash.trash1.maxIdle=30
db.trash.trash1.maxActive=100
trash.table.map.1.log_function_process=trash1
trash.table.map.2.log_server=trash1
trash.table.map.3.reject_to_accept=trash1
Есть модули IP-Телефонии, и DialUP
с таблицами log_function_process_201210 и log_server_3_201210 (voip) - никаких проблем.
Но с log_server_1_201210(DialUP) проблема - бутаю радиус, "mysql> show processlist" показывает рост подключений к базе, в таблицу вставляется строк 200, потом соединения пропадают ("mysql> show processlist" показывает пару строк). В радиусе появляются ошибки:
Код:
radius 10-24/11:15:53 ERROR [rdsLstnr-p-7-t-14] DefaultServerSetup - Trash Pool [trash1]: Connections limit is over!!!!!
radius 10-24/11:15:53 ERROR [rdsLstnr-p-7-t-14] RadiusUtils - RadiusUtils.addToLog - can't append: date=1351062953395 tableName=log_server_1_201210 record_id=-1 log:
на почту приходят сообщения:
Код:
ID события: db.trash.connection.limit.over
Время регистрации события: 24.10.2012 11:10:13
Хост сервера: ....
Это может привести к недостоверности получаемых данных.
Необходимо предпринять меры по ускорению работы Trash баз данных.
Connections pool to Master status Idle: 16; Active: 1; maxActive: 300; maxIdle: 20
Connections pool to Trash "trash1" status Idle: 0; Active: 100; maxActive: 100; maxIdle: 30
при этом log_function_process_201210 и log_server_3_201210 (voip) - продолжают заполнятся.
С железом и конфигами, думаю, не связано. Конфиг мускуля по доке. Сервер довольно мощный, радиус 5.1 при гораздо больших нагрузках, с такими же конфигами, работает на нем без ошибок.
Откуда "Active: 100", если:
Код:
mysql> show processlist;
+-----+-----------+----------------------+--------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+-----------+----------------------+--------+---------+------+-------+------------------+
| 1 | bgbilling | 172.18.128.102:39500 | trash1 | Sleep | 0 | | NULL |
| 8 | bgbilling | 172.18.128.102:39501 | trash1 | Sleep | 0 | | NULL |
| 771 | root | localhost | trash1 | Query | 0 | NULL | show processlist |
| 773 | bgbilling | 172.18.128.101:35507 | trash1 | Sleep | 2202 | | NULL |
| 776 | bgbilling | 172.18.128.102:60634 | trash1 | Sleep | 0 | | NULL |
| 777 | bgbilling | 172.18.128.101:37687 | trash1 | Sleep | 13 | | NULL |
+-----+-----------+----------------------+--------+---------+------+-------+------------------+
6 rows in set (0.00 sec)
Если проблема с бд, почему тогда виснет именно DialUP а Voip продолжает работать? Есть какие то идеи?
radius.properties:
Код:
auth.thread.count=100
auth.thread.queue=50
acct.thread.count=100
acct.thread.queue=50