Se você usa o Solaris, tem sorte de poder usar o dtrace. Isso permitirá que você crie um perfil para o nível do kernel e obtenha mais dicas sobre como o jvm está interagindo com o kernel.
Mais informações aqui
Se você quiser descobrir o que está fazendo, execute o dtrace com os testes do jvm.
isso lhe dará resultados muito mais significativos em relação ao seu programa. Dar uma olhada na seção "Tempos de método".
é um ótimo guia para encontrar gargalos de garrafa de i / o.
isso também pode ajudar link
Não há regras rígidas e rápidas ao rastrear problemas como esse, mas informações É a chave!!. Se você seguir estes guias, Você está no caminho certo para se tornar um engenheiro de sistemas ninja.
Você pode usar jprofiler link
não é de código aberto, no entanto, tive grande sucesso em rastrear problemas de desempenho do Java com ele.
Você também deve executar seu java vm e seu aplicativo com o log de depuração completo. Se você tiver acesso aos logs do kernel, verifique se há eventos incomuns.
Boa sorte.
Alguém mais na falha do servidor tem algumas dicas ninja para problemas de detecção de falhas como este. Eu tenho meu próprio jeito de depurar, mas seria interessante saber o que os outros pensam?
----------------- UPDATE --------------
Eu olhei para o rastreamento novamente, parece que você parece estar fazendo muitos caminhos de resolução.
Isso precisa ser corrigido. Você está usando um caminho muito longo ou em um diretório que é symlinked. Tente remover links simbólicos ou usando links de hardware e veja se você obtém melhores resultados.
O aplicativo faz o lote de diretório atravessado e, em seguida, tenta usar o caminho absoluto, em vez que caminhos relativos.
Mais uma vez, apenas uma ideia 'Eu tive mais de comer um bolo de queijo. Execute o dtrace com os probes java, que deve detalhar o suficiente para ver que classe / métodos java estão demorando mais tempo.
Boa sorte (de novo). Não desista agora, acho que estamos muito perto da solução.