|
|
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 16:58:06 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:02:50 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
а еще где хранятся int, long и прочие простые типы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:05:03 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. Зачем - чтобы у клиентов не тусить постоянно и их не просить делать какие то действия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:10:19 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseя про столбец "объем виртуальной памяти" в диспетчере задач в винде (xp,2003) Подозреваю что это тот, который сброшен на жесткий диск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:17:27 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseа еще где хранятся int, long и прочие простые типы? Если это локальные переменные, то на стэке. Если это поля объектов, то соответственно в куче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:19:02 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseЗачем - чтобы у клиентов не тусить постоянно и их не просить делать какие то действия. Ну, существуют внятные средства мониторинга. Зачем обязательно хип дампить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:19:50 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
BlazkowiczwnoiseЗачем - чтобы у клиентов не тусить постоянно и их не просить делать какие то действия. Ну, существуют внятные средства мониторинга. Зачем обязательно хип дампить? раз уж поставили знак вопроса в конце :) - а что имеется в виду под внятными средствами мониторинга? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:27:19 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
Blazkowiczwnoiseрасскажете вкратце? Там разные варианты есть. Во-первых исключение кидается, когда после полной сборки мусора свободного места в хипе осталось меньше определенного порога. Порог можно настроить. Во-вторых исключение кидается, когда уборка занимает радикально много времени ( то ли по сравнению с остальной работой JVM, то ли в абсолютной величине, не помню точно.) Тоже настраивается. http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html ну если java.lang.OutOfMemoryError: Java heap space - это ведь собственно оно - нехватка места в куче? Другими словами приближение (или попытка превышения) к параметру Xmx. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:40:32 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseну если java.lang.OutOfMemoryError: Java heap space - это ведь собственно оно - нехватка места в куче? Другими словами приближение (или попытка превышения) к параметру Xmx. Разговор начинался с приближения к 2Gb лимита ОС. Это совсем не то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:43:44 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо большое. Приятно поговорить с умным человеком :) Если бы еще вот про внятные средства мониторинга просветили ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:57:45 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseЕсли бы еще вот про внятные средства мониторинга просветили ;) Ну, если можно у клиента сокет открыть на JMX. То туда можно самому конектится и всё смотреть. Вариантов масса. Просто надо искать что именно подходит под ваши процессы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 18:00:34 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, сеть клиента с приложением под страхом смерти недоступна снаружи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 18:16:43 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseсеть клиента с приложением под страхом смерти недоступна снаружи. Так а зачем вам дамп снимать программно? -verbose:gc + GC log настраиваете. Этого хватает чтобы анализировать расход памяти. добавляете DumpHeapOnOutOfMemoryError и всё. Что именно вы хотите мониторить, если доступа к сети нет? Мониторить как бы подразумевает постоянную связь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 18:21:50 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
Я конечно извиняюсь за глупый вопрос :). А если я задал например параметр Xmx=1300, то какие параметры по памяти в диспетчере задач нужно мониторить, чтобы сделать вывод о приближении к опасной черте :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 10:33:45 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseЯ конечно извиняюсь за глупый вопрос :). А если я задал например параметр Xmx=1300, то какие параметры по памяти в диспетчере задач нужно мониторить, чтобы сделать вывод о приближении к опасной черте :)Никак, для этого надо профайлерами пользоваться, а не диспетчером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 10:55:42 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
svenomwnoiseЯ конечно извиняюсь за глупый вопрос :). А если я задал например параметр Xmx=1300, то какие параметры по памяти в диспетчере задач нужно мониторить, чтобы сделать вывод о приближении к опасной черте :)Никак, для этого надо профайлерами пользоваться, а не диспетчером. Это провал :). Система у заказчика и его It хочет мониторить самостоятельно память, чтобы принимать определенные меры. Профайлером он пользоваться не будет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 11:03:20 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseЭто провал :). Система у заказчика и его It хочет мониторить самостоятельно память, чтобы принимать определенные меры. Профайлером он пользоваться не будет :(Ну значит надо объяснить ему, что память в виртуальных машинах (не важно - JVM или .Net) нельзя мониторить через диспетчер, так как ее структура достаточно сложная и по циферке из Task Manager никаких "определенных мер" предпринять нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 11:31:16 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoise Это провал :). Система у заказчика и его It хочет мониторить самостоятельно память, чтобы принимать определенные меры. Профайлером он пользоваться не будет :( Что именно он хочет мониторить? Куча может бы заполнена и приложение при этом будет нормально работать. Напишите ему простейший монитор на базе GarbageCollectorMXBean и MemoryMXBean. И пусть мониторит, хоть до посинения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 12:20:48 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoiseПрофайлером он пользоваться не будет :( Это умным словом managementability называется. Когда приложение поддерживается админами, но для них разрабатывается специальный интерфейс мониторинга и инструкции, что делать в случае проблем. Научится пользоваться профайлером - проще. На jeeconf был отличный доклад по поводу GC в JVM: http://jeeconf.com/archive/jeeconf-2011/materials/garbage-collector/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 12:28:39 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
Спасибо. Blazkowiczwnoise Это провал :). Система у заказчика и его It хочет мониторить самостоятельно память, чтобы принимать определенные меры. Профайлером он пользоваться не будет :( Что именно он хочет мониторить? Куча может бы заполнена и приложение при этом будет нормально работать. Напишите ему простейший монитор на базе GarbageCollectorMXBean и MemoryMXBean. И пусть мониторит, хоть до посинения. а поясните плиз: выше шла речь о том, что jvm очень неохотно освобождает память. Соответственно если взять Код: java 1. , то он тоже неохотно освобождается пока не попросишь под другие задачи или явно не вызовешь: Код: java 1. Соответственно вопрос - так и должно быть? или надо дольше ждать пока не почистится? (смотрел на jvm 1.5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 15:54:46 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
wnoisejvm очень неохотно освобождает память. JVM под виндой не освобождает память вообще. Если речь про кучу, то здесь трудно сказать. Может приложению так и нужно. Большая куча живых объектов и маленький Eden. wnoiseСоответственно вопрос - так и должно быть? или надо дольше ждать пока не почистится? (смотрел на jvm 1.5) Что должно быть? Должно быть так чтобы ваше приложение не тормозило. Если ваше приложение тормозит, потому что GC, тогда надо разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2012, 16:26:06 |
|
||
|
HeapDumpOnOutOfMemoryError
|
|||
|---|---|---|---|
|
#18+
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(); так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2012, 13:13:20 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37653266&tid=2129726]: |
0ms |
get settings: |
14ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 277ms |
| total: | 420ms |

| 0 / 0 |
