none
w3wp.exe qui gonfle et qui gonfle... :( RRS feed

  • 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
    jeudi 13 septembre 2012 08:32

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

    jeudi 13 septembre 2012 12:46
    Modérateur
  • 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.

    jeudi 13 septembre 2012 13:16
  • 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

    jeudi 13 septembre 2012 22:17
    Modérateur
  • 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.

    vendredi 14 septembre 2012 07:36
  • 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
    samedi 15 septembre 2012 21:22
  • 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.

    lundi 17 septembre 2012 09:04
  • Bonjour,

    OK, on attend vos retour.

    Je pense aussi que le problème provient d'une page. Lecture d'un fichier qui n'est pas vidé, etc...


    Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !

    lundi 17 septembre 2012 15:19
  • 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".

    mardi 18 septembre 2012 17:57
    Modérateur
  •  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

    http://www.iis.net/learn/troubleshoot/performance-issues/troubleshooting-native-memory-leak-in-an-iis-7x-application-pool

    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 ,


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 20 septembre 2012 08:36
  • 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


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mercredi 26 septembre 2012 06:24
  • 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


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 27 septembre 2012 10:15