BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 20 июн 2025, 00:05

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 24 ] 
Автор Сообщение
СообщениеДобавлено: 01 апр 2015, 16:32 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Доброго дня,

Сегодня ночью мне пришло страшное письмо:
Код:
ID события: radius.wait.thread
Время регистрации события: 01.04.2015 00:00:17

В рамках отведенного переменными количества потоков threadCount=100 и размером очереди обработки maxQueueSize=500 RADIUS сервер не успеевает производить обработку аккаунтинг запросов.
Возможная причина - загруженность базы данных.

Radius:
  accounting-requests per minute start: 1; stop: 3; update: 1316
  access-requests per minute accept: 0; reject: 0
  ignore per minute access-request: 0; accounting-update: 0
Stack trace:

"MySQL Statement Cancellation Timer" Id=16163 TIMED_WAITING on java.util.TaskQueue@14703cca
        at java.lang.Object.wait(Native Method)
        -  waiting on java.util.TaskQueue@14703cca
        at java.util.TimerThread.mainLoop(Timer.java:552)
        at java.util.TimerThread.run(Timer.java:505)


Ровно в полночь на первое число... И вот теперь в логах (error.log) BGInetAccess:
Код:
connection 04-01/12:35:53 ERROR [sa-p-13-t-94] InetSaOptionsModifyEvent - Connection not found with id=474464
connection 04-01/12:58:48 ERROR [sa-p-13-t-93] InetSaStateModifyEvent - Connection not found with id=474983
connection 04-01/13:00:21 ERROR [sa-p-13-t-5] InetSaStateModifyEvent - Connection not found with id=472917
connection 04-01/14:14:46 ERROR [sa-p-13-t-83] InetSaStateModifyEvent - Connection not found with id=475217
connection 04-01/14:25:40 ERROR [sa-p-13-t-56] InetSaOptionsModifyEvent - Connection not found with id=472857
connection 04-01/14:30:15 ERROR [sa-p-13-t-88] InetSaStateModifyEvent - Connection not found with id=475268
connection 04-01/14:39:58 ERROR [sa-p-13-t-61] InetSaOptionsModifyEvent - Connection not found with id=472900
connection 04-01/14:45:20 ERROR [sa-p-13-t-21] InetSaOptionsModifyEvent - Connection not found with id=472873
connection 04-01/14:45:30 ERROR [sa-p-13-t-55] InetSaStateModifyEvent - Connection not found with id=472809
connection 04-01/15:14:35 ERROR [sa-p-13-t-63] InetSaStateModifyEvent - Connection not found with id=473131

Ошибок много и они не прекращаются.

Похоже вопрос производительности, поэтому прошу помочь советов с тюнингом параметров.
Количество абонентов онлайн приближается к 1000. Количество свичей - 400. Не так уж и много.... У многих гораздо больше, посоветуйте что-нибудь, пожалуйста.

BGInetAccess:
Код:
./access_status.sh
Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.7.0_65] /opt/java/jdk1.7.0_65/jre
  Java endorsed dirs: /lib/endorsed:/opt/java/jdk/lib/endorsed
  OS: Linux 3.2.0-4-amd64 [amd64], file.encoding: UTF-8, user.name: root
  Heap sizes: current=123392k  free=122080k  max=1824256k
Kernel version 6.1.1047 / 04.03.2015 19:50:23
Inet version 6.1.661 / 05.03.2015 19:12:18
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 0; reject: 0
  ignore per minute access-request: 0; accounting-update: 0
Antispam ban count: 0; used per minute: 0

Started: 10.03.2015 10:32:30    Uptime: 22 d 03:36:40
Memory total: 192 413 696; max: 954 728 448; free: 8 268 840
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 8 853 568; peek: 9 034 496
  Heap memory[PS Eden Space]: max: 357 040 128; used: 131 912; peek: 325 582 848
  Heap memory[PS Survivor Space]: max: 524 288; used: 163 840; peek: 119 009 248
  Heap memory[PS Old Gen]: max: 715 653 120; used: 183 852 032; peek: 554 713 168
  Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 32 485 768; peek: 32 510 648
Thread count: 639
Trees in cache: 0
Connections pool to Master status Idle: 20; Active: 0; maxActive: 300; maxIdle: 20


