forum.bitel.ru http://forum.bitel.ru/ |
|
Memory leak in InetAccess http://forum.bitel.ru/viewtopic.php?f=44&t=7581 |
Страница 1 из 1 |
Автор: | Amir [ 02 янв 2013, 04:22 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
В ActiveMQ нет висящих сообщений? Обычно добавляется по событию старта сессии и удаляется по событию стопа сессии. Может быть бывают сессии с нулевой или очень маленькой длительностью? Сессии с одинаковыми Acct-Session-Id? |
Автор: | afedorov [ 03 янв 2013, 05:24 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Есть очень много попыток ошибочной авторизации, т.е. с неправильным логином или паролем. По ним идет reject и никакого аккаунтинга нет. Такие сессии нормально подчищаются? Как отрабатывается каждый из случаев: 1. Авторизация с reject. Аккаунтинга не будет. 2. Авторизация с accept, но сессия не поднялась и аккаунтинга не будет. 3. Авторизация с accept, пришел старт, а дальше вариации: 3.1. Пришел стоп, штатное закрытие. 3.2. Сессия закрывается по таймауту. 3.3. Закрытие из GUI клиента. |
Автор: | afedorov [ 09 янв 2013, 13:49 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Вот такая неприятность еще сегодня случилась: Код: mq 01-09/11:25:59 ERROR [event-proc-p-2-t-1] WorkerTask - Java heap space java.lang.OutOfMemoryError: Java heap space at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:39) at java.nio.ByteBuffer.allocate(ByteBuffer.java:312) at ru.bitel.bgbilling.kernel.base.server.datalog.BGDataLogReader.createBuffer(BGDataLogReader.java:42) at ru.bitel.bgbilling.kernel.base.server.datalog.BGDataLogReader.createBuffer(BGDataLogReader.java:1) at ru.bitel.bgbilling.kernel.base.server.datalog.DataLogReader.<init>(DataLogReader.java:29) at ru.bitel.bgbilling.kernel.base.server.datalog.BGDataLogReader.<init>(BGDataLogReader.java:27) at ru.bitel.bgbilling.kernel.network.radius.datalog.RadiusDataLogReader.<init>(RadiusDataLogReader.java:18) at ru.bitel.bgbilling.kernel.network.radius.datalog.RadiusDataLog.newReader(RadiusDataLog.java:35) at ru.bitel.bgbilling.kernel.network.radius.datalog.RadiusDataLog.newReader(RadiusDataLog.java:1) at ru.bitel.bgbilling.kernel.base.server.datalog.hourly.HourlyDataLog.nextReader(HourlyDataLog.java:183) at ru.bitel.bgbilling.kernel.network.radius.datalog.hourly.RadiusHourlyDataLog.find(RadiusHourlyDataLog.java:50) at ru.bitel.bgbilling.modules.inet.runtime.RequestLogEventProcessor.addToLog(RequestLogEventProcessor.java:194) at ru.bitel.bgbilling.modules.inet.runtime.RequestLogEventProcessor.notify(RequestLogEventProcessor.java:133) at ru.bitel.bgbilling.modules.inet.runtime.RequestLogEventProcessor.notify(RequestLogEventProcessor.java:1) at ru.bitel.bgbilling.kernel.event.AbstractConsumer.notify(AbstractConsumer.java:344) at ru.bitel.bgbilling.kernel.event.Consumer.notify(Consumer.java:1) at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:112) at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51) at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40) хотя памяти было еще около 100МБ. Зачем InetAccess какие-то логи читает? |
Автор: | Amir [ 09 янв 2013, 14:27 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
На свежую голову нашли, почему не очищается deviceConnectionMap. RequestLogEventProcessor - это Access при запросе RADIUS-логов с клиента читает бинарные логи. |
Автор: | afedorov [ 09 янв 2013, 14:33 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Amir писал(а): На свежую голову нашли, почему не очищается deviceConnectionMap. Когда будет обновление? Amir писал(а): RequestLogEventProcessor - это Access при запросе RADIUS-логов с клиента читает бинарные логи. А нельзя ли это вынести в отдельный процесс? Логи вещь непредсказуемая и их чтение потенциально может "убить" Access. Авторизация - достаточно отвественная задача. Может не стоит ставить ее под угрозу? |
Автор: | Amir [ 09 янв 2013, 15:06 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Выложили. Сейчас выдача логов происходит в одном потоке, т.е. безопаснее, чем если бы была в новом потоке каждый раз при запросе с клиента. В будущем можно сделать, но настройка будет сложнее. |
Автор: | afedorov [ 15 янв 2013, 12:31 ] | |||
Заголовок сообщения: | Re: Memory leak in InetAccess | |||
В Access с памятью теперь ровно. А вот в Accounting наблюдаются периодически всплески. Вчера память почти кончилась. См график. При этом эти всплески никак не коррелируют с активностью абонентов. Из-за чего такое может быть?
|
Автор: | afedorov [ 15 янв 2013, 12:38 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
И быть может это связано с этим, но после всплеска в error.log начинают наблюдаться ошибки "Cannot find session ..." Вот например за вчера с нуля часов до 18:32 их ни одной не было, а потом посыпались. Код: accounting 01-14/00:59:19 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2687376in DB! accounting 01-14/18:32:36 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2745628in DB! accounting 01-14/19:09:32 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2735608in DB! accounting 01-14/19:19:59 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2746416in DB! accounting 01-14/19:21:45 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2736151in DB! accounting 01-14/19:48:21 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2752284in DB! accounting 01-14/20:09:22 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2716456in DB! accounting 01-14/20:14:24 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2745381in DB! accounting 01-14/20:16:55 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2748701in DB! accounting 01-14/20:27:39 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2751688in DB! accounting 01-14/20:34:21 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2722891in DB! accounting 01-14/20:41:05 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2756001in DB! accounting 01-14/20:41:48 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2719462in DB! accounting 01-14/20:52:29 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2701750in DB! accounting 01-14/21:01:39 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2747344in DB! accounting 01-14/21:06:18 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2756770in DB! accounting 01-14/21:08:31 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2757403in DB! accounting 01-14/21:28:32 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2750165in DB! accounting 01-14/21:31:45 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2706768in DB! accounting 01-14/21:39:55 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2747498in DB! accounting 01-14/21:56:13 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2754795in DB! accounting 01-14/21:59:05 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2747688in DB! accounting 01-14/22:00:33 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2756046in DB! accounting 01-14/22:02:19 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2759199in DB! accounting 01-14/22:03:23 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2736363in DB! accounting 01-14/22:05:31 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2749059in DB! accounting 01-14/22:14:51 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2748920in DB! accounting 01-14/22:14:51 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2735578in DB! accounting 01-14/22:17:00 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2741695in DB! accounting 01-14/22:22:03 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2743868in DB! accounting 01-14/22:31:36 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2756390in DB! accounting 01-14/22:43:18 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2733663in DB! accounting 01-14/22:48:39 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2687495in DB! accounting 01-14/22:49:21 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2756175in DB! accounting 01-14/22:52:30 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2704172in DB! accounting 01-14/22:53:34 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2763355in DB! accounting 01-14/23:01:00 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2754624in DB! accounting 01-14/23:01:01 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2721898in DB! accounting 01-14/23:20:24 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2756922in DB! accounting 01-14/23:25:22 ERROR [accwrkr-2-p-13-t-2] SessionFlushingManager - Cannot find session with id=2703227in DB! accounting 01-14/23:46:39 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2742134in DB! accounting 01-14/23:52:00 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2764175in DB! accounting 01-14/23:56:54 ERROR [accwrkr-2-p-13-t-1] SessionFlushingManager - Cannot find session with id=2740591in DB! 13 числа всплеск на графике раньше по времени и там аналогичные сообщения начинаются раньше, а до всплеска их так же нет. |
Автор: | Amir [ 15 янв 2013, 13:27 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Переобсчет не запускали в это время? |
Автор: | afedorov [ 15 янв 2013, 15:28 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Переобсчет в модуле Inet никому не делался вообще. |
Автор: | Amir [ 15 янв 2013, 16:13 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Логи за время скачков остались? Можете отправить? |
Автор: | afedorov [ 15 янв 2013, 16:19 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Логи были на сутки, конфиг поправили, как наберется, будут логи. |
Автор: | afedorov [ 25 янв 2013, 12:20 ] | ||
Заголовок сообщения: | Re: Memory leak in InetAccess | ||
Долгое время все было относительно ровно. Но вот вчера снова случился всплеск использования памяти. Какие логи нужны?
|
Автор: | Amir [ 25 янв 2013, 13:59 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
all.log за этот период. Но мне уже кажется, что это просто специфика работы сборщика мусора. Т.е. если при увеличении, например, до 350M вызвать accounting.sh gc раза два-три, то потребление вернется на 200M. |
Автор: | vkulakov [ 08 фев 2013, 12:18 ] |
Заголовок сообщения: | Re: Memory leak in InetAccess |
Сегодня ровно в полночь началось увеличиваться использование памяти. Дошло до 350М после чего запустил accounting.sh gc несколько раз и память вернулась к норме. Теперь интересно, чего вдруг в полночь началось увеличение памяти и почему после сброса использование памяти продолжает расти. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |