BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 19:24

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: [6.0] Inet flowExport - память.
СообщениеДобавлено: 11 ноя 2013, 20:21 
Не в сети
Клиент

Зарегистрирован: 02 авг 2011, 13:24
Сообщения: 607
Карма: 42
Пришел запрос от "ребят" на попытку взлома с моих IP.
Так, как получилось, что данный src IP сидит за NAT - надо вытягивать данные с "flow" архива.
Поскольку flow собираются, потом архивируются на длительное хранение - достаю архив (4GB) и раскатываю на штатное место, а дальше начинаются чудеса....
Штатно в accounting.sh MEMORY=-Xmx512m работает без проблем долгое время...
Запускаю
./accounting.sh flowExport -s 2 -h 2013-10-17-22 -tFmt "dd.MM.yyyy HH:mm:ss" -f flows.csv
В течении минуты в логах начинается....
Код:
collector 11-11/14:18:05 ERROR [flow-p-10-t-6] WorkerTask - GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at ru.bitel.bgbilling.modules.inet.accounting.ip.ConnectionRangeSet.get(ConnectionRangeSet.java:82)
        at ru.bitel.bgbilling.modules.inet.accounting.ip.HourlyAutoConnectionSet.getSession(HourlyAutoConnectionSet.java:305)
        at ru.bitel.bgbilling.modules.inet.accounting.FlowAgentInterface.getConnection(FlowAgentInterface.java:92)
        at ru.bitel.bgbilling.modules.inet.accounting.FlowAgentInterface.processFlow(FlowAgentInterface.java:157)
        at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.processPacketImpl0(FlowListenerWorker.java:248)
        at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.processPacketImpl(FlowListenerWorker.java:141)
        at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorkerNetflow.processPacket(FlowListenerWorkerNetflow.java:29)
        at ru.bitel.bgbilling.modules.inet.collector.FlowListenerWorker.runImpl(FlowListenerWorker.java:58)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
accounting 11-11/14:18:05 ERROR [accwrkr-2-p-13-t-1] SessionFlushingWorker - GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at com.mysql.jdbc.ResultSetImpl.getInstance(ResultSetImpl.java:355)
        at com.mysql.jdbc.MysqlIO.buildResultSetWithUpdates(MysqlIO.java:2723)
        at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2611)
        at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1800)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2221)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at ru.bitel.bgbilling.modules.inet.accounting.SessionFlushingManager.flushDelta(SessionFlushingManager.java:468)
        at ru.bitel.bgbilling.modules.inet.accounting.SessionFlushingManager.flush(SessionFlushingManager.java:274)
        at ru.bitel.bgbilling.modules.inet.accounting.worker.SessionFlushingWorker.runImpl(SessionFlushingWorker.java:141)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)

Код:
java.lang.OutOfMemoryError: Java heap space

Потом начинается:
11-11/14:53:34 WARN [Low Memory Detector] AlarmSender - Low memory
accounting 11-11/14:18:05 ERROR [InetRadiusListener] RadiusListener - RadiusListener accounting queue is full!
accounting 11-11/14:18:05 ERROR [InetRadiusListener] RadiusListener - RadiusListener accounting queue is full!
Алармы на почту о "Нехватке памяти"...

Начинаем увеличивать MEMORY=-Xmx512m, при этом каждый раз перезапуская accounting.
-MEMORY=-Xmx1024m - ничего не изменилось - не работает.
-MEMORY=-Xmx2048m - остались только "WARN [Low Memory Detector] AlarmSender - Low memory" - не работает.
-MEMORY=-Xmx3072m - остались только "WARN [Low Memory Detector] AlarmSender - Low memory" - не работает.
-MEMORY=-Xmx4096m - остались только "WARN [Low Memory Detector] AlarmSender - Low memory" - не работает.
-MEMORY=-Xmx5000m - остались только "WARN [Low Memory Detector] AlarmSender - Low memory" - не работает.
-MEMORY=-Xmx6000m - остались только "WARN [Low Memory Detector] AlarmSender - Low memory" - не работает.
При этом приходилось inet-accounting прибивать через kill -9 - иначе никак не рестартовал....

Решил попробовать хоть какие-то логи получить....
Итого только при -MEMORY=-Xmx3072m смог получить лог за 1 час вчера (-h 2013-11-10-22 -tFmt "dd.MM.yyyy HH:mm:ss")

Ув. разработчики, как таки логи то получить?
И наболевший вопрос, может таки сделаете независимый от BGBilling екстрактор логов с формата "bgdl"?

