powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / HeapDumpOnOutOfMemoryError
59 сообщений из 59, показаны все 3 страниц
HeapDumpOnOutOfMemoryError
    #36862871
Landsknecht
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
подскажите, как в можно получить дамп памяти..по событию OutOfMemory
приложение на tomcate зависает со следующими симптомами

Код: plaintext
1.
2.
7195K->87195K(164480K)] [PSOldGen: 524288K->524288K(524288K)] 611483K->611483K(688768K) [PSPermGen: 21110K->21110K(24576K)],  12 , 9164580  secs]
 56895 , 718 : [Full GC [PSYoungGen: 87195K->86956K(164480K)] [PSOldGen: 524288K->524287K(524288K)] 611483K->611244K(688768K) [PSPermGen: 21110K->21110K(24576K)],  16 , 3446225  secs]

пробовал использовать параметр -XX:+HeapDumpOnOutOfMemoryError
но при зависании файл дампа не создался.

система со следующей конфигурацией

Код: plaintext
1.
2.
3.
4.
$ java -version
java version "1.5.0_14"
Java(TM)  2  Runtime Environment, Standard Edition (build  1 . 5 .0_14-b03)
Java HotSpot(TM) Server VM (build  1 . 5 .0_14-b03, mixed mode)

Код: plaintext
1.
2.
3.
$ uname -a
SunOS  5 . 10   sun4v sparc SUNW,SPARC-Enterprise-T5120
$
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36862897
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stop-the-world GC это ещё не OutOfMemoryError.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36862972
Landsknecht
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за участие!
BlazkowiczStop-the-world GC это ещё не OutOfMemoryError.

бываеет и такое
Код: plaintext
1.
java.lang.OutOfMemoryError: Java heap space

но в основном сейчас вижу такого типа ошибки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
[Loaded sun.reflect.GeneratedSerializationConstructorAccessor151 from __JVM_DefineClass__]
 68 	at java.net.SocketOutputStream.socketWrite0( Native  Method) 56588 , 662 : [Full GC [PSYoungGen: 87372K->86677K(164480K)] [PSOldGen: 524288K->524288K(524288K)] 611660K->610965K(688768K) [PSPermGen: 21100K->21099K(24576K)],  16 , 6330272  secs]

	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java: 92 )
	at java.net.SocketOutputStream.write(SocketOutputStream.java: 136 )

	at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java: 65 ) 91 

	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java: 123 ) 68 

