Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ibm HeapAnalyzer
|
|||
|---|---|---|---|
|
#18+
Привет! У нас проблема с утечкой памяти на WebSphere 7.0. Пытаюсь анализировать дампы памяти, использую утилиту IBM HeapAnalyzer. Не совсем понятно как она работает. поэтому есть несколько вопросов. 1. Что означает главное дерево объектов ( картинка дерева ), я так понял что в корне идут инстанции классов на которых нет ссылок, а уже от них идут ссылки на другие инстации классов. Если это так, то у меня получается что классы одного проекта ссылаются на классы другого проекта. как такое может быть? 2. в меню Analyze есть пункт Object List ( картинка ), который показывает инстации классов, почему поле totalSize такое большое? что оно вообще обозначает? или это сумма всех классов на которых есть дочерняя ссылка? если это так то 1 вопрос становится еще актуальнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2014, 08:15 |
|
||
|
ibm HeapAnalyzer
|
|||
|---|---|---|---|
|
#18+
еще вопрос, в процессах операционки видно что сфера кушает более 4гб физической памяти, не считая виртуальной, там более 8гб. а дамп получается всего 500 мб. почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2014, 08:32 |
|
||
|
ibm HeapAnalyzer
|
|||
|---|---|---|---|
|
#18+
olzhas, авторв процессах операционки видно что сфера кушает более 4гб физической памяти, не считая виртуальной, там более 8гб. а дамп получается всего 500 мб. почему так? Во-первых, надо понимать, что ваш heap dump - это совсем не снимок хипа как области памяти. Это лишь некое представление этой области. Будем считать, схема. Пусть IBM отдувается: авторBoth Heapdump formats contain a list of all object instances in the heap, including each object address, type or class name, size, and references to other objects. The Heapdumps also contain information about the version of the JVM that produced the Heapdump. They do not contain any object content or data other than the class names and the values (addresses) of the references. Во-вторых, есть два формата у IBM - классик и портэйбл. Первый - в текстовом виде, второй - в бинарном. Соответственно, второй занимает еще меньше места. Если вы говорите о том, сколько и что сфера "кушает", учтите, помимо хипа - стек тредов, мусорку (Garbage Collection), нативную память, PermGen и прочее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2014, 14:56 |
|
||
|
ibm HeapAnalyzer
|
|||
|---|---|---|---|
|
#18+
Что то я поторопрился с кучей ошибка звучит так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Это проблемы с native memory, на сколько я понял это память с которой работают нативные вызовы т.е. тот же пакет nio. Поставил IBM Monitoring and Diagnostic Tools и запустил отчеты NativeMemAnalysis_extended. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. Обращаю внимание на на большее количество нитей >100 это нормально или действиельно есть утечка? Так же пункт 2.1.6 и 2.1.7 большее количество потенциальных инвалидных ссылок, по ним тоже есть отчет, выдает такое Код: java 1. 2. по нему я тоже ничего не могу понять. по пункту 3 тоже не понятно что за элемент данных поврежден? Что за паять такая native? и кто ее может забить? какой параметр при запуске jvm указывает размер native memory? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 08:18 |
|
||
|
ibm HeapAnalyzer
|
|||
|---|---|---|---|
|
#18+
olzhas, Так же в параметрах запуска jvm нашел ключ -Xscmx50M "java -X" говорит что "-Xscmx<x> установить размер кэша нового общего класса равным <x>", может это как то влиять на размер native memory? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 08:33 |
|
||
|
ibm HeapAnalyzer
|
|||
|---|---|---|---|
|
#18+
olzhas, как вариант, дело не в нативной памяти, а в том что Jackson в бесконечном циклеolzhas com.fasterxml.jackson.databind.introspect.AnnotatedClass.construct строит классы по аннотациям и там какой-нить цикл зависимостей. про нативную память здесь http://www.ibm.com/developerworks/library/j-nativememory-linux/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:37 |
|
||
|
ibm HeapAnalyzer
|
|||
|---|---|---|---|
|
#18+
chro, сомневаюсь что проблема в jackson. Я привел лишь частный случай StackTrace. На самом деле важно именно первые строки. Код: java 1. 2. 3. 4. такие же ошибки выходят и на других участках кода, где jackson нету. почитав статью (кстати вот она на русском языке) понял что у IBM VM нету PermGen Space, а классы создаются в системной (native) памяти. Вот и получается что системная память заканчивается и java не может загрузить новый класс, при чем у меня есть подозрение, что он пытается загрузить уже загруженные классы, но который лежит в другом ClassLoader. Профилировать системную память ох как не просто. И еще у меня в дампе показывает Код: java 1. 2. Ладно с количество классов еще нормально, а вот 1746 класслоудеров? от куда столько? или это нормально для WebSphere? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 16:08 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38614403&tid=1601107]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 168ms |

| 0 / 0 |
