Grande utilisation de la mémoire avec le pool d'applications w3wp IIS 7

j'ai une application web qui fonctionne dans sa propre liste d'applications sur IIS 7.0. La demande est ASP.NET site Web de MVC 3.

j'ai remarqué que l'utilisation de la mémoire pour ces applications correspondant w3wp IIS worker service est assez élevée ( 800 Mo, avec quelques fluctuations ).

je suis en train d'essayer de diagnostiquer le problème et ont essayé le code suivant:

j'ai désactivé la mise en cache de la page de sortie pour le site Web au niveau IIS et ensuite recyclé le pool d'applications. Cela fait redémarrer le processus w3wp. L'utilisation de la mémoire pour ce processus se propage ensuite lentement jusqu'à environ 800 MB, il faut environ 30 secondes pour le faire. Aucune demande de page n'est traitée pour le moment. Lorsque je redémarre le site web à partir de IIS la taille de la mémoire du processus ne change pas.

j'ai essayé d'exécuter une copie de débogage de L'application à partir de VS 2010, il n'y a aucun problème avec l'utilisation de la mémoire.

quelques idées que j'ai/questions sont:

ce problème est-il lié au code des sites Web? - Étant donné que les fusées mémoire avant toute demande de page ont été envoyées/traitées, je suppose que ce n'est pas un problème de code?

l'application intégrée dans MVC n'a pas de gestion de la mise en cache écrite.

le site web utilise l'affichage en temps réel des données, il utilise les requêtes ajax périodiquement, et est généralement laissé "ouvert" pendant de longues périodes.

Pourquoi l'utilisation de la mémoire de fusée après que l'application est recyclée et aucune demande de l'utilisateur n'est envoyée? Est-ce parce qu'il charge de vieilles informations de cache dans sa mémoire à partir du disque?

l'application ne se bloque pas, je suis juste préoccupé par l'utilisation de la mémoire, il n'est pas si grand d'un site web...

toute idée / aide pour aller au fond de ce problème serait appréciée.

23
demandé sur user989056 2012-03-12 15:40:12

4 réponses

je regarde juste mon serveur et mes pools utilisent la mémoire de taille virtuelle 900-1000MB, et le jeu de travail 380MB. Mes sites fonctionnent parfaitement avec problème depuis quelques années maintenant, et j'ai vérifier eux de tous les côtés. Mon pool ne recycle jamais et le serveur tourne jusqu'à la prochaine mise à jour continue avec 40% de mémoire physique libre stable.

si votre mémoire n'est pas continue de croître, alors cette mémoire est le code plus les données que vous définissez comme statique, const, la chaîne, et le cache possible, à l'intérieur de votre application.

Vous pouvez utiliser explorateur de processus pour voir la mémoire de travail et la mémoire de taille virtuelle.

vous pouvez également penser à lancer un profil contre votre code pour voir si vous avez une "fuite de mémoire" ou autre problème. En trouver un sur google:https://www.google.com/search?hl=en&q=asp.net + mémoire+profileur.

14
répondu Aristos 2013-04-16 08:08:54

il ne s'applique probablement pas ici, mais j'ai pensé que je voudrais le jeter dans la bonne mesure. Récemment, j'ai eu un problème où ma mémoire montait tout de suite et maxait quand il a vraiment pu nettoyer 80% de lui. Problème: il a pensé à environ 2 gig de plus que ce qu'il a fait réellement de sorte que le GC était assez paresseux. (C'était dû à un bug VM ware-windows rapportait 8 Gig mais physiquement il n'y avait que 6,4). Voir le blog.http://www.worthalook.net/2014/01/give-back-memory/

3
répondu GarethReid 2014-01-24 06:16:10

quelque chose qui pourrait aider: si vous "réécrivez" (ouvrez/enregistrez) le web.config, puis votre application se réinitialisera, vous devriez surveiller l'utilisation de la mémoire à partir de ce point. S'il continue de croître pendant l'utilisation, cela pourrait signifier une fuite de mémoire ou une mise en cache folle. Vous pourriez être en mesure d'identifier quelles actions sur votre site conduire à l'augmentation de la mémoire. Pendant une longue période, l'utilisation de la mémoire d'une application doit être stable.

0
répondu Allie 2014-05-23 13:18:25