BGInetAccess:
Код:
./accounting_status.sh
Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.7.0_65] /opt/java/jdk1.7.0_65/jre
  Java endorsed dirs: /lib/endorsed:/opt/java/jdk/lib/endorsed
  OS: Linux 3.2.0-4-amd64 [amd64], file.encoding: UTF-8, user.name: root
  Heap sizes: current=123392k  free=122736k  max=1824256k
Kernel version 6.1.1047 / 04.03.2015 19:50:23
Inet version 6.1.661 / 05.03.2015 19:12:18
Radius:
  accounting-requests per minute start: 3; stop: 0; update: 1339
  access-requests per minute accept: 0; reject: 0
  ignore per minute access-request: 0; accounting-update: 0

Started: 10.03.2015 10:32:37    Uptime: 22 d 03:53:55
Memory total: 103 809 024; max: 954 728 448; free: 32 674 936
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 9 043 072; peek: 9 053 568
  Heap memory[PS Eden Space]: max: 357 040 128; used: 12 168 512; peek: 328 728 576
  Heap memory[PS Survivor Space]: max: 524 288; used: 332 408; peek: 14 664 128
  Heap memory[PS Old Gen]: max: 715 653 120; used: 58 639 040; peek: 90 872 320
  Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 32 590 704; peek: 32 608 448
Thread count: 159
Trees in cache: 0
Connections pool to Master status Idle: 20; Active: 1; maxActive: 300; maxIdle: 20


Код:
./mysqltuner.pl
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.41-0+wheezy1-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in InnoDB tables: 2G (Tables: 581)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] Total fragmented tables: 75

-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 1d 4h 26m 18s (18M q [177.006 qps], 16K conn, TX: 3B, RX: 2B)
[--] Reads / Writes: 6% / 94%
[--] Total buffers: 3.1G global + 2.7M per thread (500 max threads)
[OK] Maximum possible memory usage: 4.4G (56% of installed RAM)
[OK] Slow queries: 0% (11K/18M)
[OK] Highest usage of available connections: 32% (162/500)
[OK] Key buffer size / total MyISAM indexes: 16.0M/97.0K
[OK] Key buffer hit rate: 100.0% (76K cached / 0 reads)
[OK] Query cache efficiency: 89.9% (5M cached / 6M selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 67K sorts)
[OK] Temporary tables created on disk: 1% (151 on disk / 13K total)
[OK] Thread cache hit rate: 97% (365 created / 16K connections)
[!!] Table cache hit rate: 17% (640 open / 3K opened)
[OK] Open file limit used: 0% (49/32K)
[OK] Table locks acquired immediately: 100% (72M immediate / 72M locks)
[OK] InnoDB data size / buffer pool: 2.2G/3.0G

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    table_cache (> 4096)


БД на отдельном сервере, activemq тоже отдельно.

Код:
  Сервер: вер. 6.1.1047 / 04.03.2015 19:50:23
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_65

  card: вер. 6.1.204 / 04.03.2015 19:50:22
  inet: вер. 6.1.661 / 05.03.2015 19:12:18
  npay: вер. 6.1.184 / 11.02.2015 04:02:21
  reports: вер. 6.1.196 / 08.02.2015 20:45:22
  subscription: вер. 6.1.30 / 08.02.2015 20:45:31


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 17:00 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Само сообщение, если оно одно - не страшно, если постоянная нагрузка - то такие письма будут приходить постоянно.
Такое бывает, если cisco присылает update-пакеты скопом сразу много в течении очень маленького промежутка времени - а тут начался новый день, идет работа с БД.

Посмотрите, сколько файлов в activemq/data/kahadb.
Посмотрите в БД для какой-нибудь записи InetSaStateModifyEvent - Connection not found with id=473131 сессию в inet_session_log c таким connectionId - во сколько она закончилась - прямо перед тем как появилась эта строчка в логе или давно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 17:01 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Отправьте в личку что там дальше после строки Stack trace:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 17:18 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Amir писал(а):
Само сообщение, если оно одно - не страшно, если постоянная нагрузка - то такие письма будут приходить постоянно.