на что бы обратить внимание...для определения причин утечки памяти, очень хочется получить дамп(
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36863058
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот когда такое бывает
java.lang.OutOfMemoryError: Java heap space

тогда и должен сгенерится дамп. Но вообще это не всегда работает, потому как JVM может не хватить памяти на то чтобы сгенерить дамп. Лучше мониторить хип, а потом снять дамп по запросу.

-XX:+HeapDumpOnCtrlBreak выставить, а потом как куча забита kill -3 PID
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36863856
Landsknecht
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
большое спасибо!

ели для вас не будет трудом, скажите, что может быть причиной возникновения
Код: plaintext
Stop-the-world GC

и не сочтите за наглость

Код: plaintext
1.
-XX:+HeapDumpOnCtrlBreak выставить, а потом как куча забита kill - 3  PID

т.е. при этом параметре HeapDumpOnCtrlBreak будут видны процессы, которые при их возникновении можно будет убивать системной утилитой kill?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36864053
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Landsknecht
ели для вас не будет трудом, скажите, что может быть причиной возникновения Stop-the-world GC

Память расходуется на столько быстро что parallel GC не успевает всё собрать. А так же слишком большое количество объектов в tenured.
http://rsdn.ru/forum/java/3130448.aspx
http://rsdn.ru/forum/java/3633267.1.aspx


Landsknechtт.е. при этом параметре HeapDumpOnCtrlBreak будут видны процессы, которые при их возникновении можно будет убивать системной утилитой kill?
Нет. Kill -3 просто посылает процессу команду. Процесс её получает и вываливает дамп потоков в System out. А если эта опция включена, то ещё и дапм кучи.
Эту опцию с какого-то перепуга убрали в Java 6. Дамп памяти так же можно получить через jmap и visualvm. Первый консольный, второй - гуёвый.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36864578
Landsknecht
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
а в этом случаи может возыметь действие по оптимизации работы GC, включение различных параметров
к примеру -XX:+UseParallelGC и подобных?

спасибо большое за развернутый ответ!
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36864592
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Landsknecht а в этом случаи может возыметь действие по оптимизации работы GC, включение различных параметров
к примеру -XX:+UseParallelGC и подобных?

Оптимизация GC это коплексный процесс. Простое включение параметров не поможет. Нужно понимать что делает каждый ключ. Как это отразится на системе. И как нужно поменять значение именно под вашу систему.
Обычно с этим заморчиваются только для высоконагруженых систем. В других случаях вполне достаточно оптимизировать код.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36875075
Landsknecht
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
добрый день! получил дамп по java.lang.OutOfMemoryError
если вам не в тягость, посоветуйте чем его можно обработать, для наглядности...
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36875082
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LandsknechtBlazkowicz,
добрый день! получил дамп по java.lang.OutOfMemoryError
если вам не в тягость, посоветуйте чем его можно обработать, для наглядности...
VisualVM (JDK/bin/jvisualvm.exe)
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #36875465
Dany305
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LandsknechtBlazkowicz,
добрый день! получил дамп по java.lang.OutOfMemoryError
если вам не в тягость, посоветуйте чем его можно обработать, для наглядности...

Memory Analyzer (MAT) рулез форева
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
HeapDumpOnOutOfMemoryError
    #37630987
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczLandsknechtBlazkowicz,
добрый день! получил дамп по java.lang.OutOfMemoryError
если вам не в тягость, посоветуйте чем его можно обработать, для наглядности...
VisualVM (JDK/bin/jvisualvm.exe)

а в 1.5 есть что нибудь встроенное для просмотра?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37630997
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseа в 1.5 есть что нибудь встроенное для просмотра?
Скачайте JDK 6 и запустите visualvm оттуда. Можно вообще её отдельно скачать.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37630998
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JConsole
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633064
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот такой вопрос у меня созрел при просмотре Java VisualVM.

Виртуальная память процесса (Xp, 2003 - 32 бита) большая: приближается к 1,3-1,4 Gb. Хочу понять, что же (кто же) это сжирает. Получаю HeapDump - вижу вроде правдоподобные вещи, НО если смотреть size, то он соотносится к общей выжратой памяти процесса как 1 к 10 (5-10%). Как можно посмотреть остальное? Или если gc вдруг соберет всё, что он может собрать, то собственно только эти 5-10% у процесса и останутся?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633092
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseВиртуальная память процесса (Xp, 2003 - 32 бита) большая: приближается к 1,3-1,4 Gb. Хочу понять, что же (кто же) это сжирает. Получаю HeapDump - вижу вроде правдоподобные вещи, НО если смотреть size, то он соотносится к общей выжратой памяти процесса как 1 к 10 (5-10%). Как можно посмотреть остальное? Или если gc вдруг соберет всё, что он может собрать, то собственно только эти 5-10% у процесса и останутся?
Попробуйте переформулировать вопрос. А то не очень понятно кто что сожрет и кому не останется.
Перед созданием дампа кучи происходит Full GC.
Куча зачастую занимает большую часть памяти процесса, но кроме неё часть памяти использует сама JVM и ещё perm gen space
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633121
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Смотрите:

есть процесс, у которого в некий момент времени значение виртуальной памяти приближается к 1,3-1,4 Gb (т.е. критичному значению для 32 битных систем - как я понимаю :)). Логично желание посмотреть на какие цели вся эта память выделяется и можно ли с этим что то сделать (точнее говоря какой кэш уменьшить или совсем убрать).

Используются след. параметры:
-Xms128m
-Xmx1300m

Сделал heapdump через vmparam -XX:+HeapDumpOnCtrlBreak путем нажатия ctrl-break.

Открываю в Java VisualVM (jdk1.6; сам дамп делался в 1.5) и вижу что:
Код: java
1.
Total bytes: 16 730 091



при том, что в данном конкретном тестовом случае виртуальная память процесса 250-300 метров. Собственно вопрос - или неправильно отображается или остальные 95% отводятся не на heap, а в другое место и можно ли посмотреть куда именно?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633156
Miha_S7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wnoise,

зачем вообще дампы делать? В jvisualvm видно и хип и перм, что где сколько.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633164
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoise есть процесс, у которого в некий момент времени значение виртуальной памяти приближается к 1,3-1,4 Gb (т.е. критичному значению для 32 битных систем - как я понимаю :)).
Такое ощущение, что вы прям опасаетесь этого приближения. Не опасайтесь. Мир не рухнет.

wnoiseЛогично желание посмотреть на какие цели вся эта память выделяется и можно ли с этим что то сделать (точнее говоря какой кэш уменьшить или совсем убрать).

Используются след. параметры:
-Xms128m
-Xmx1300m

Открываю в Java VisualVM (jdk1.6; сам дамп делался в 1.5) и вижу что:
Total bytes: 16 730 091

Все лишние объекты были собраны. В куче осталось 16Мб живых объектов. Под виндой JVM не особо отдаёт память обратно в ОС. Если в какой-то момент куча выросла, до 1Gb, то это пространство останется выделеным под кучу. Даже если живым объектам нужно гораздо больше. Логично предположить что Xmx можно было бы и поменьше поставить.

