A aplicação Java está lenta no servidor virtual (KVM)

1

Eu tenho um aplicativo da Web Java, que é executado a partir do JAR, inicia o Tomcat integrado e está usando o Spring Boot.

O problema é que ele é executado muito lentamente quando executado no convidado virtual KVM. O mesmo aplicativo no mesmo JDK ( Java(TM) SE Runtime Environment (build 1.8.0_72-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode ) está iniciando 8 segundos no bare metal, mas 40 segundos quando no sistema virtualizado. Ambos os sistemas operacionais são Ubuntu 15.10 (kernel 4.2.0-27-generic). E isso não é apenas o início de problemas, o aplicativo responde com muita preguiça para cada solicitação HTTP.

Eu tentei alterar as configurações do Java sobre o SecureRandom, mas nada mudou.

-Djava.security.egd=file:///dev/urandom

SecureRandom e entropia aleatória em convidados virtuais: link

link

Mas isso não me ajudou. Você tem algumas outras recomendações, o que fazer? Obrigado.

Meu host virtual é um novo servidor com muita RAM, SSDs ... então, tenho certeza de que não há problema de hardware. Eu também estou executando outros convidados virtuais KVM e não há problema em tudo. Apenas com aplicativo Java lento.

    
por Xdg 05.02.2016 / 00:02

1 resposta

2

Se o seu aplicativo estiver usando SecureRandom, talvez seja necessário instalar um gerador de entropia aleatória, como haveged , para que haja entropia suficiente para a semente inicial.

As VMs têm um problema ao reunir a entropia.

Virtual servers are running in an emulated environment, with very little access to “real” hardware. The random data that conventional computers get from their hardware doesn’t happen with emulated virtual hardware, so the prime source of entropy just isn’t present.

Fonte

Isso, pelo menos, seria esperado para melhorar o desempenho na primeira vez que for usado.

    
por 06.04.2018 / 10:14