forum.bitel.ru http://forum.bitel.ru/ |
|
Сборщик мусора не освобождает память http://forum.bitel.ru/viewtopic.php?f=5&t=7828 |
Страница 1 из 1 |
Автор: | cezar [ 12 мар 2013, 19:07 ] |
Заголовок сообщения: | Сборщик мусора не освобождает память |
Сегодня уже два раза пришел аларм на почту следующего вида: Приложению недостаточно выделенной для него памяти! Зарезервировано 1986592768 из 1986592768 (максимум) байтов памяти. Сейчас свободно: 779894424 байтов. сейчас Код: [root@vpn log]# ../radius_status.sh version 5.1 build 361 from 18.01.2013 19:42:01 12.03.2013 22:56:26 4991 4977 14 0 Request accounts per minute start: 10; stop: 24; update: 4980 Request auths per minute accept: 10; reject: 26 Netfow packets per minute: 118800 Ignore per minute auth: 0; update: 0 Antispam ban count: 16; used per minute: 184 FlowListener: queue_size: 0; threads_active: 0; largest: 12; core: 12; pool_size: 12; recv_socket_buf_size: 131 071; recv_buf_size: 8 388 608; packets: 1339257021 Started: 28.02.2013 07:04:33 Uptime: 12 d 15:51:52 Memory total: 1 987 117 056; max: 1 987 117 056; free: 395 930 424 Memory pools: Non-heap memory[Code Cache]: max: 50 331 648; used: 9 445 056; peek: 9 475 264 Heap memory[PS Eden Space]: max: 678 690 816; used: 286 582 128; peek: 694 550 528 Heap memory[PS Survivor Space]: max: 10 158 080; used: 8 913 016; peek: 31 752 480 Heap memory[PS Old Gen]: max: 1 398 145 024; used: 1 295 691 488; peek: 1 295 691 488 Non-heap memory[PS Perm Gen]: max: 88 080 384; used: 26 849 008; peek: 26 849 008 Thread count: 74 Trees in cache: 12 Connections pool to Master status Idle: 57; Active: 0; maxActive: 7000; maxIdle: 100 посмотрел историю сообщений вида радиус не успевает обрабатывать запросы, нашел закономерность, что параметр total все время увеличивается и никогда не уменьшается, вот прошло 12 дней после перезапуска радиуса, параметр total добрался до max. конфиг радиуса Код: processor.class=ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor processor.mid=1 auth.port=1812 acct.port=1813 admin.port=1955 acct.thread.queue=200 auth.thread.queue=1000 auth.thead.count=1000 acct.thead.count=1000 auth.thread.must.be.free.count=5 acct.thread.must.be.free.count=5 collector.capture.flow.port.1=2001 collector.capture.flow.port.1.type=netflow #количество потоков для порта collector.capture.flow.port.1.thread.count=12 db.driver=com.mysql.jdbc.Driver db.url=jdbc:mysql://********/bgbilling?useUnicode=true&characterEncoding=Cp1251&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true&useCursorFetch=true db.user=***** db.pswd=***** db.maxIdle=100 db.maxActive=7000 mq.url=failover:(nio://********:61616) mq.user=*** mq.pswd=****** |
Автор: | Amir [ 12 мар 2013, 20:21 ] |
Заголовок сообщения: | Re: Сборщик мусора не освобождает память |
В 5.1 не совсем правильно определяется, что память заканчивается - там не учитывается, срабатывал ли сборщик мусора. С 5.2 ругается, только если мало памяти уже после срабатывания сборщика. То что java не освобождает память при интенсивной работе - нормально: она видит что памяти еще хватает, система загружена, поэтому сборщик мусора не запускает. Однако если память растет, и вызов radius.sh gc не снижает потребление памяти обратно на средний уровень - то уже скорее всего утечка, а если возникает OutOfMemory даже после увеличения максимума - значит точно утечка. |
Автор: | cezar [ 13 мар 2013, 04:53 ] |
Заголовок сообщения: | Re: Сборщик мусора не освобождает память |
а что за команда radius.sh gc? |
Автор: | Phricker [ 13 мар 2013, 11:05 ] |
Заголовок сообщения: | Re: Сборщик мусора не освобождает память |
судя по gc - это garbage collector |
Автор: | aardvark [ 10 апр 2013, 02:55 ] |
Заголовок сообщения: | Re: Сборщик мусора не освобождает память |
включите логирование gc через -verbose:gc и будете видеть сколько и чего освободилось и когда. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |