É apropriado usar o HeapDumpOnOutOfMemoryError na produção?

6

Temos lutado para diagnosticar a causa de um erro OutOfMemory que experimentamos em um dos nossos servidores de produção. Nossas tentativas de reproduzir o problema nos testes de saturação falharam até agora, e estamos considerando ativar o -XX:+HeapDumpOnOutOfMemoryError em nossos servidores de produção, para que, caso isso aconteça novamente, pelo menos, tenhamos alguns dados.

É sensato ativar essa configuração em servidores de produção?

    
por James_pic 28.11.2014 / 13:54

1 resposta

8

Dê uma olhada na documentação:

B.1.2 -XX:+HeapDumpOnOutOfMemoryError Option

The -XX:+HeapDumpOnOutOfMemoryError command-line option tells the HotSpot VM to generate a heap dump when an allocation from the Java heap or the permanent generation cannot be satisfied. There is no overhead in running with this option, and so it can be useful for production systems where OutOfMemoryError takes a long time to surface.

You can also specify this option at runtime with the MBeans tab in the jconsole utility.

The heap dump is in HPROF binary format, and so it can be analyzed using any tools that can import this format. For example, the jhat tool can be used to do rudimentary analysis of the dump. See 2.5 jhat Utility.

-XX:+HeapDumpOnOutOfMemoryError flag não apresenta problemas de desempenho ou segurança no tempo de execução. O sinalizador é verificado somente depois de OutOfMemoryError ter ocorrido.

Você pode especificar o caminho real para o qual o arquivo é salvo usando o sinalizador -XX:HeapDumpPath correspondente. (Independentemente de onde o arquivo é salvo, verifique se o sistema de arquivos e / ou o processo Java possui a configuração de permissão necessária para poder gravar lá.)

    
por 28.11.2014 / 15:48

Tags