powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / HeapDumpOnOutOfMemoryError
25 сообщений из 59, страница 2 из 3
HeapDumpOnOutOfMemoryError
    #37633404
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseхмм. действительно под 1.5 не отдается память в win7. Четко помню, что был такой тест, но правда не помню когда это было:)

Не важно. Вы могли, например, обратить внимание только на RAM, без учета виртуальной памятию

wnoiseС другой стороны виртуальная память для процесса может уменьшаться - я так понимаю это когда jvm стартует выполнение gc сама?

Виртуальная память уменьшается, когда данные из неё переносятся в физическую. Или что у вас вообще под виртуальной подразумевается?

wnoiseЕще спрашивал: можно ли программно получить heapdump?
Гугл говорит, что можно. Вопрос - зачем?
http://code.google.com/p/perfbench/source/browse/trunk/perfbench/jmeter-utils/src/main/java/jmeterutils/JmxHeapDumper.java
http://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java
http://www.java-community.de/archives/85-Java-heap-dumps.html
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633419
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczwnoiseхмм. действительно под 1.5 не отдается память в win7. Четко помню, что был такой тест, но правда не помню когда это было:)

Не важно. Вы могли, например, обратить внимание только на RAM, без учета виртуальной памятию

wnoiseС другой стороны виртуальная память для процесса может уменьшаться - я так понимаю это когда jvm стартует выполнение gc сама?

Виртуальная память уменьшается, когда данные из неё переносятся в физическую. Или что у вас вообще под виртуальной подразумевается?

wnoiseЕще спрашивал: можно ли программно получить heapdump?
Гугл говорит, что можно. Вопрос - зачем?
http://code.google.com/p/perfbench/source/browse/trunk/perfbench/jmeter-utils/src/main/java/jmeterutils/JmxHeapDumper.java
http://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java
http://www.java-community.de/archives/85-Java-heap-dumps.html

я про столбец "объем виртуальной памяти" в диспетчере задач в винде (xp,2003)
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633428
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще где хранятся int, long и прочие простые типы?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633447
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
wnoise
Еще спрашивал: можно ли программно получить heapdump?

Гугл говорит, что можно. Вопрос - зачем?
http://code.google.com/p/perfbench/source/browse/trunk/perfbench/jmeter-utils/src/main/java/jmeterutils/JmxHeapDumper.java
http://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java
http://www.java-community.de/archives/85-Java-heap-dumps.html



Зачем - чтобы у клиентов не тусить постоянно и их не просить делать какие то действия.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633461
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseя про столбец "объем виртуальной памяти" в диспетчере задач в винде (xp,2003)
Подозреваю что это тот, который сброшен на жесткий диск.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633463
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseа еще где хранятся int, long и прочие простые типы?
Если это локальные переменные, то на стэке. Если это поля объектов, то соответственно в куче.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633465
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseЗачем - чтобы у клиентов не тусить постоянно и их не просить делать какие то действия.
Ну, существуют внятные средства мониторинга. Зачем обязательно хип дампить?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633482
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczwnoiseЗачем - чтобы у клиентов не тусить постоянно и их не просить делать какие то действия.
Ну, существуют внятные средства мониторинга. Зачем обязательно хип дампить?

раз уж поставили знак вопроса в конце :) - а что имеется в виду под внятными средствами мониторинга?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633510
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczwnoiseрасскажете вкратце?

Там разные варианты есть.
Во-первых исключение кидается, когда после полной сборки мусора свободного места в хипе осталось меньше определенного порога. Порог можно настроить.
Во-вторых исключение кидается, когда уборка занимает радикально много времени ( то ли по сравнению с остальной работой JVM, то ли в абсолютной величине, не помню точно.) Тоже настраивается.
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

ну если java.lang.OutOfMemoryError: Java heap space - это ведь собственно оно - нехватка места в куче? Другими словами приближение (или попытка превышения) к параметру Xmx.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633519
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseну если java.lang.OutOfMemoryError: Java heap space - это ведь собственно оно - нехватка места в куче? Другими словами приближение (или попытка превышения) к параметру Xmx.
Разговор начинался с приближения к 2Gb лимита ОС. Это совсем не то же самое.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633556
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Спасибо большое. Приятно поговорить с умным человеком :)

Если бы еще вот про внятные средства мониторинга просветили ;)
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633565
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseЕсли бы еще вот про внятные средства мониторинга просветили ;)
Ну, если можно у клиента сокет открыть на JMX. То туда можно самому конектится и всё смотреть. Вариантов масса. Просто надо искать что именно подходит под ваши процессы.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633623
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

сеть клиента с приложением под страхом смерти недоступна снаружи.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633649
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseсеть клиента с приложением под страхом смерти недоступна снаружи.
Так а зачем вам дамп снимать программно?
-verbose:gc + GC log настраиваете. Этого хватает чтобы анализировать расход памяти.
добавляете DumpHeapOnOutOfMemoryError и всё.

