O que causa longos tempos de rotação e sincronização em Java?

No Java 8, atualização 45, adicionando essas opções aojava ligar:

-XX:+PrintGCApplicationStoppedTime
-XX:+PrintSafepointStatistics
-XX:PrintSafepointStatisticsCount=1

mostra-me estatísticas como estas:

vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count
3679.229: no vm operation [ 72 1 2 ] [ 6016 0 6016 0 0 ]  1
2015-05-22T11:25:27.519+0200: Total time for which application threads were stopped: 6.0168551 seconds, Stopping threads took: 6.0164099 seconds

O problema aqui é o longo tempo paraStopping threads. Neste exemplo, são 6 segundos, o que já é um problema para nosso aplicativo, mas já vi tempos ainda maiores, em uma instância (sem registro completo, no entanto) totalizando quase um minuto.

A operação da VM (aqui:no vm operation) está variando. Eu também vi, por exemploRevokeBias, G1IncCollectionPauseouGCG_Operation. Também opage_trap_count parece ser irrelevante. Já vi exemplos em que 0 e outros em 2. Constante, porém, é que o tempo sempre se reflete nos valores despin esync.

Estou procurando uma explicação detalhada desses valores de tempospin esync, mas principalmente estou interessado em saber por que isso está acontecendo e no que posso fazer contra isso. Não conheço nada de "mal" em nossa configuração. Há muitos núcleos entediados e memória não utilizada na máquina, estamos executando Java puro (sem JNI) e não temos conhecimento de nenhuma sincronização excessiva em nosso código.

questionAnswers(1)

yourAnswerToTheQuestion