wnoiseпри том, что в данном конкретном тестовом случае виртуальная память процесса 250-300 метров. Собственно вопрос - или неправильно отображается или остальные 95% отводятся не на heap, а в другое место и можно ли посмотреть куда именно?
Под хип место резервируется. Даже если там всего 2Мб живых объектов, JVM может зарезервировать 1Gb под хип и никому не отдавать.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633207
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

бывало и рушился мир, когда outofmemory кидался - поэтому настороженно отношусь.

Что касается отдачи памяти, то n лет назад помнится ставил тест - потребовалось 4-е вызова gc (на простом тесте), чтобы память вернули.

Соответственно там, где кидается OutOfMemory - надо просто мониторить heap? а можно получение dump программно инициировать?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633228
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseбывало и рушился мир, когда outofmemory кидался - поэтому настороженно отношусь.

outofmemory кидается при других обстоятельствах. К приближению в 2Гб лимит 32х-битной ос он никакого отношения не имеет.

wnoiseЧто касается отдачи памяти, то n лет назад помнится ставил тест - потребовалось 4-е вызова gc (на простом тесте), чтобы память вернули.

Мы про память ОС или свободное место в куче? Java 5 под виндой память точно не отдаёт. Никак. Что в последних версиях - не знаю.

wnoiseСоответственно там, где кидается OutOfMemory - надо просто мониторить heap?

Да.

wnoiseа можно получение dump программно инициировать?
Можного его на OutOfMemoryError повесить.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633264
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Код: java
1.
2.
3.
4.
wnoise
бывало и рушился мир, когда outofmemory кидался - поэтому настороженно отношусь.

outofmemory кидается при других обстоятельствах. К приближению в 2Гб лимит 32х-битной ос он никакого отношения не имеет.



расскажете вкратце?

Код: java
1.
2.
3.
4.
wnoise
Что касается отдачи памяти, то n лет назад помнится ставил тест - потребовалось 4-е вызова gc (на простом тесте), чтобы память вернули.

Мы про память ОС или свободное место в куче? Java 5 под виндой память точно не отдаёт. Никак. Что в последних версиях - не знаю.



про память ОС. не исключено, что дело было с 1.4

Код: java
1.
2.
3.
4.
wnoise
а можно получение dump программно инициировать?

Можного его на OutOfMemoryError повесить.



вроде как выше в теме было сказано, что jvm может не хватить сил в случае outofmemory на генерацию дампа.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633287
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseрасскажете вкратце?

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


wnoiseпро память ОС. не исключено, что дело было с 1.4
В 1.4 и ранних версиях под виндой тоже не отдаётся память. Уверен что и в 6 и в 7 та же проблема.

wnoiseвроде как выше в теме было сказано, что jvm может не хватить сил в случае outofmemory на генерацию дампа.
У меня такое было в IBM JVM. Как решение, можно выставить порог выброса OOME побольше.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633337
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseвроде как выше в теме было сказано, что jvm может не хватить сил в случае outofmemory на генерацию дампа. У Микрософта в .Net есть прикол на эту тему. Он для того, что бы суметь бросить OutOfMemory заранее создает инстанс исключения в системном домене - как раз для того, что бы суметь бросить его в случае отсутствии места в куче
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #37633345
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

хмм. действительно под 1.5 не отдается память в win7. Четко помню, что был такой тест, но правда не помню когда это было:)
С другой стороны виртуальная память для процесса может уменьшаться - я так понимаю это когда jvm стартует выполнение gc сама?

Еще спрашивал: можно ли программно получить heapdump?
...
Рейтинг: 0 / 0
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
Период между сообщениями больше года.
HeapDumpOnOutOfMemoryError
    #38195031
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять подниму. А мне кажется или в 1.7 не поддерживается параметр -XX:+HeapDumpOnCtrlBreak ?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #38195036
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseОпять подниму. А мне кажется или в 1.7 не поддерживается параметр -XX:+HeapDumpOnCtrlBreak ?
Нет, не кажется. Да, не поддерживает. Почему-то убрали. Не помню почему.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #38195048
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и как теперь с клиентов получать dump ?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #38195049
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jvisualvm ?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #38195059
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoiseи как теперь с клиентов получать dump ?
С каких ещё "клиентов"?
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #38195060
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wnoisejvisualvm ?
Да, как вариант.
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #38195063
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объяснение, что зачем и почему:
http://bugs.sun.com/view_bug.do?bug_id=6454676
...
Рейтинг: 0 / 0
HeapDumpOnOutOfMemoryError
    #38195068
wnoise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczwnoiseи как теперь с клиентов получать dump ?
С каких ещё "клиентов"?

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


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