Посмотрите, сколько файлов в activemq/data/kahadb.
Посмотрите в БД для какой-нибудь записи InetSaStateModifyEvent - Connection not found with id=473131 сессию в inet_session_log c таким connectionId - во сколько она закончилась - прямо перед тем как появилась эта строчка в логе или давно.


Код:
/opt/apache-activemq-5.9.1/data/kahadb# ls -l
total 12772
-rw-r--r-- 1 root root 33030144 Apr  1 16:02 db-2642.log
-rw-r--r-- 1 root root  5763072 Apr  1 16:02 db.data
-rw-r--r-- 1 root root   931600 Apr  1 16:02 db.redo
-rw-r--r-- 1 root root        0 Feb 10 18:39 lock


Для id=473131:
Код:
connection 04-01/15:14:35 ERROR [sa-p-13-t-63] InetSaStateModifyEvent - Connection not found with id=473131

Код:
mysql> select * from inet_session_log_2_201504 where connectionId=473131;
+--------+----------+------------+--------------+--------------------+----------+------------+---------------+----------------------+--------------+-------+------+------------+--------+-----------------+------------------+--------------+-----------+---------------------+---------------------+---------------------+---------------------+-------------+---------------+-------------+-------------+--------+
| id     | parentId | splittedId | connectionId | parentConnectionId | deviceId | devicePort | agentDeviceId | acctSessionId        | username     | realm | type | accessCode | servId | calledStationId | callingStationId | ipResourceId | ipAddress | connectionStart     | sessionStart        | sessionStop         | lastActive          | deviceState | deviceOptions | sessionTime | sessionCost | status |
+--------+----------+------------+--------------+--------------------+----------+------------+---------------+----------------------+--------------+-------+------+------------+--------+-----------------+------------------+--------------+-----------+---------------------+---------------------+---------------------+---------------------+-------------+---------------+-------------+-------------+--------+
| 779424 |        0 |          0 |       473131 |                  0 |        2 |  162462877 |             0 | 15/0/1/1001_09AEFC9D | 109.XXX.49.8 | NULL  |   40 |          0 |    415 |                 | E8DE27503CF7     |           -1 | m      | 2015-04-01 00:05:31 | 2015-04-01 00:05:31 | 2015-04-01 15:14:32 | 2015-04-01 15:13:46 |           0 |               |       54542 |     0.00000 |      4 |
| 782399 |        0 |     779424 |       473131 |                  0 |        2 |  162462877 |             0 | 15/0/1/1001_09AEFC9D | 109.XXX.49.8 | NULL  |   42 |          0 |    415 |                 | E8DE27503CF7     |           -1 | m      | 2015-04-01 00:05:31 | 2015-04-01 15:14:33 | 2015-04-01 15:14:32 | 2015-04-01 15:14:48 |           1 |               |           0 |     0.00000 |      4 |
+--------+----------+------------+--------------+--------------------+----------+------------+---------------+----------------------+--------------+-------+------+------------+--------+-----------------+------------------+--------------+-----------+---------------------+---------------------+---------------------+---------------------+-------------+---------------+-------------+-------------+--------+


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 17:20 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
То есть сессия появилась ночью, а сразу перед тем как попасть в error.log закрылась (но биллинг ее уже не нашел?)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 17:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Amir писал(а):
Отправьте в личку что там дальше после строки Stack trace:


отправил. получилось слишком много )) пришлось зазиповать


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 17:33 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А mysql быстро работает на запись? В логах Accounting при нормальной работе постоянно пишет Flushed CNT sessions for TIME millis. Какие там значения обычно?
Что указано в параметре innodb_flush_log_at_trx_commit в my.ini?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 17:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Amir писал(а):
А mysql быстро работает на запись? В логах Accounting при нормальной работе постоянно пишет Flushed CNT sessions for TIME millis. Какие там значения обычно?
Что указано в параметре innodb_flush_log_at_trx_commit в my.ini?


