2 votes

L'application Java est lente sur un serveur virtuel (KVM)

J'ai une application web Java, qui s'exécute à partir d'un JAR, démarre avec Tomcat et utilise Spring Boot.

Le problème est qu'il fonctionne très lentement lorsqu'il est exécuté dans un invité virtuel KVM. La même application avec le même 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 ) démarre en 8 secondes sur bare metal, mais en 40 secondes dans un système virtualisé. Les deux systèmes d'exploitation sont Ubuntu 15.10 (noyau 4.2.0-27-generic). Et ce n'est pas seulement un problème de démarrage, l'application répond très paresseusement à chaque requête HTTP.

J'ai essayé de modifier les paramètres Java concernant SecureRandom, mais rien n'a changé.

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

SecureRandom et l'entropie aléatoire dans les hôtes virtuels : https://security.stackexchange.com/questions/14386/what-do-i-need-to-configure-to-make-sure-my-software-uses-dev-urandom

https://stackoverflow.com/questions/137212/how-to-solve-performance-problem-with-java-securerandom

Mais cela ne m'a pas aidé. Avez-vous d'autres recommandations à faire ? Je vous remercie.

Mon hôte virtuel est un nouveau serveur avec beaucoup de RAM, des disques SSD donc je suis sûr qu'il n'y a pas de problème matériel. J'utilise également d'autres invités virtuels KVM et je n'ai aucun problème. Seulement avec une application Java lente.

3voto

shedland Points 11

Si votre application utilise SecureRandom, vous devrez peut-être installer un générateur d'entropie aléatoire, tel que haveged afin qu'il y ait suffisamment d'entropie pour la graine initiale.

Les machines virtuelles ont un problème de collecte d'entropie.

Les serveurs virtuels fonctionnent dans un environnement émulé, avec très peu d'accès au "vrai" matériel. Les données aléatoires que les ordinateurs conventionnels obtiennent de leur matériel ne se produisent pas avec le matériel virtuel émulé, de sorte que la principale source d'entropie n'est tout simplement pas présente.

Source

Cela devrait au moins permettre d'améliorer les performances lors de la première utilisation.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X