2010-03-18 3 views
0

Nous rencontrons des erreurs de mémoire fréquentes dans nos dev. Nous exécutons webshpere, eclipse, soap UI et maven. Notre serveur tombe en panne à cause de ces "erreurs de mémoire" lorsque nous redémarrons nos applications en websphere 2/3 fois, nous avons déjà augmenté le paramètre de mémoire virtuelle de 1Go. Donc, ce que j'ai fait a été copié le jre que nous utilisons dans les dossiers eclipse et maven de sorte que chacun d'entre eux utilise des jvms individuels. Mais la performance de websphere est la même. 2/3 redémarre et erreurs de mémoire insuffisante.Exécution de plusieurs jvms pour différentes applications dans la même machine

Y a-t-il un quelconque moyen de faire en sorte qu'éclipse et maven utilisent des jvms différents de ceux de websphere?

+3

De combien de mémoire physique dispose une machine, combien de mémoire les différentes machines virtuelles sont-elles allouées? –

+0

Cela fait-il une différence si vous exécutez quatre fois les mêmes binaires JVM ou quatre binaires différents? J'espère que non. – Thilo

+0

Eh bien, si par exemple la somme de -Xms sur toutes les machines virtuelles dépasse la mémoire physique sur la boîte, vous êtes garanti une exception OutOfMemory –

Répondre

-1

La copie du dossier ne sera pas suffisante.

Dans Eclipse, aller à Preferences, sous Java-> Installed JREs assurez-vous que le JRE utilisé est sur un chemin différent de celui utilisé par WebSphere.

+0

Je l'ai déjà fait pour Eclipse. – Rajesh

3

En réponse à la question:

Si vous commencez à temps java multiple, plusieurs copies de java seront en cours d'exécution avec chacun leur propre mémoire. Eclipse et websphere sont probablement démarrés séparément, utilisez donc une mémoire indépendante. Votre problème ne devrait pas être là.

En réponse à votre problème

Mémoire saturée

deux Eclipse et Websphere peuvent gober la mémoire comme il n'y a pas demain. Regardez al les drapeaux -X, le drapeau pour l'espace perm gen devrait être ajouté au drapeau pour l'espace tas pour obtenir la consommation de mémoire. Également permettre une certaine surcharge pour le système d'exploitation, environnement de fenêtrage, client de messagerie, navigateur (500 Mo - 1 Go ou plus, selon le système d'exploitation et ce que vous utilisez). Il se peut donc que l'ordinateur manque de mémoire.

Plus souvent, la quantité de mémoire allouée à jvm n'est pas suffisante. Java n'a pas été démarré avec suffisamment de mémoire pour l'application qui lui est affectée. C'est à vous de déduire si c'est l'espace de tas qui s'est épuisé, ou l'espace de PermGen. Les deux peuvent être ajustés, jetez un oeil à this website. Les indicateurs sont -Xmx et -XX: MaxPermSize. Regardez les scripts de démarrage de Websphere, car c'est celui qui se plaint.

Recommandation

Vérifiez quel type de mémoire est en dehors, et rechercher que le débordement de la pile; PermGen ou Heap Space devrait faire l'affaire.

+0

Le système dispose de 4 Go de mémoire. 1 Go est attribué à websphere lui-même. – Rajesh

+0

@Rajesh est-il possible de coller (une partie de) la trace de la pile dans la question? Je suis curieux de savoir quelle erreur vous obtenez. L'attribution d'un espace de tas maximum (-Xmx) n'a pas de relation avec l'espace permgen (-XX: MaxPermSize), il est donc important de se concentrer sur le réel. Cela dit, l'utilisation de la mémoire d'une application est Heap Space + Permgen, donc l'utilisation réelle de la mémoire peut être plus élevée. Le rechargement d'une application peut entraîner une pollution de l'espace mémoire car toutes les classes chargées ne peuvent pas être déchargées, ce qui indiquerait un problème d'espace permgen. – extraneon

0

Vous devez définir le paramètre JVM Xmx inférieur ou égal à 256 Mo dans les trois processus. Il ne franchira jamais la limite de 256 Mo (en considérant que le programme n'a pas de fuites de mémoire)

+0

Vous pouvez avoir différentes applications dans la même JVM, ou utiliser une structure lourde, par exemple des grails, une seule application de grails aura besoin de plus de Xmx256m – luisZavaleta

Questions connexes