Информация о версии:
Клиент: вер. 6.0 сборка 1247 от 02.10.2013 18:21:57
os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.6.0_43
Сервер: вер. 6.0 сборка 1593 от 02.10.2013 19:49:54
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45
bill вер. 6.0 сборка 330 от 02.10.2013 19:11:51
card вер. 6.0 сборка 218 от 03.09.2013 18:56:25
inet вер. 6.0 сборка 1244 от 02.10.2013 19:49:53

_________________
Работаем на 6.0 (Inet)
Подготовка к переходу на 6.2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память.
СообщениеДобавлено: 11 ноя 2013, 21:59 
Не в сети
Клиент

Зарегистрирован: 02 авг 2011, 13:24
Сообщения: 607
Карма: 42
Отвечаю сам себе...
Результаты доп.попыток дали след. результаты:
1) результат export-а должен вместиться в свободную память accounting. Если ее не хватит - будет жесть - все ляжет.
2) поэтому - нужно ОБЯЗАТЕЛЬНО указывать "-r - IP адрес/диапазон IP-адресов", и начинать с меньшего диапазона времени через "-tFrom 2013-10-17T22:00:00 -tTo 2013-10-17T22:10:00"
3) при уточнении результата получилось экспортировать детализацию при базовом MEMORY=-Xmx512m.

Просьба по flowExport:
1) добавьте номера протоколов в экспорте.
2) сделать FromIface,ToIface в выводе опционально - для уменьшения размеров логов в памяти.
3) по возможности сделать таки "независимый от BGBilling" экстрактор логов с формата "bgdl".

_________________
Работаем на 6.0 (Inet)
Подготовка к переходу на 6.2


Последний раз редактировалось nik247 12 ноя 2013, 02:45, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память.
СообщениеДобавлено: 11 ноя 2013, 22:47 
Не в сети
Клиент

Зарегистрирован: 02 авг 2011, 13:24
Сообщения: 607
Карма: 42
Продолжение истории..
1) установил штатный для accounting MEMORY=-Xmx512m.
2) решил через BG client сохранить детализацию нарушителя - сессия 1ч 40м - трафика около 8ГБ .
Результат через минуту:
-куча алармов о нехватке памяти на почту и в логах...
-потеря связки с БД..
итого - ручной рестарт accounting.
3) поднял MEMORY=-Xmx1024m.
4) запустил получение детализации для той же сессии.
Результат:
-только варнинги WARN [Low Memory Detector] AlarmSender, но детализацию таки сохранил через 4 минуты.
Код:
11-11/18:14:52  INFO [detail-worker] FlowDetailMaker - Creating session detail for inetServ:291:inet:50245 from 17.10.2013 21:29:10
11-11/18:15:20  WARN [Low Memory Detector] AlarmSender - Low memory - used=656089544, max=954466304
11-11/18:15:25  WARN [Low Memory Detector] AlarmSender - Low memory - used=661005432, max=954466304
11-11/18:15:28  WARN [Low Memory Detector] AlarmSender - Low memory - used=660918688, max=954466304
11-11/18:15:32  WARN [Low Memory Detector] AlarmSender - Low memory - used=660774608, max=954466304
11-11/18:15:35  WARN [Low Memory Detector] AlarmSender - Low memory - used=658522248, max=954466304
11-11/18:15:39  WARN [Low Memory Detector] AlarmSender - Low memory - used=660471072, max=954466304
11-11/18:15:43  WARN [Low Memory Detector] AlarmSender - Low memory - used=658229088, max=954466304
11-11/18:15:46  WARN [Low Memory Detector] AlarmSender - Low memory - used=658212664, max=954466304
11-11/18:15:55  WARN [Low Memory Detector] AlarmSender - Low memory - used=665430752, max=954466304
11-11/18:15:59  WARN [Low Memory Detector] AlarmSender - Low memory - used=663761760, max=954466304
11-11/18:16:03  WARN [Low Memory Detector] AlarmSender - Low memory - used=663828464, max=954466304
11-11/18:16:06  WARN [Low Memory Detector] AlarmSender - Low memory - used=663929704, max=954466304
11-11/18:16:10  WARN [Low Memory Detector] AlarmSender - Low memory - used=663986968, max=954466304
11-11/18:16:14  WARN [Low Memory Detector] AlarmSender - Low memory - used=663807720, max=954466304
11-11/18:16:17  WARN [Low Memory Detector] AlarmSender - Low memory - used=663840792, max=954466304
11-11/18:16:21  WARN [Low Memory Detector] AlarmSender - Low memory - used=663867176, max=954466304
11-11/18:16:24  WARN [Low Memory Detector] AlarmSender - Low memory - used=664168272, max=954466304
11-11/18:16:28  WARN [Low Memory Detector] AlarmSender - Low memory - used=663818712, max=954466304
11-11/18:16:32  WARN [Low Memory Detector] AlarmSender - Low memory - used=663897000, max=954466304
11-11/18:16:35  WARN [Low Memory Detector] AlarmSender - Low memory - used=661581168, max=954466304
11-11/18:16:38  WARN [Low Memory Detector] AlarmSender - Low memory - used=664580080, max=954466304
11-11/18:16:43  WARN [Low Memory Detector] AlarmSender - Low memory - used=663834432, max=954466304
11-11/18:16:50  WARN [Low Memory Detector] AlarmSender - Low memory - used=665796256, max=954466304
11-11/18:16:54  WARN [Low Memory Detector] AlarmSender - Low memory - used=668066008, max=954466304
11-11/18:16:57  WARN [Low Memory Detector] AlarmSender - Low memory - used=667864680, max=954466304
11-11/18:17:01  WARN [Low Memory Detector] AlarmSender - Low memory - used=664342832, max=954466304
11-11/18:17:05  WARN [Low Memory Detector] AlarmSender - Low memory - used=663963064, max=954466304
11-11/18:17:08  WARN [Low Memory Detector] AlarmSender - Low memory - used=663989664, max=954466304
11-11/18:17:11  WARN [Low Memory Detector] AlarmSender - Low memory - used=664086544, max=954466304
11-11/18:17:16  WARN [Low Memory Detector] AlarmSender - Low memory - used=663885160, max=954466304
11-11/18:17:19  WARN [Low Memory Detector] AlarmSender - Low memory - used=663942064, max=954466304
11-11/18:17:22  WARN [Low Memory Detector] AlarmSender - Low memory - used=664003496, max=954466304
11-11/18:17:26  WARN [Low Memory Detector] AlarmSender - Low memory - used=664066912, max=954466304
11-11/18:17:30  WARN [Low Memory Detector] AlarmSender - Low memory - used=663970488, max=954466304
11-11/18:17:34  WARN [Low Memory Detector] AlarmSender - Low memory - used=664012736, max=954466304
11-11/18:17:40  WARN [Low Memory Detector] AlarmSender - Low memory - used=664024648, max=954466304
11-11/18:17:43  WARN [Low Memory Detector] AlarmSender - Low memory - used=664096392, max=954466304
11-11/18:17:47  WARN [Low Memory Detector] AlarmSender - Low memory - used=660614160, max=954466304
11-11/18:17:51  WARN [Low Memory Detector] AlarmSender - Low memory - used=660626536, max=954466304
11-11/18:17:54  WARN [Low Memory Detector] AlarmSender - Low memory - used=660768824, max=954466304
11-11/18:17:57  WARN [Low Memory Detector] AlarmSender - Low memory - used=660830072, max=954466304
11-11/18:18:02  WARN [Low Memory Detector] AlarmSender - Low memory - used=660644536, max=954466304
11-11/18:18:05  WARN [Low Memory Detector] AlarmSender - Low memory - used=660778864, max=954466304
11-11/18:18:08  WARN [Low Memory Detector] AlarmSender - Low memory - used=660788928, max=954466304
11-11/18:18:12  WARN [Low Memory Detector] AlarmSender - Low memory - used=660850776, max=954466304
11-11/18:18:20  INFO [detail-worker] FlowDetailMaker - Memory total: 954 466 304; max: 954 466 304; free: 243 363 456
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 4 179 392; peek: 4 189 504
  Heap memory[PS Eden Space]: max: 119 341 056; used: 52 620 576; peek: 210 305 024
  Heap memory[PS Survivor Space]: max: 119 275 520; used: 0; peek: 119 275 520
  Heap memory[PS Old Gen]: max: 715 849 728; used: 658 482 272; peek: 665 554 032
  Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 41 185 216; peek: 41 185 216
Thread count: 55
11-11/18:18:20  INFO [detail-worker] FlowDetailMaker - Detail created and sended by 208327, sending to null


А если запросить детализацию не за сессию, а за сутки (как дает клиент биллинга - выбора времени нету - только дни)?
Сколько памяти надо выделять?
Может оптимизируете как-то использование памяти при получении детализации?

_________________
Работаем на 6.0 (Inet)
Подготовка к переходу на 6.2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память.
СообщениеДобавлено: 12 ноя 2013, 14:11 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Поддерживаю идею за независимый от BGInetAccounting flow-exporter. У меня логи flow-listenera ваще не отдельной тачке хранятся с БальшимПрибальшим винтом и желания ставить на неё отдельный экземплял BGinetAccounting нет никакого.
Вот если-б была ( как в старые добрые времена ) - возможность работы БЖБ с файликами от flow-capture - и небо голубее сразу стало-бы, и трава - зеленее. :?

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память.
СообщениеДобавлено: 12 ноя 2013, 14:52 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Отдельно от Accounting, но GUI, а командной строкой аналогично flowExport - быстро можем сделать.

Цитата:
Результат:
-только варнинги WARN [Low Memory Detector] AlarmSender, но детализацию таки сохранил через 4 минуты.
В результате был html файл? Был ли в нем анализ с группировкой по IP и сортировкой по размеру трафика?

Цитата:
Вот если-б была ( как в старые добрые времена ) - возможность работы БЖБ с файликами от flow-capture - и небо голубее сразу стало-бы, и трава - зеленее.
Inet, так же как и Dialup, и IPN, поддерживает формат flow-tools без конвертирования в старый формат IPN-логов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память.
СообщениеДобавлено: 12 ноя 2013, 15:15 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
1.
Цитата:
Отдельно от Accounting, но GUI, а командной строкой аналогично flowExport - быстро можем сделать.

Не уловил всей глубины Вашей мысли, а гуй-то зачем ?
С детства испытывая странное но сильное желание скриптовать всё что шевелится - не могу представить как можно автоматизировать что-нибудь с ГУЙем гуманойдным способом.

2.
Цитата:
Inet, так же как и Dialup, и IPN, поддерживает формат flow-tools без конвертирования в старый формат IPN-логов.

- это Вы по мотивам
[url]
viewtopic.php?f=44&t=8028
[/url] ?
Так это скока ещё ждать-то....

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память.
СообщениеДобавлено: 12 ноя 2013, 16:17 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
1. Просили ранее на форуме, по-моему, специально для "ребят".
2. Это если задним числом полностью переобрабатывать. Если же Accounting принимал RADIUS и/или Netflow и создавал сессии, то можно для детализации или переобработки без пересоздания сессий использовать логи flow-capture.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память.
СообщениеДобавлено: 12 ноя 2013, 17:59 
Не в сети
Клиент

Зарегистрирован: 02 авг 2011, 13:24
Сообщения: 607
Карма: 42
Amir писал(а):
Отдельно от Accounting, но GUI, а командной строкой аналогично flowExport - быстро можем сделать.

Наверное имелось ввиду "без" GUI? Ведь он совсем не нужен.
Главное, что бы была возможность экспорта детализации за пределами Accounting - иначе имеем очень плохие последствия на его функционирование.

Пожелания для командной утилиты:
1) желательно кроссплатформенная с открытым кодом.
2) добавить сохранение номера протокола.
3) сделать FromIface,ToIface в выводе опционально - для уменьшения размеров логов в памяти.
4) поддержка import/export из/в bgdl/flow-tools

Пожелания для "accounting.sh flowExport":
1) добавить сохранение номера протокола
2) сделать FromIface,ToIface в выводе опционально - для уменьшения размеров логов в памяти.
3) оптимизировать работу с памятью
4) добавить в "accounting.sh help" информацию о возможности формирования Timestamp -tFmt "dd.MM.yyyy HH:mm:ss"

Amir писал(а):
Результат:
-только варнинги WARN [Low Memory Detector] AlarmSender, но детализацию таки сохранил через 4 минуты.
Цитата:
В результате был html файл? Был ли в нем анализ с группировкой по IP и сортировкой по размеру трафика?

Да все создалось - 291_inet:50245_20131017T212910-20131017T234015.zip - 13844k.
detail.csv │181550K│Nov 12 12:31│
detail.html │1101318│Nov 12 12:33│
detail.png │ 10101│Nov 12 12:33│
info.txt │ 140│Nov 12 12:33│

Обновился сегодня ночью, так как увидел, что были внесены изменения:
Код:
1621   11.11.2013 19:46:47   ИСПРАВЛЕНО   Inet: Неправильная сортировка в таблице анализа детализации по трафику.
1621   11.11.2013 19:46:47   ИСПРАВЛЕНО   Inet: Более частый сброс flow-логов на диск при запросе детализации.

Не очень понятно, что изменили, да и разницы не заметил.

Повторил процесс сохранения вчерашних сессий с клиента:
-MEMORY=-Xmx512m:
1) сессия 2ч11м трафика 8GB: - результат печальный.
- старт сохранения детализации
- через 20 сек. "Low memory"
- потом 90 сек accounting признаков жизни не подавал (ничего в логи не писалось)
- потом куча ошибок в error.log
- результат пустой файл 291_inet:50245_20131017T212910-20131017T234015.zip.tmp
- accounting вернулся в нормальный режим работы.
detail.log
Код:
11-12/12:52:50  INFO [detail-worker] FlowDetailMaker - Memory total: 342 228 992; max: 477 233 152; free: 231 054 952
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 3 176 640; peek: 3 186 624
  Heap memory[PS Eden Space]: max: 157 155 328; used: 93 340 656; peek: 130 678 784
  Heap memory[PS Survivor Space]: max: 10 878 976; used: 10 856 576; peek: 10 856 576
  Heap memory[PS Old Gen]: max: 357 957 632; used: 6 976 808; peek: 6 976 808
  Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 33 794 104; peek: 33 794 104
Thread count: 51
11-12/12:52:50  INFO [detail-worker] FlowDetailMaker - Creating session detail for inetServ:291:inet:50245 from 17.10.2013 21:29:10
11-12/12:53:08  WARN [Low Memory Detector] AlarmSender - Low memory - used=347573520, max=477233152
11-12/12:53:11  WARN [Low Memory Detector] AlarmSender - Low memory - used=373080736, max=477233152
11-12/12:53:13  WARN [Low Memory Detector] AlarmSender - Low memory - used=408497760, max=477233152
11-12/12:54:33 ERROR [detail-worker] EventWorker - class ru.bitel.bgbilling.modules.inet.accounting.detail.InetDetailWorker: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
11-12/12:54:33  INFO [detail-worker] EventWorker - Execution error - waiting 60000ms for next try.
11-12/12:54:39 ERROR [Thread-11] ALARM - [BGInetAccounting]  ID события: system.no.memory

error.log
Код:
accounting 11-12/12:53:13 ERROR [Thread-11] ALARM - [BGInetAccounting]  ID события: system.no.memory
Время регистрации события: 12.11.2013 12:53:08
Хост сервера: bg.server/192.168.252.25

Приложению недостаточно выделенной для него памяти!
Зарезервировано 477233152 из 477233152 (максимум) байтов памяти.
Сейчас свободно: 128065600 байтов.

Необходимо выделить большее количество памяти приложению.
radius 11-12/12:54:33 ERROR [rdsLstnr-p-8-t-10] WorkerTask - GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.HashMap.<init>(HashMap.java:209)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusPacket.parse(RadiusPacket.java:339)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusPacket.parse(RadiusPacket.java:317)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:146)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
detail 11-12/12:54:33 ERROR [detail-worker] EventWorker - class ru.bitel.bgbilling.modules.inet.accounting.detail.InetDetailWorker: GC overhead limit exceede
java.lang.OutOfMemoryError: GC overhead limit exceeded
accounting 11-12/12:54:33 ERROR [accwrkr-1-p-14-t-1] WorkerTask - GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
accounting 11-12/12:54:33 ERROR [accwrkr-2-p-13-t-1] WorkerTask - Java heap space
java.lang.OutOfMemoryError: Java heap space
        at java.util.Hashtable.put(Hashtable.java:420)
        at java.util.Properties.enumerate(Properties.java:1061)
        at java.util.Properties.propertyNames(Properties.java:971)
        at com.mysql.jdbc.StatementImpl$CancelTask.<init>(StatementImpl.java:93)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1498)
        at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
        at org.apache.commons.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:658)
        at org.apache.commons.dbcp.PoolableConnectionFactory.validateObject(PoolableConnectionFactory.java:635)
        at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1205)
        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.accounting.worker.SessionFlushingWorker.runImpl(SessionFlushingWorker.java:94)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
 11-12/12:54:39 ERROR [Thread-11] ALARM - [BGInetAccounting]  ID события: system.no.memory

вторую сессию (11ч.-45GB трафика) даже не пытался пробовать.
-MEMORY=-Xmx1024m:
1) сессия 2ч11м трафика 8GB: - файл сохранился.
- старт сохранения детализации
- через 30 сек. начались валить "Low memory"
- через 3мин. нормально сохранился файл 291_inet:50245_20131017T212910-20131017T234015.zip - 13844K
- работы accounting не нарушалась во времяя сохранения детализации.
detail.log
Код:
11-12/13:15:19  INFO [detail-worker] FlowDetailMaker - Creating session detail for inetServ:291:inet:50245 from 17.10.2013 21:29:10
11-12/13:15:47  WARN [Low Memory Detector] AlarmSender - Low memory - used=654245792, max=954466304
11-12/13:15:52  WARN [Low Memory Detector] AlarmSender - Low memory - used=662021480, max=954466304
11-12/13:15:55  WARN [Low Memory Detector] AlarmSender - Low memory - used=658922864, max=954466304
11-12/13:15:58  WARN [Low Memory Detector] AlarmSender - Low memory - used=658650936, max=954466304
11-12/13:16:02  WARN [Low Memory Detector] AlarmSender - Low memory - used=660772312, max=954466304
11-12/13:16:06  WARN [Low Memory Detector] AlarmSender - Low memory - used=658318616, max=954466304
11-12/13:16:09  WARN [Low Memory Detector] AlarmSender - Low memory - used=660711208, max=954466304
11-12/13:16:13  WARN [Low Memory Detector] AlarmSender - Low memory - used=660695776, max=954466304
11-12/13:16:22  WARN [Low Memory Detector] AlarmSender - Low memory - used=665628904, max=954466304
11-12/13:16:28  WARN [Low Memory Detector] AlarmSender - Low memory - used=661597816, max=954466304
11-12/13:16:28  WARN [Low Memory Detector] AlarmSender - Low memory - used=663930728, max=954466304
11-12/13:16:28 ERROR [Thread-11] ALARM - [BGInetAccounting]  ID события: system.no.memory
Время регистрации события: 12.11.2013 13:16:22
Хост сервера: bg.server/192.168.252.25

Приложению недостаточно выделенной для него памяти!
Зарезервировано 954466304 из 954466304 (максимум) байтов памяти.
Сейчас свободно: 288837400 байтов.

Необходимо выделить большее количество памяти приложению.
11-12/13:16:31  WARN [Low Memory Detector] AlarmSender - Low memory - used=662149784, max=954466304
11-12/13:16:35  WARN [Low Memory Detector] AlarmSender - Low memory - used=664046560, max=954466304
11-12/13:16:39  WARN [Low Memory Detector] AlarmSender - Low memory - used=661622984, max=954466304
11-12/13:16:43  WARN [Low Memory Detector] AlarmSender - Low memory - used=661630576, max=954466304
11-12/13:16:46  WARN [Low Memory Detector] AlarmSender - Low memory - used=664003480, max=954466304
11-12/13:16:49  WARN [Low Memory Detector] AlarmSender - Low memory - used=664054192, max=954466304
11-12/13:16:54  WARN [Low Memory Detector] AlarmSender - Low memory - used=661624040, max=954466304
11-12/13:16:57  WARN [Low Memory Detector] AlarmSender - Low memory - used=664744976, max=954466304
11-12/13:16:58 ERROR [Thread-11] ALARM - [BGInetAccounting]  ID события: system.no.memory
Время регистрации события: 12.11.2013 13:16:54
Хост сервера: bg.server/192.168.252.25
Приложению недостаточно выделенной для него памяти!
Зарезервировано 954466304 из 954466304 (максимум) байтов памяти.
Сейчас свободно: 292831728 байтов.

Необходимо выделить большее количество памяти приложению.
11-12/13:17:00  WARN [Low Memory Detector] AlarmSender - Low memory - used=661804888, max=954466304
11-12/13:17:04  WARN [Low Memory Detector] AlarmSender - Low memory - used=664702264, max=954466304
11-12/13:17:08  WARN [Low Memory Detector] AlarmSender - Low memory - used=661714232, max=954466304
11-12/13:17:11  WARN [Low Memory Detector] AlarmSender - Low memory - used=664083576, max=954466304
11-12/13:17:19  WARN [Low Memory Detector] AlarmSender - Low memory - used=665766040, max=954466304
11-12/13:17:22  WARN [Low Memory Detector] AlarmSender - Low memory - used=665774336, max=954466304
11-12/13:17:26  WARN [Low Memory Detector] AlarmSender - Low memory - used=661762528, max=954466304
11-12/13:17:30  WARN [Low Memory Detector] AlarmSender - Low memory - used=661894440, max=954466304
11-12/13:17:31 ERROR [Thread-11] ALARM - [BGInetAccounting]  ID события: system.no.memory
Время регистрации события: 12.11.2013 13:17:26
Хост сервера: bg.server/192.168.252.25

Приложению недостаточно выделенной для него памяти!
Зарезервировано 954466304 из 954466304 (максимум) байтов памяти.
Сейчас свободно: 292703416 байтов.

