BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Высвобождение памяти
СообщениеДобавлено: 08 фев 2015, 13:46 
Не в сети

Зарегистрирован: 28 авг 2014, 09:26
Сообщения: 162
Карма: 0
Пользовался статьей с wiki по мониторингу через SNMP.

На графике в 11 часов были поставлены логи на обработку в ~11:45 клиент биллинга показал, что обработка завершена. И вот прошло 2 часа после завершения обработки, а процессы аккаунтига до сих пор пикуют! Через сколько будет высвобождена оперативная память?

На всякий уточню, а то может не правильно понимаю:
HeapUsed - Используемая аккаунтиргом в настоящий момент память, которая высвобождается сборщиком мусора.
HeapCommitted - Занятая аккаунтиргом память (само приложение + данные "data-файлов" + выборки из БД + неведомые нужды), также высвобождается сборщиком мусора.

Вложение:
1.png
1.png [ 29.65 КБ | Просмотров: 1987 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Высвобождение памяти
СообщениеДобавлено: 08 фев 2015, 14:19 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Не совсем - HeapCommited - это сколько памяти JVM взяла у системы.
HeapUsed - это сколько из HeapCommited на самом деле используется.
Когда HeapUsed падает вниз - это работает сборщик мусора. Сборщик работает по своим алгоритмам и может не вызываться пока HeapUsed не подойдет к HeapCommited (не вплотную, но близко), особенно при большой нагрузке и/или при большом кол-ве свободной памяти и/или малом кол-ве занятой, как здесь ~150MB. А может и вызываться. Или вызываться и собирать далеко не все.
HeapCommited обычно падает вниз когда HeapUsed достаточно долго меньше HeapCommited.

Т.е. чтобы подтвердить, что есть утечка памяти - нужно вызывать accounting.sh gc пару раз и посмотреть, не упадет ли до среднего значения HeapUsed.
Если есть потребность, чтобы JVM не забирала у системы лишнего, а просто чаще вызывала сборщик мусора - то можно поставить ограничение Xmx, но с запасом. Но мы не рекомендуем ставить меньше 256.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Высвобождение памяти
СообщениеДобавлено: 09 фев 2015, 10:42 
Не в сети

Зарегистрирован: 28 авг 2014, 09:26
Сообщения: 162
Карма: 0
Спасибо, теперь пришло правильное понимание HeapCommited. Можно в дополнение получить разъяснения по NonHeap...? А то совсем не понятно.

Из всего можно сделать вывод: про сборщик мусора известно одно - он начинает работу когда реальный объем памяти подходит к показателям Commited. Что именно он оставляет/уберает - не до конца известно (главное чтобы оставлял данные которые "сейчас" находятся в обработке, и не происходил повторный запрос на их получение).

Что еще примечательно как только приложение забирает свои "мегабайты", высвобождать ресурсы оно не спешит (пока не перезапустишь приложение). Что в принципе эффективно, ибо тратится меньше процессорного времени для обработки сборщика мусора. На графике эти волны занимают 1-3 часа.
Вложение:
27_1.png
27_1.png [ 36.61 КБ | Просмотров: 1967 ]


Буду дальше наблюдать за графиками и ждать какие-нибудь интересные моменты...


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

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


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

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


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

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