Re: Problème de mémoire qui, en apparence, d éfie la logique
Jean-Baptiste BRIAUD -- Novlog <[email protected]>
| Newsgroups | gmane.comp.java.french.general |
|---|---|
| Message-ID | <[email protected]> |
Même via un script ant ? Je n'utilise plus moi-même java.util.zip.ZipEntry ni java.util.zip.ZipFile, je fait appel à un script ant qui doit sûrement utiliser ces classes. Donc, est-ce toujours d'actualité via un script ant ? Cependant, les scripts ant sont tous lancés dans des process bien a part, donc quand le process ant se termine, toute la mémoire est bien libérée (et pour cause) mais cela ne devrait pas occuper de la mémoire dans le process père. Vous confirmez ce dernier point ? On 5 nov. 2010, at 11:49, [email protected] wrote: > Tu ne fais pas du zip / dézip ? a une époque sous windows il y avait des fuites de mémoire native à cause de cela > > Seb > > Le 5 nov. 2010 11:32, Jean-Baptiste BRIAUD -- Novlog <[email protected]> a écrit : > > 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 ! > > > > > > > > > > > >