LINUX.ORG.RU

jstack и процессорное время

 , , , ,


0

2

Привет!

Сталкиваюсь с интересной проблемой. Примерно знаю как решить. Но чувствую, использую не совсем правильные инструменты.

Приложение периодически кушает слишком много CPU, пытаюсь понять, на что это время тратится. top с опциями -Hp <pid> очень помогает, НО - он даёт мне список нитей с номерами в десятичной системе счисления.

Я хочу узнать не номер, а название нити в JVM, следовательно, я лезу в jstack. Но там пишется nid в шестнадцатеричной системе счисления. Надо пересчитывать, на это тратится драгоценное время (да и не успеваю я уследить, они меняются). А в идеале бы мне чтобы jstack писал, сколько % процессора «кушает» та или иная нить в нужный момент времени сразу.

Есть что-то такое?

Updated: есть, в jvisualvm - плохо искал.

★★★★★

Последнее исправление: BattleCoder (всего исправлений: 1)
Ответ на: комментарий от Bass

Да, этого ещё не пробовал. Не догадался. Точно, попробую.

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Тут есть один недостаток, сразу в голову не пришло. Надо же как-то подключиться к удалённой машине. top хорош тем, что есть везде, где есть ssh...

Я так понимаю, мне немного модифицировать и перезапустить приложение для этих целей придётся...

BattleCoder ★★★★★
() автор топика
Последнее исправление: BattleCoder (всего исправлений: 1)
Ответ на: комментарий от hippi90

О, оказывается, вполне себе бесплатный (вроде?) jvisualvm умеет то, что мне надо. Просто на глаза не попадалась нужная вкладка! Sampler, а потом Thread CPU Time. Решено. Хотя с профайлерами обязательно как-нибудь повожусь, наверняка полезно будет (но вот прямо сейчас не сильно уж и надо).

А по ответу - там всё сложно, запутанно, и даже немножк стыдно. Хотя я такое не писал, всего лишь поддерживаю... Не хочу рассказывать.

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

Обычно надо добавить в флаги запуска java нужные аргументы и потом прокинуть порт через ssh. Флаги запуска настраиваются чаще всего во всяких шелл-скриптах запуска.

Legioner ★★★★★
()
Ответ на: комментарий от BattleCoder

Есть ещё (или был, не следил что там оракл с ним наворотил) java mission control, который позволяет очень гибко настраивать то что ты хочешь собрать в дамп-файл а потом этот дамп анализировать где угодно. Не знаю как там у него сейчас с лицензией, раньше для использования в продакшн нужно было ораклу денег закинуть.

maloi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.