|
|
|
Оптимизация приложения.
|
|||
|---|---|---|---|
|
#18+
День добрый! Опыта в анализе узких мест и оптимизация приложений разработанных на java - нет. Тем не менее сейчас поставлена задача разобраться почему приложение тормозит. Сервер приложений weblogic в качестве jvm используем Jrockit; Проблема: Процесс выжырает всю память после чего приложение недоступно. Вопрос: как можно выяснить какой тред в рамках процесса нажрался памяти и сколько съел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2015, 12:14 |
|
||
|
Оптимизация приложения.
|
|||
|---|---|---|---|
|
#18+
student42какой тред а от треда к куску кода как перейдёшь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2015, 12:27 |
|
||
|
Оптимизация приложения.
|
|||
|---|---|---|---|
|
#18+
student42Опыта в анализе узких мест и оптимизация приложений разработанных на java - нет. Рекомендую доклад в нескольких частях httpы://www.youtube.com/watch?v=ulWWSKr0Ce0 student42Сервер приложений weblogic в качестве jvm используем Jrockit; Тогда возможно доступны продвинутые инструменты анализа работы системы: http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html student42Проблема: Процесс выжырает всю память после чего приложение недоступно. Звучит как Memory Leak. Снимаем дамп памяти любым профайлером и анализируем. Если размер кучи не сильно большой - 1-2 Гб, то можно взять jvisualvm из JDK Для больших куч, лучше пользовать комерческие профайлеры JProfiler и YourKit student42Вопрос: как можно выяснить какой тред в рамках процесса нажрался памяти и сколько съел? В Java объекты хранятся в общей куче aka Heap. Сами потоки используют относительно не много памяти под стек, поэтому такой подход не используется. Да, и на сервере, потоки выполняют сходный рантайм, поэтому к отдельному потоку привязки особой нет. Снимаем дамп памяти, смотрим какие типы сколько памяти занимают и обращаем внимание на количество экземпляров. Находим те что в памяти быть не должны, и средствами профайлера ищем как они связаны с GC Roots. Распространенная утечка памяти на серверах это незакрытые JDBC ресурсы (Statement/ResultSet). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2015, 12:29 |
|
||
|
Оптимизация приложения.
|
|||
|---|---|---|---|
|
#18+
Проблема: Процесс выжырает всю память после чего приложение недоступно. Так память тячёт, очевидно же ж... Вопрос: как можно выяснить какой тред в рамках процесса нажрался памяти и сколько съел? visualvm же ж ... дампы памяти и всё такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2015, 15:43 |
|
||
|
Оптимизация приложения.
|
|||
|---|---|---|---|
|
#18+
student42Вопрос: как можно выяснить какой тред в рамках процесса нажрался памяти и сколько съел? Тебе имя треда может ничего не дать. Он может быть служебным. К примеру относящимся к технологиям Orm, пулов коннектов. И что ты будешь дальше с этим знанием делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2015, 11:57 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39008729&tid=2125166]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 299ms |

| 0 / 0 |