innodb_flush_log_at_trx_commit = 2

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 18:02 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Честно говоря не знаю :)
Но то что пишет Accounting тоже должно быть наглядно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 18:20 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Вот есть:
Код:
all.log:accounting 04-01/17:18:07  INFO [accwrkr-2-p-11-t-1] SessionFlushingWorker - Flushed 500 sessions for 1214(1207) ms.
all.log:accounting 04-01/17:18:28  INFO [accwrkr-2-p-11-t-1] SessionFlushingWorker - Flushed 500 sessions for 1185(1181) ms.
all.log:accounting 04-01/17:18:49  INFO [accwrkr-2-p-11-t-1] SessionFlushingWorker - Flushed 500 sessions for 1119(1116) ms.
all.log:accounting 04-01/17:19:10  INFO [accwrkr-2-p-11-t-1] SessionFlushingWorker - Flushed 471 sessions for 1034(1029) ms.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2015, 19:00 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
SessionFlushingWorker - Flushed 500 sessions for 367(365) ms.
Это довольно мощная машина, но и нагрузка у нее больше. Т.е. значение ~600ms было бы больше похоже на правду, чем 1100. Возможно mysql записывает не так быстро как мог бы.
Но этом может быть не критично.

Из непонятного это Connection not found with id=474464
Отправьте логи Access в личку.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 апр 2015, 00:42 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Буду читать про тюнинг mysql на запись :)
Логи отправил в личку, спасибо большое за помощь!

Ошибки все еще потихоньку идут (похоже это последствия первого числа - многие не оплатили, всем разом позакрывались сессии и вот...):
connection 04-01/20:31:27 ERROR [sa-p-13-t-96] InetSaOptionsModifyEvent - Connection not found with id=476386
connection 04-01/20:31:27 ERROR [sa-p-13-t-96] InetSaOptionsModifyEvent - Connection not found with id=472978
connection 04-01/20:31:27 ERROR [sa-p-13-t-96] InetSaOptionsModifyEvent - Connection not found with id=476088
connection 04-01/21:21:22 ERROR [sa-p-13-t-54] InetSaStateModifyEvent - Connection not found with id=475988
connection 04-01/21:21:27 ERROR [sa-p-13-t-63] InetSaStateModifyEvent - Connection not found with id=475988

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 апр 2015, 12:20 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Небольшой апдейт... я так понимаю проблемы две (возможно они взаимосвязаны):

1) ошибки "Connection not found with id" продолжают приходить, но уже довольно вяло.
Код:
connection 04-01/21:21:22 ERROR [sa-p-13-t-54] InetSaStateModifyEvent - Connection not found with id=475988
connection 04-01/21:21:27 ERROR [sa-p-13-t-63] InetSaStateModifyEvent - Connection not found with id=475988
connection 04-02/00:33:29 ERROR [sa-p-13-t-80] InetSaStateModifyEvent - Connection not found with id=477104
connection 04-02/00:33:36 ERROR [sa-p-13-t-83] InetSaStateModifyEvent - Connection not found with id=477104
connection 04-02/00:33:47 ERROR [sa-p-13-t-17] InetSaStateModifyEvent - Connection not found with id=477104

Но боюсь 1го числа следующего месяца ситуация повторится.


2) производительность mysql. Сегодня пришло аж три письма:
Код:
ID события: db.master.connect.error
Время регистрации события: 02.04.2015 08:54:25


Необходимо срочно восстановить соединение с Master базой.

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2332)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
        at sun.reflect.GeneratedConstructorAccessor46.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
        at java.sql.DriverManager.getConnection(DriverManager.java:571)
        at java.sql.DriverManager.getConnection(DriverManager.java:215)
        at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:75)
        at ru.bitel.bgbilling.server.util.DefaultServerSetup$2.makeObject(DefaultServerSetup.java:376)
        at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
        at ru.bitel.bgbilling.server.util.DatabaseConnectionPool$1.getConnection(DatabaseConnectionPool.java:30)
        at ru.bitel.bgbilling.server.util.DefaultServerSetup.getDBConnectionFromPool(DefaultServerSetup.java:572)
        at ru.bitel.bgbilling.modules.inet.access.OldConnectionsRemover.run(OldConnectionsRemover.java:30)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)
Caused by: java.net.SocketTimeoutException: connect timed out
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:579)
        at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:330)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)
        ... 27 more


Никогда такого не было! На mysql сервере все чисто, iostat спокойный, top в порядке, память не свопит, связь до mysql сервера чистая, без дропов. mysqltuner ничего подозрительного не выявляет...
Понимаю что вопрос не профильный, но может кто-то что-то посоветует?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 апр 2015, 18:19 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
От каких серверов пришло? Что у них в URL доступа к БД?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 апр 2015, 18:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Amir писал(а):
От каких серверов пришло? Что у них в URL доступа к БД?


Пришло от шедулера. Url в data.properties:
db.url=jdbc:mysql://109.XXX.1.24/bgbilling?useUnicode=true&characterEncoding=UTF-8&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true&useCursorFetch=true&queryTimeoutKillsConnection=true&connectTimeout=1000

Больше пока не приходило


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 апр 2015, 19:03 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Попробуйте указать
&connectTimeout=5000
Похоже при попытке открыть соединение к БД в течении 1 секунды не успел подключиться, потому вышла такая ошибка.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2015, 15:55 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Много читал, много думал, много анализировал...
файловая система ext4 и в my.cnf:
innodb_flush_method = O_DIRECT
нужно как-то по особому маунтить файловую систему чтобы получить выгоду от небуферизированной в mysql записи?
кстати sync_binlog у меня по умолчанию 0 что тоже должно было ускорять запись...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2015, 16:25 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Решил немного почистить таблицы... inet_session_log_detail_2_201503 весила 700 мегабайт:

mysql> delete from inet_session_log_detail_2_201503;
Query OK, 4556199 rows affected (11 min 41.38 sec)

11 минут! Это очень плохо, да?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2015, 16:43 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Попробовали для сравнения (но возможно не корректного, т.к. другой нагрузки на БД не было) на Intel i3 2 ядра, но там SSD. Удалили из этой таблицы 3.5M записей - 2:40.

Если нужно быстро полностью очистить таблицу, то гораздо быстрее будет вызвать TRUNCATE table_name - эта команда не пишет в журнал.
Только точно то что удалили не нужно?

И вроде бы многовато записей в этой таблице для этого кол-ва абонентов - много типов трафиков заведено? Или много коротких сессий?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2015, 17:10 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
4.5M за 11 минут у меня и 3,5М за неполные 3 минуты у вас... разница серьезная...
насчет truncate спасибо за совет.
Нет, если там ничего кроме детализации сессий (сколько какого траффика было) нет - все ок. Я бы вообще эти данные в trash базу вынес, а почему так много - да, видимо коротких сессий многовато


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2015, 22:35 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Таблица connection_log_entry_{mid}_201501: 7,7М записей, 2Гб.
TRUNCATE TABLE connection_log_entry_{mid}_201501: 0,7 сек.

Что я делаю не так?

SELECT COUNT(*) FROM inet_session_log_detail_24_201501; так и не дождался, но на диске файлы занимают примерно 6,5Гб. Если память не изменяет, то там примерно 35М записей.

P. S. Недавно чистил все эти таблицы и удаление _всех_ данных занимало очень мало времени, не понимаю, откуда у вас такие цифры. Если удалять с фильтром по id, то да, всё плохо - пришлось окольными путями чистить таблицы, а не через DELETE.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Последний раз редактировалось vkulakov 03 апр 2015, 22:46, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2015, 22:45 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Цитата:
SessionFlushingWorker - Flushed 500 sessions for 367(365) ms.

У меня минимум 1000 ms, а максимум 3400 ms. Может мне тоже стоит беспокоиться. Правда писем никаких не приходит.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 апр 2015, 18:00 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Возможно наоборот не стоит беспокоиться.
Точнее и в случае иногда приходящих писем тоже не стоит особо беспокоиться, но все же странно, особенно в этом случае - там практически все потоки RADIUS-listener'а ждут выполнения UPDATE/INSERT в БД (в момент когда отправляется сообщение о том, что не хватает потоков/размера очереди).
И не понятно - это очень много запросов в БД (вроде бы не должно быть) или запросы выполняются не быстро.

Возможно стоит просто увеличить maxQueueSize.

2survivor: письма так и приходят?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 май 2015, 14:46 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Письма продолжают идти, в основном во время пиковых нагрузок: каждую ночь при бакапе, первого числа месяца, если вылетают (например если ломается где-то оптика) много абонентов и т.д.
Первое число пережили нормально, вообщем пока наверное стоит забить на письма... все норм


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.061s | 65 Queries | GZIP : On ]