Estou tentando coletar um núcleo java no AIX (java versão 1.6). Há apenas um agente de despejo configurado, que coleta um dump do sistema, dump do heap e java core em cada SIGQUIT, então usei o HealthCenter para solicitar apenas um javacore. Isso funcionou bem, não foi iniciado um dump de heap ou dump de sistema, mas fez com que o servidor WebLogic (eu sei) travasse por 172s (segundos, não ms) enquanto ele despejava, e o arquivo resultante era 88MB. Não faço ideia do que poderia fazer com que um despejo de javacore demore tanto e por que seria tão grande.
O slide 3 nesta apresentação afirma que deve ser necessário um algumas centenas de ms e cerca de 2MB, o que é muito parecido com o que eu vejo no HotSpot. Eu sei que está falando sobre o Java 5, mas um único aumento maior não conseguiu fazer uma diferença tão grande!
Qual poderia ser a causa de tanto tempo? Existe algo que eu possa fazer para acelerar?
FYI: o tamanho do heap é de 16 GB, mas estava com menos da metade quando o dump foi tirado. Também não há informações de memória nativa no dump e o uso do IBM TMDA se recusa a mostrar o painel de detalhes do encadeamento adequadamente. Existem cerca de 310 tópicos em cada dump que eu fiz.
Tags performance java ibm threads