Необходимо выделить большее количество памяти приложению.
11-12/13:17:33  WARN [Low Memory Detector] AlarmSender - Low memory - used=661903112, max=954466304
11-12/13:17:36  WARN [Low Memory Detector] AlarmSender - Low memory - used=662462704, max=954466304
11-12/13:17:41  WARN [Low Memory Detector] AlarmSender - Low memory - used=664119240, max=954466304
11-12/13:17:44  WARN [Low Memory Detector] AlarmSender - Low memory - used=664150472, max=954466304
11-12/13:17:47  WARN [Low Memory Detector] AlarmSender - Low memory - used=661832256, max=954466304
11-12/13:17:51  WARN [Low Memory Detector] AlarmSender - Low memory - used=661903456, max=954466304
11-12/13:17:54  WARN [Low Memory Detector] AlarmSender - Low memory - used=664193072, max=954466304
11-12/13:17:58  WARN [Low Memory Detector] AlarmSender - Low memory - used=664215048, max=954466304
11-12/13:18:01  WARN [Low Memory Detector] AlarmSender - Low memory - used=664265856, max=954466304
11-12/13:18:07  WARN [Low Memory Detector] AlarmSender - Low memory - used=664301256, max=954466304
11-12/13:18:07 ERROR [Thread-11] ALARM - [BGInetAccounting]  ID события: system.no.memory
Время регистрации события: 12.11.2013 13:17:58
Хост сервера: bg.server/192.168.252.25

Приложению недостаточно выделенной для него памяти!
Зарезервировано 954466304 из 954466304 (максимум) байтов памяти.
Сейчас свободно: 290250896 байтов.

Необходимо выделить большее количество памяти приложению.
11-12/13:18:11  WARN [Low Memory Detector] AlarmSender - Low memory - used=660841376, max=954466304
11-12/13:18:14  WARN [Low Memory Detector] AlarmSender - Low memory - used=658506928, max=954466304
11-12/13:18:18  WARN [Low Memory Detector] AlarmSender - Low memory - used=660874240, max=954466304
11-12/13:18:21  WARN [Low Memory Detector] AlarmSender - Low memory - used=660931168, max=954466304
11-12/13:18:25  WARN [Low Memory Detector] AlarmSender - Low memory - used=660836176, max=954466304
11-12/13:18:29  WARN [Low Memory Detector] AlarmSender - Low memory - used=658485728, max=954466304
11-12/13:18:32  WARN [Low Memory Detector] AlarmSender - Low memory - used=661033040, max=954466304
11-12/13:18:35  WARN [Low Memory Detector] AlarmSender - Low memory - used=661389424, max=954466304
11-12/13:18:36 ERROR [Thread-11] ALARM - [BGInetAccounting]  ID события: system.no.memory
Время регистрации события: 12.11.2013 13:18:29
Хост сервера: bg.server/192.168.252.25

Приложению недостаточно выделенной для него памяти!
Зарезервировано 954466304 из 954466304 (максимум) байтов памяти.
Сейчас свободно: 295829096 байтов.

Необходимо выделить большее количество памяти приложению.
11-12/13:18:42  WARN [Low Memory Detector] AlarmSender - Low memory - used=668455904, max=954466304
11-12/13:18:47  INFO [detail-worker] FlowDetailMaker - Memory total: 954 466 304; max: 954 466 304; free: 250 239 736
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 4 436 736; peek: 4 446 848
  Heap memory[PS Eden Space]: max: 119 341 056; used: 38 136 032; peek: 206 241 792
  Heap memory[PS Survivor Space]: max: 119 275 520; used: 0; peek: 119 242 752
  Heap memory[PS Old Gen]: max: 715 849 728; used: 666 090 536; peek: 666 090 536
  Non-heap memory[PS Perm Gen]: max: 85 983 232; used: 41 272 032; peek: 41 272 032
Thread count: 56
11-12/13:18:47  INFO [detail-worker] FlowDetailMaker - Detail created and sended by 207672, sending to null

На большей сессии я думаю accounting снова помрет...
Итого:
Что же делать с детализацией с клиента?
Что же делать с детализацией с кабинета? Я пока у себя в inet.xsl вырезал код, дающий сохранение детализации.

_________________
Работаем на 6.0 (Inet)
Подготовка к переходу на 6.2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память. (CRM)
СообщениеДобавлено: 15 ноя 2013, 20:22 
Не в сети
Клиент

Зарегистрирован: 02 авг 2011, 13:24
Сообщения: 607
Карма: 42
UP

_________________
Работаем на 6.0 (Inet)
Подготовка к переходу на 6.2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память. (CRM)
СообщениеДобавлено: 21 ноя 2013, 21:46 
Не в сети
Клиент

