Auteur de questions
w3wp.exe qui gonfle et qui gonfle... :(

Discussion générale
-
Bonjour à tous,
Voila mon soucis (je ne sais pas si c'est bien ici qu'il faut que je mette mon post):
J'avais un IIS6 accueillant des appli ASP et ASP.Net,
j'ai migré sous un IIS7 sous Win7 pro, jusque la tout est OK, tout refonctionne bien sauf que au fur et à mesure le process W3WP.exe prend de plus en plus de mémoire.
J'ai paramétré le recyclage du pool d'application toute les 5 heures, mais parfois quand j'ai beaucoup d'utilisateur le process prend plus de 200Mb de mémoire et le serveur ne répond plus...
Savez-vous ou je pourais paramétrer quelque chose pour libérer le w3wp.exe quand l'utilisateur quitte le site ou autre?
Je ne sais d'ou vient réélement le problème sachant que je ne le rencontré pas avant sous le IIS6 :(
Dans l'attente de vos lumières,
Vous remerciant par avance.
LYDY.
- Type modifié Aurel Bera jeudi 27 septembre 2012 10:15 Pas de reponse
Toutes les réponses
-
Bonjour,
Ce comportement dans un premier temps peut-être normal. Le Garabage Collector du .NET Framework ne libère la mémoire que si il en reste plus (si Windows hurle). Avez vous migré qqch au niveau matériel quand vous êtes passé de IIS 6.0 à IIS 7.0 (taille mémoire ?) ?
Maintenant si l'utilisation mémoire devient importe (le plus souvent supérieur à la mémoire disponible) cela indique que votre application :
- Alloue de gros objets dont les références sont maintenues (il faut casser les référence en mettant null)
- Vous allouez des objets non-managés et qui ne sont pas libérés, dans ce cas vous avez des fuites mémoires et il faut bien penser à faire un ".Dispose()" sur tous les objets qui implémente l'interface IDisposable.
Savez-vous ou je pourrais paramétrer quelque chose pour libérer le w3wp.exe quand l'utilisateur quitte le site ou autre?
Il ne faut en aucun cas déclencher manuellement le Garbage Collector à la fin de chaque requête car cela va bloquer votre application pendant un petit peu de temps à chaque requête. Je suis intervenu chez des clients pour ce genre de problème, en retirant le déclenchement du garbage collector à la fin de chaque requête l'application tournait 100x plus vite !Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 -
Merci Mr Gilles TOURREAU,
mon serveur à figé une nouvelle fois alors que le w3wp.exe n'était qu'avec 60Mb de mémoire,
le seul moyen de le libérer est de recycler le pool... :(
J'ai l'impression que c'est une page ASP qui provoque ça mais je ne sais laquelle ni pourquoi...
Donc je pense pas que ce soit un problème de mémoire du w3wp, mais un problème d'application web, pourtant tout fonctionnait avant :o/
Savez-vous comment je pourais faire pour trouver l'origine du problème?
Par avance merci,
LYDY.
-
Bonjour,
Comme çà, je ne vois pas d'où pourrait provenir votre problème...
Est-ce que vos 2 applications (ASP et ASP .NET) se trouve dans 2 pools différents ?
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 -
Bonjour,
Non les deux applications sont sur le même pool, les pages sont sur le même répertoire,
le problème ne se présente que rarement mais c'est ennuyeu...
En gros la page d'identification est en ASP et quand le site est bloqué ça bloque donc l'identification, je croyais au début que cela venait du w3wp.exe mais apparement non car la dernière fois il ne faisait que 60Mb.
Je pense donc que c'est une instance en asp qui soit est trop longue, soit bloque, mais je ne sais laquelle ni ou trouver une trace de tout ça?
Le seul moyen pour moi étant de recycler le pool pour libérer les actions :o/
Savez-vous ou je pourais voir un log quelconque qui expliquerait ou me dirait les dernières pages en cours?
CDT,
LYDY.
-
Bonjour,
Est-ce une application ASP ou ASP .Net ?
Quelle version de .Net ?
Est-ce compilé en 32 ou 64 bits ?
Si votre application est en ASP et non .Net, faite un pool à par en indiquant la version sur "Aucun code managé".
Si votre application tourne en 32 bits, il faut aller dans les paramètres avancées du pool et "Activer les applications 32 bits" à True et valider.
Encore une fois dans les options avancées, vous pouvez configurer la limite mémoire de l'application section "Recyclage".
Pour les log, allez sur l'application web (dans IIS) Section IIS puis Journalisation. vous trouverez le répertoire d'enregistrement des log. Par défaut dans "%SystemDrive%\inetpub\logs\LogFiles"
Cordialement
Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !
- Modifié Lyamine samedi 15 septembre 2012 21:24
-
Bonjour,
Est-ce une application ASP ou ASP .Net ?
Il y a les 2, j'ai des pages ASP et d'autres en ASP.Net
Quelle version de .Net ?
Avec Framework 3.5
Est-ce compilé en 32 ou 64 bits ?
32 bits sur serveur 32 bits
Si votre application tourne en 32 bits, il faut aller dans les paramètres avancées du pool et "Activer les applications 32 bits" à True et valider.
Etant sur un serveur 32 bits j'ai donc pas besoin de l'option
Encore une fois dans les options avancées, vous pouvez configurer la limite mémoire de l'application section "Recyclage".
Déjà fait mais je ne pense pas que cela vienne de la charge du W3wp.exe en fait...
Pour les log, allez sur l'application web (dans IIS) Section IIS puis Journalisation. vous trouverez le répertoire d'enregistrement des log. Par défaut dans "%SystemDrive%\inetpub\logs\LogFiles"
Ok je vais voir ça.
-
-
Bonjour,
Peut-être http://stackoverflow.com/questions/587420/iis7-only-serves-up-one-page-at-a-time-its-a-making-me-crazy ?
La description du problème semblent indiquer qu'il y a peut-être plus de "deadlock" qu'un problème de mémoire ? Lorsque le blocage survient il est valable pour tous les utilisateurs ou pour un utlisateur donné seulement ? Voir peut-être le journal IIS pour voir si cela n'arriverait pas toujours sur la même page ?
Il n'y a rien non plus dans le journal des évènements de Windows ?
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
-
Bonjour
Voyez ces liens, peut-être c’est votre cas (ca dépend de votre SO ou 32/64 ).
http://support.microsoft.com/kb/912891
ou
http://support.microsoft.com/kb/916984
Aussi, vous pouvez consulter
pour voir plus exactement si c’est un ‘memory leak ‘
Et aussi, comme Lydy a deja dit:
Encore une fois dans les options avancées, vous pouvez configurer la limite mémoire de l'application section "Recyclage".
Cordialement ,
-
Bonjour,
Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.
Cordialement,
Aurel
-
Bonjour,
Nous changeons le type de votre question à « Discussion générale » parce que vous n’êtes pas revenu avec les informations sollicitées. Si vous avez plus de temps pour réexaminer la question et fournir plus d'informations, n'hésitez pas à modifier le type du thread à « Question ». Si le problème est résolu, s’il vous plaît partagez la solution avec nous afin que la réponse puisse être trouvée et utilisée par d'autres membres de la communauté ayant des questions similaires.
Merci !
Cordialement,
Aurel