Problème de mémoire qui, en apparence, défi e la logique

Jean-Baptiste BRIAUD -- Novlog <[email protected]>
Newsgroups gmane.comp.java.french.general
Message-ID <[email protected]>
Bonjour à tous,

J'ai un problème. J'ai une JVM avec Tomcat (6.0.29 au cas où ce soit important) et "tout un bazar" serveur qui tourne.

Je lance le client, le process serveur vu du système fait quelques bonne dizaines de Mo.
Je lance via le client une action sur le serveur. Après l'action, le process serveur vu du système fait 200/300 Mo, ce qui est conforme aux attentes.
Je refait la manip 2 fois (3 en tout, donc) et là, le process serveur s'emballe et vu du système il occupe 3/5Go de mémoire et cela peut encore monter alors que l'action est complètement finie coté serveur.

Je me précipite sur un profiler mais à ma grande surprise rien !
Le process, vu du profiler, après la 3eme action, alors même que le système annonce plus de 3Go de "mémoire réelle" (plus de 10Go de mémoire virtuelle !!!) le profiler ne voit que 80Go en tout dont 20 de libre.

Je ne comprends rien !

Coté "pure Java", tout semble OK. La machine devient cependant quasi inutilisable à cause des IO généré par un tel process à cause du swap (10Go de mémoire virtuelle).
Ca n'est donc pas une espèce d'erreur de mesure, le process est bel et bien énorme, mais semble t-il pas coté Java, pourtant, c'est bien le process d'une JVM, dingue non ?

Je tourne sous Mac OS, alors évidement, la question suivante est : est-ce reproductible sous Linux par exemple ? Et bien oui ! Même comportement.

Bref, le problème est bien réel et parfaitement reproductible.

Ce process présente quelques caractéristiques ayant une chance d'être responsable du problème, mais pourquoi le profiler ne voit rien ?
1. Le process lance d'autre process via le lancement de ant
2. Le process produit pas mal de fichiers via Apache Velocity (qui semble présenter des memory leak vue du profiler, mais on parle en dizaine de Ko de memory leak ...)

Une idée ? Une manip à tenter ?

Qu'est-ce qui pourrait occuper la mémoire sans se faire voir par un profiler de JVM ?

Merci !
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.