Зарегистрирован: 02 авг 2011, 13:24
Сообщения: 607
Карма: 42
Сегодня появились подвижки по вопросу...
Код:
1636   21.11.2013 20:45:55   ДОБАВЛЕНО   Inet: Возможность запустить динамический класс внутри Access/Accounting из командной строки (dynClassRun dyn.class.Name arg0 arg1).
1636   21.11.2013 20:45:55   ИСПРАВЛЕНО   Inet: При большом кол-ве выгружаемых данных во flow-логов потреблялось много памяти.
1636   21.11.2013 20:45:55   ДОБАВЛЕНО   Inet: Возможность запустить выгрузку flow-логов отдельно java -cp lib/app/*:lib/ext/* ru.bitel.bgbilling.modules.inet.accounting.detail.FlowExport (далее агрументы аналогично команде flowExport).
1636   21.11.2013 20:45:55   ДОБАВЛЕНО   Inet: Динамический класс ru.bitel.bgbilling.modules.inet.dyn.accounting.detail.FlowExport (accounting.sh dynClassRun ru.bitel.bgbilling.modules.inet.dyn.accounting.detail.FlowExport -s 1 -h 2013-11-20-13).

Можете прокомментировать пож-ста?

_________________
Работаем на 6.0 (Inet)
Подготовка к переходу на 6.2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память. (CRM)
СообщениеДобавлено: 22 ноя 2013, 01:44 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да, выложили.
Теперь не должно памяти столько тратить.

Можно отдельно запустить как java-приложение, указав в classpath библиотеки сервера:
Код:
java -cp lib/app/*:lib/ext/* ru.bitel.bgbilling.modules.inet.accounting.detail.FlowExport -s 1 -h 2013-11-20-13

Добавили копию этого класса в динамический код, его можно использовать отдельно - скопировать, изменить, скомпилировать через javac.
Можно использовать прямо из динамического кода, но это уже только внутри приложения (т.е. не отдельным процессом):
Код:
accounting.sh dynClassRun ru.bitel.bgbilling.modules.inet.dyn.accounting.detail.FlowExport -s 1 -h 2013-11-20-13


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память. (CRM)
СообщениеДобавлено: 22 ноя 2013, 13:16 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
nik247 писал(а):
Amir писал(а):
Отдельно от Accounting, но GUI, а командной строкой аналогично flowExport - быстро можем сделать.

Наверное имелось ввиду "без" GUI? Ведь он совсем не нужен.

GUI нужен, т.к. он позволит отвечать на запросы даже секретарше, а не только админу, как в случае с ком. строкой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память. (CRM)
СообщениеДобавлено: 08 фев 2014, 08:53 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Попробывал запуск "снаружи" приложения:

Код:
${JAVA_HOME}/bin/java -cp lib/app/*:lib/ext/* ru.bitel.bgbilling.modules.inet.accounting.detail.FlowExport -s 2 -h 2014-02-03-00  -f 2014-02-03-00.csv


Ругалось вот так:
Код:
Exception in thread "main" ru.bitel.bgbilling.common.BGException: Parameter -dir must not be empty.
        at ru.bitel.bgbilling.modules.inet.accounting.detail.FlowExport.export(FlowExport.java:172)
        at ru.bitel.bgbilling.modules.inet.accounting.detail.FlowExport.main(FlowExport.java:46)


Подобрал методом тыка, что всё работатет если добавить в строку запуска " -dir data/flow".

Может стоит этот ключ отразить где нибудь. в доке ?


P.S.: Запуск "снаружи" отработал экспорт файла субъективно быстрее раза в 2, по сравнению с запуском "внутри" . Почему интересно ?

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память. (CRM)
СообщениеДобавлено: 12 фев 2014, 19:42 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
dir нужен, когда вызываете "снаружи", т.к. при обычном вызове dir берется из кофигурации.

Класс тот же самый. Быстрее - скорее всего из-за того, что при вызове "снаружи" не было логирования (all.log, collector.log etc).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память. (CRM)
СообщениеДобавлено: 12 фев 2014, 20:02 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Джентльмены участвующие в обсуждении и особенно Amir, загляните, пожалуйста, сюда ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.0] Inet flowExport - память. (CRM)
СообщениеДобавлено: 12 фев 2014, 21:52 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
что меня очаровывает при запуске снаружи - так это то что bginetaccounting ваще при этом не недо запускать.
Я скопировал каталог bginetaccounting с netfloe-логами на ноут с юбунтой, прибавил туда яву, и ушёл с ним домой, где у меня ваще интета нету, и сидел спокойно ковырялся в логах , пока не нашёл куда ходил клиент в определённый период....

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

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


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

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


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

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