Bonjour,
J'ai développé 2 applications java lancées sour tomcat.
En utilisant jprofiler j'ai constaté qu'il n'y avait pas de fuite de mémoire.
En utilisant le mode verbosegc j'ai constaté que le garbage collector faisait bien son travail et que l'application n'utilisait pas plus de 200 Mo de mémoire.
Et pourtant au bout de quelques heures, j'ai une saturation mémoire au niveau du serveur. Plus de mémoire disponible, le swap utilisé au maximum et ensuite plantage du serveur.
Voici les commandes / options utilisées :
Avant l'arrêt, la mémoire est complètement utilisée et le swap utilisé est au max.
bash-2.05# sh shutdown.sh
Using CATALINA_BASE: /usr/share/tomcat
Using CATALINA_HOME: /usr/share/tomcat
Using CATALINA_TMPDIR: /usr/share/tomcat/temp
Using JAVA_HOME: /usr/local/java
Une fois tomcat arrêté le swap se vide et la mémoire se libère :
bash-2.05# free
total used free shared buffers cached
Mem: 1001020 137400 863620 0 27600 43556
-/+ buffers/cache: 66244 934776
Swap: 265064 13768 251296
Options utilisées :
bash-2.05# export CATALINA_OPTS="-server -Xms256m -Xmx384m -Djava.awt.headless=true"
bash-2.05# sh startup.sh
Using CATALINA_BASE: /usr/share/tomcat
Using CATALINA_HOME: /usr/share/tomcat
Using CATALINA_TMPDIR: /usr/share/tomcat/temp
Using JAVA_HOME: /usr/local/java
Suivi de la mémoire :

Les creux correspondent à l'arrêt puis au redémarrage de Tomcat.
Est-ce quelqu'un a déjà rencontré ce problème ou aurait une solution à ce problème de saturation mémoire ?
Merci
plddcn