Что именно вы хотите мониторить, если доступа к сети нет? Мониторить как бы подразумевает постоянную связь.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37653116
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я конечно извиняюсь за глупый вопрос :). А если я задал например параметр Xmx=1300, то какие параметры по памяти в диспетчере задач нужно мониторить, чтобы сделать вывод о приближении к опасной черте :)
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37653160
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseЯ конечно извиняюсь за глупый вопрос :). А если я задал например параметр Xmx=1300, то какие параметры по памяти в диспетчере задач нужно мониторить, чтобы сделать вывод о приближении к опасной черте :)Никак, для этого надо профайлерами пользоваться, а не диспетчером.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37653176
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomwnoiseЯ конечно извиняюсь за глупый вопрос :). А если я задал например параметр Xmx=1300, то какие параметры по памяти в диспетчере задач нужно мониторить, чтобы сделать вывод о приближении к опасной черте :)Никак, для этого надо профайлерами пользоваться, а не диспетчером.

Это провал :). Система у заказчика и его It хочет мониторить самостоятельно память, чтобы принимать определенные меры. Профайлером он пользоваться не будет :(
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37653266
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseЭто провал :). Система у заказчика и его It хочет мониторить самостоятельно память, чтобы принимать определенные меры. Профайлером он пользоваться не будет :(Ну значит надо объяснить ему, что память в виртуальных машинах (не важно - JVM или .Net) нельзя мониторить через диспетчер, так как ее структура достаточно сложная и по циферке из Task Manager никаких "определенных мер" предпринять нельзя.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37653417
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoise Это провал :). Система у заказчика и его It хочет мониторить самостоятельно память, чтобы принимать определенные меры. Профайлером он пользоваться не будет :(
Что именно он хочет мониторить? Куча может бы заполнена и приложение при этом будет нормально работать. Напишите ему простейший монитор на базе GarbageCollectorMXBean и MemoryMXBean. И пусть мониторит, хоть до посинения.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37653441
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseПрофайлером он пользоваться не будет :(
Это умным словом managementability называется. Когда приложение поддерживается админами, но для них разрабатывается специальный интерфейс мониторинга и инструкции, что делать в случае проблем.
Научится пользоваться профайлером - проще.

На jeeconf был отличный доклад по поводу GC в JVM:
http://jeeconf.com/archive/jeeconf-2011/materials/garbage-collector/
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37654096
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

Blazkowiczwnoise Это провал :). Система у заказчика и его It хочет мониторить самостоятельно память, чтобы принимать определенные меры. Профайлером он пользоваться не будет :(
Что именно он хочет мониторить? Куча может бы заполнена и приложение при этом будет нормально работать. Напишите ему простейший монитор на базе GarbageCollectorMXBean и MemoryMXBean. И пусть мониторит, хоть до посинения.

а поясните плиз:

выше шла речь о том, что jvm очень неохотно освобождает память. Соответственно если взять

Код: java
1.
ManagementFactory.getMemoryMXBean(). getUsed();



, то он тоже неохотно освобождается пока не попросишь под другие задачи или явно не вызовешь:

Код: java
1.
ManagementFactory.getMemoryMXBean().gc();



Соответственно вопрос - так и должно быть? или надо дольше ждать пока не почистится? (смотрел на jvm 1.5)
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37654178
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoisejvm очень неохотно освобождает память.
JVM под виндой не освобождает память вообще. Если речь про кучу, то здесь трудно сказать. Может приложению так и нужно. Большая куча живых объектов и маленький Eden.

wnoiseСоответственно вопрос - так и должно быть? или надо дольше ждать пока не почистится? (смотрел на jvm 1.5)
Что должно быть? Должно быть так чтобы ваше приложение не тормозило. Если ваше приложение тормозит, потому что GC, тогда надо разбираться.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37655452
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37655669
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz http://habrahabr.ru/blogs/java/137641/

Спасибо. Вопрос все таки немного в другом. Приложение не тормозит, потому что GC. Есть задача - в рамках приложения реализовать минимальный мониторинг - приближение/удаление от опасной черты, заданной параметром xmx.

Использую

ManagementFactory.getMemoryMXBean().getUsed();

С точки зрения приближения - работает - первая часть задачи решена. Беремся за вторую - удаление от этой опасной черты. Соответственно данные уже не нужны и память никто не требует. В этом случае строчки вроде(при включенном -verbose:gc):

[Full GC 16231K->16197K(33408K), 0.0399266 secs]

не появляются (что логично). А полная сборка мусора происходит только при вызове

ManagementFactory.getMemoryMXBean().gc();

Соответственно если приложение затребовало большой объем памяти, освободило (например метод закончился, внутри которого локально выделялась память) и после этого никаких задач не выполняет (и соответственно памяти не просит), то

ManagementFactory.getMemoryMXBean().getUsed();

будет всегда возвращать пиковое значение и скинуть его можно только вызовом:

ManagementFactory.getMemoryMXBean().gc();

так?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37655676
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseтак?
В Hotspot несколько разных сборщиков с разным поведением. Вот так сразу компактно ответить на ваш вопрос нельзя. Всё сложнее.
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / HeapDumpOnOutOfMemoryError
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]