Доброго дня,
Поддержу темы:
viewtopic.php?f=22&t=8892&p=73010&hilit=%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80+%D0%BD%D0%B5+%D1%83%D1%81%D0%BF%D0%B5%D0%B2%D0%B0%D0%B5%D1%82+%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D1%82%D1%8C+%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B#p73010viewtopic.php?f=6&t=6978&p=54206&hilit=%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80+%D0%BD%D0%B5+%D1%83%D1%81%D0%BF%D0%B5%D0%B2%D0%B0%D0%B5%D1%82+%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D1%82%D1%8C+%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B#p54206viewtopic.php?f=44&t=9390&p=78204&hilit=%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80+%D0%BD%D0%B5+%D1%83%D1%81%D0%BF%D0%B5%D0%B2%D0%B0%D0%B5%D1%82+%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D1%82%D1%8C+%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B#p78204Такая же ситуация. Приходит с периодичностью в несколько часов email такого типа:
Код:
ID события: dhcpLstnr.wait.thread
Время регистрации события: 10.10.2014 06:04:33
Настройки inet-access.xml:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<application context="accounting">
<!-- Уникальное имя приложения -->
<param name="app.name" value="BGInetAccounting"/>
<!-- Уникальный числовой id приложения -->
<param name="app.id" value="10102"/>
<!-- Параметры подключения к БД -->
<param name="db.driver" value="com.mysql.jdbc.Driver"/>
<param name="db.url" value="jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=utf8&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&queryTimeoutKillsConnection=true&connectTimeout=1000"/>
<param name="db.user" value="***"/>
<param name="db.pswd" value="***"/>
<param name="db.validationTimeout" value="10"/>
<!-- Параметры подключения к MQ -->
<param name="mq.url" value="failover:(tcp://localhost:61616)"/>
<param name="mq.user" value="***"/>
<param name="mq.pswd" value="***"/>
<!-- id модуля -->
<param name="moduleId" value="2"/>
<!-- id корневого устройства -->
<param name="rootDeviceId" value="1"/>
<!-- Внутренняя переменная приложения, не изменять -->
<param name="commonIdentifierName" value="rootDeviceId"/>
<!-- Параметры сохранения radius-пакетов в файлы логов -->
<!-- Директория, в которую сохранять radius логи -->
<param name="datalog.radius.dir" value="data/radius" />
<!-- Размер блока данных в файле лога, также размер буфера на лог файл -->
<param name="datalog.radius.chunk.size" value="524288" />
<!-- Сжимать radius логи: 0 - не сжимать, 1 - zlib -->
<param name="datalog.radius.compression.type" value="1" />
<!-- Создание Accounting -->
<bean name="accounting" class="ru.bitel.bgbilling.modules.inet.accounting.Accounting"/>
<context name="radius">
<!-- Создание MXBean для мониторинга радиуса -->
<bean name="radiusStatusAccounting" class="ru.dsi.bgbilling.modules.inet.mxbean.RadiusStatusAccounting">
<param name="accounting">accounting</param>
</bean>
<!-- Cоздание процессора radius-пакетов -->
<bean name="radiusProcessor" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusHelperProcessor"/>
<!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->
<scheduledExecutorService name="hrlydtlggr" corePoolSize="1"/>
<!-- Cоздание dataLogger, сохраняющего radius-пакеты на диск (только один экземпляр) -->
<bean name="radiusDataLogger" class="ru.bitel.bgbilling.modules.inet.radius.RadiusHourlyDataLogger">
<param name="scheduledExecutor">hrlydtlggr</param>
</bean>
<!-- Cоздание слушателя radius-пакетов на порту с передачей ему процессора и dataLogger -->
<bean name="radiusListener" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusListener">
<constructor>
<!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
<param name="host" value=""/>
<!-- Порт, на котором будет открыт сокет -->
<param name="port" value="1813"/>
<!-- Размер буфера приема слушателя -->
<param name="recvBufferSize">1 * 1024 * 1024</param>
<!-- Рекомендуемый SO_RCVBUF сокета -->
<param name="soRCVBUF"></param>
<!-- Количество потоков-обработчиков -->
<param name="threadCount">50</param>
<!-- Максимальное количество пакетов в очереди на обработку -->
<param name="maxQueueSize">300</param>
<!-- Передача процессора -->
<param name="processor">radiusProcessor</param>
<!-- Режим работы, RadiusListener.Mode.accounting -->
<param name="mode">RadiusListener.Mode.accounting</param>
<!-- Передача setup -->
<param name="setup">setup</param>
<!-- Передача dataLogger -->
<param name="dataLogger">radiusDataLogger</param>
</constructor>
</bean>
</context>
</application>
Настройки inet-accounting.xml:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<application context="accounting">
<!-- Уникальное имя приложения -->
<param name="app.name" value="BGInetAccounting"/>
<!-- Уникальный числовой id приложения -->
<param name="app.id" value="10102"/>
<!-- Параметры подключения к БД -->
<param name="db.driver" value="com.mysql.jdbc.Driver"/>
<param name="db.url" value="jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=utf8&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&queryTimeoutKillsConnection=true&connectTimeout=1000"/>
<param name="db.user" value="***"/>
<param name="db.pswd" value="***"/>
<param name="db.validationTimeout" value="10"/>
<!-- Параметры подключения к MQ -->
<param name="mq.url" value="failover:(tcp://localhost:61616)"/>
<param name="mq.user" value="***"/>
<param name="mq.pswd" value="***"/>
<!-- id модуля -->
<param name="moduleId" value="2"/>
<!-- id корневого устройства -->
<param name="rootDeviceId" value="1"/>
<!-- Внутренняя переменная приложения, не изменять -->
<param name="commonIdentifierName" value="rootDeviceId"/>
<!-- Параметры сохранения radius-пакетов в файлы логов -->
<!-- Директория, в которую сохранять radius логи -->
<param name="datalog.radius.dir" value="data/radius" />
<!-- Размер блока данных в файле лога, также размер буфера на лог файл -->
<param name="datalog.radius.chunk.size" value="524288" />
<!-- Сжимать radius логи: 0 - не сжимать, 1 - zlib -->
<param name="datalog.radius.compression.type" value="1" />
<!-- Создание Accounting -->
<bean name="accounting" class="ru.bitel.bgbilling.modules.inet.accounting.Accounting"/>
<context name="radius">
<!-- Создание MXBean для мониторинга радиуса -->
<bean name="radiusStatusAccounting" class="ru.dsi.bgbilling.modules.inet.mxbean.RadiusStatusAccounting">
<param name="accounting">accounting</param>
</bean>
<!-- Cоздание процессора radius-пакетов -->
<bean name="radiusProcessor" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusHelperProcessor"/>
<!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->
<scheduledExecutorService name="hrlydtlggr" corePoolSize="1"/>
<!-- Cоздание dataLogger, сохраняющего radius-пакеты на диск (только один экземпляр) -->
<bean name="radiusDataLogger" class="ru.bitel.bgbilling.modules.inet.radius.RadiusHourlyDataLogger">
<param name="scheduledExecutor">hrlydtlggr</param>
</bean>
<!-- Cоздание слушателя radius-пакетов на порту с передачей ему процессора и dataLogger -->
<bean name="radiusListener" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusListener">
<constructor>
<!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
<param name="host" value=""/>
<!-- Порт, на котором будет открыт сокет -->
<param name="port" value="1813"/>
<!-- Размер буфера приема слушателя -->
<param name="recvBufferSize">1 * 1024 * 1024</param>
<!-- Рекомендуемый SO_RCVBUF сокета -->
<param name="soRCVBUF"></param>
<!-- Количество потоков-обработчиков -->
<param name="threadCount">50</param>
<!-- Максимальное количество пакетов в очереди на обработку -->
<param name="maxQueueSize">300</param>
<!-- Передача процессора -->
<param name="processor">radiusProcessor</param>
<!-- Режим работы, RadiusListener.Mode.accounting -->
<param name="mode">RadiusListener.Mode.accounting</param>
<!-- Передача setup -->
<param name="setup">setup</param>
<!-- Передача dataLogger -->
<param name="dataLogger">radiusDataLogger</param>
</constructor>
</bean>
</context>
</application>
Текущее состояние:
Код:
./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 2.6.32-5-amd64 [amd64], file.encoding: ISO-8859-1, user.name: root
Heap sizes: current=92160k free=90654k max=1363456k
Kernel version 6.1.949 / 22.08.2014 15:53:24
Inet version 6.1.575 / 20.08.2014 19:03:26
Radius:
accounting-requests per minute start: 0; stop: 0; update: 64
access-requests per minute accept: 0; reject: 0
ignore per minute access-request: 0; accounting-update: 0
Started: 10.10.2014 12:15:33 Uptime: 0 d 00:18:45
Memory total: 211 288 064; max: 477 102 080; free: 47 032 488
Memory pools:
Non-heap memory[Code Cache]: max: 50 331 648; used: 4 050 752; peek: 4 056 128
Heap memory[PS Eden Space]: max: 167 247 872; used: 137 525 528; peek: 158 334 976
Heap memory[PS Survivor Space]: max: 524 288; used: 475 152; peek: 7 842 568
Heap memory[PS Old Gen]: max: 357 564 416; used: 26 254 896; peek: 26 254 896
Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 30 626 664; peek: 30 626 664
Thread count: 89
Trees in cache: 0
Connections pool to Master status Idle: 5; Active: 0; maxActive: 300; maxIdle: 20
Код:
./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 2.6.32-5-amd64 [amd64], file.encoding: ISO-8859-1, user.name: root
Heap sizes: current=92160k free=90654k max=1363456k
Kernel version 6.1.949 / 22.08.2014 15:53:24
Inet version 6.1.575 / 20.08.2014 19:03:26
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.10.2014 11:58:23 Uptime: 0 d 00:37:11
Memory total: 228 065 280; max: 477 102 080; free: 84 025 552
Memory pools:
Non-heap memory[Code Cache]: max: 50 331 648; used: 3 370 880; peek: 3 383 936
Heap memory[PS Eden Space]: max: 148 373 504; used: 95 722 272; peek: 157 810 688
Heap memory[PS Survivor Space]: max: 15 204 352; used: 11 750 744; peek: 11 750 744
Heap memory[PS Old Gen]: max: 357 564 416; used: 36 581 920; peek: 36 581 920
Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 30 248 480; peek: 30 248 480
Thread count: 277
Trees in cache: 0
Connections pool to Master status Idle: 5; Active: 0; maxActive: 300; maxIdle: 20
База:
Код:
mysql> show processlist;
+--------+------+-----------------+-----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+------+-----------------+-----------+---------+------+-------+------------------+
| 117832 | bill | 127.0.0.1:44721 | bgbilling | Sleep | 15 | | NULL |
| 117833 | bill | 127.0.0.1:44723 | bgbilling | Sleep | 10 | | NULL |
| 117909 | bill | 127.0.0.1:44724 | bgbilling | Sleep | 9 | | NULL |
| 118264 | bill | 127.0.0.1:44728 | bgbilling | Sleep | 9 | | NULL |
| 118273 | bill | 127.0.0.1:49269 | bgbilling | Sleep | 2 | | NULL |
| 118274 | bill | 127.0.0.1:59468 | bgbilling | Sleep | 32 | | NULL |
| 118275 | bill | 127.0.0.1:44119 | bgbilling | Sleep | 2 | | NULL |
| 118276 | bill | 127.0.0.1:44066 | bgbilling | Sleep | 2 | | NULL |
| 118277 | bill | 127.0.0.1:60477 | bgbilling | Sleep | 27 | | NULL |
| 118382 | bill | 127.0.0.1:44742 | bgbilling | Sleep | 5 | | NULL |
| 118533 | bill | 127.0.0.1:35305 | bgbilling | Sleep | 6 | | NULL |
| 118534 | bill | 127.0.0.1:50245 | bgbilling | Sleep | 2 | | NULL |
| 118535 | bill | 127.0.0.1:42849 | bgbilling | Sleep | 5 | | NULL |
| 118536 | bill | 127.0.0.1:60317 | bgbilling | Sleep | 8 | | NULL |
| 118537 | bill | 127.0.0.1:49902 | bgbilling | Sleep | 4 | | NULL |
| 118658 | bill | 127.0.0.1:44745 | bgbilling | Sleep | 9 | | NULL |
| 118719 | bill | 127.0.0.1:44882 | bgbilling | Sleep | 10 | | NULL |
| 118880 | root | localhost | bgbilling | Query | 0 | NULL | show processlist |
+--------+------+-----------------+-----------+---------+------+-------+------------------+
18 rows in set (0.00 sec)
В системе всего 50 договоров и около 50 устройств (свичей). В онлайне 30 абонентов. При этом 277 потоков кажутся немного большой цифрой. Что будет когда абонентов будет десять тысяч?