Thread despejo para um arquivo

1

Eu li que posso encontrar o ID do processo e, em seguida, usar o comando kill para salvar o dump de thread em um arquivo. Mas o exemplo a seguir não retorna nada ...

# ps aux | grep -i java
wcuser    9136  0.0 17.2 3416012 1412772 ?     Sl   Oct10   2:32 /usr/bin/java -Djava.util.logging.config.file=/home/../conf/logging.properties ..... ...... start

# kill -3 9136

O que é o despejo de thread?

Quão exata funciona?

É possível automatizar o processo para levar o despejo para um arquivo periodicamente?

    
por shantanuo 12.10.2011 / 09:33

1 resposta

4

Envia para onde stdout é apontado para este processo. Uma maneira mais fácil é usar o jstack, que é fornecido pelo JDK. Com esta ferramenta, você pode simplesmente fazer:

jstack <pid> > thread-dump.out

Certifique-se de fazer isso como o usuário em que o processo está sendo executado.

O que é um dump de thread, é uma representação de captura instantânea de onde todos os encadeamentos atuais dentro desse processo Java estão ocupados na pilha. Existem ferramentas que permitem a análise mais fácil de dumps brutos, como VisualVM ou TDA.

É claro que é possível fazer isso periodicamente, basta colocar uma declaração como essa em um cronjob.

    
por 12.10.2011 / 10:20

Tags