J'essaye d'exécuter tomcat sur un système à faible mémoire (150-256Mb). Même si je démarre la JVM avec -Xmx64m (qui devrait être la valeur par défaut de toute façon), le processus prend immédiatement 200 Mo +.
Je me demande pourquoi la JVM a besoin de tant de mémoire elle-même, ou s'il existe un moyen de régler cela? Les autres machines virtuelles Java sont-elles meilleures que celles du soleil pour une faible consommation de mémoire - et fonctionnent-elles avec tomcat?
Avec l'option -Xmx, vous limitez la taille du tas que la JVM réserve ... Il y a des ressources supplémentaires dont la JVM a besoin ...
"Merci pour la mémoire" * est un bon article qui explique comment une machine virtuelle Java utilise la mémoire ...
En dehors de cela, vous pouvez essayer la JVM d'IBM, cela devrait fonctionner avec Tomcat, je ne sais pas si certaines des implémentations JVM gratuites fonctionnent.
Néanmoins, je ne pense pas qu'une machine avec une mémoire aussi basse vous fera du bien. Java a juste besoin de mémoire.
* Comme les nouveaux utilisateurs ne peuvent pas soumettre d'hyperliens, vous devez rechercher cet article vous-même ... c'est le premier hit sur google pour "merci pour la mémoire ibm".
la source
Essayez également la Jock JRockit, qui a moins d'espace mémoire. Vous pouvez toujours télécharger gratuitement les versions JRockit sous licence BEA. c'est-à-dire des versions avant qu'Oracle ne prenne le contrôle de BEA.
Voir http://forums.oracle.com/forums/thread.jspa?threadID=816133&tstart=0 pour les liens de téléchargement.
la source
Une technique utile que j'ai trouvée consiste à utiliser la surveillance JMX pour voir exactement combien de mémoire est utilisée par l'espace tas vs permgen.
Configurez JMX dans Tomcat comme décrit ici http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
Ensuite, utilisez JConsole (livré avec JDK 5 ou JDK 6) - la balise de mémoire suivra la consommation de mémoire au fil du temps.
Aussi - méfiez-vous des redémarrages en douceur des applications Web. Si vous rechargez une webapp, l'espace permgen ne sera pas récupéré et s'accumulera avec le temps. Vous devez faire un arrêt / démarrage complet de Tomcat afin de récupérer l'espace permgen.
la source