2012-10-01 14 views
8

Ospito 7 siti Web su un singolo server di produzione (virtuale) a 2,53 Ghz (2 CPU) e 8 GB di RAM su WIN SERVER 2008 R2 Enterprise a 64 bit.Trova perdita di memoria nell'applicazione Web ASP.NET

Il server Web è IIS 7 e tutti i siti Web sono con il pool di applicazioni .NET Framework 4.0.

L'utilizzo di memoria corrente è di circa 4,16 GB su 8 GB e w3wp.exe è il processo che consuma la maggior parte dell'utilizzo della memoria (circa 1,6 GB in questo momento) seguito da sqlservr.exe con l'utilizzo (1,5 GB).

Quello che mi piacerebbe fare è sapere quale sito web su 7 sta consumando più memoria in modo da poter dare un'occhiata.

Ho provato Process Explorer e Monitoraggio risorse ma potrebbe solo mostrare quanto rem preso da w3wp.exe ma non dall'utilizzo del singolo sito web.

C'è un modo in cui potrei puntare il dito sulla memoria?

risposta

2

È possibile configurare ciascun sito Web per utilizzare pool di app diversi, in questo modo si avrà una procedura w3wp.exe per ogni sito Web dei 7 siti Web ospitati. Successivamente è possibile utilizzare lo strumento nel seguente numero this link per scoprire quali siti Web causano la perdita tracciando il PID dello w3wp.exe con il maggiore consumo di memoria.

20

È possibile eseguire un dump della memoria utilizzando lo strumento Microsoft Debug Diag.

processo di base è:

  • lancio DebugDiag
  • Annulla guidata
  • Fare clic sulla scheda "Processi"
  • Selezionare w3wp
  • tasto destro del mouse e selezionare "Crea dump completo"
  • Snigger tranquillamente a te stesso perché hai detto "scarico"
  • Una volta discarica è completo (nuovamente snigger), fare clic sulla scheda "Advanced Analysis"
  • Utilizzare gli script di 2 Pressure Pressure Analyzer per vedere se è possibile vedere quali oggetti stanno utilizzando molta memoria.

Suggerirei di farlo in combinazione con la risposta di Uri May, altrimenti si rischia di perdere molto tempo.

0

Nel task manager di Windows è possibile vedere quale pool di app sta eseguendo ogni w3wp.exe semplicemente mostrando la colonna "utente". Questo perché ogni pool di app viene eseguito in genere con un proprio utente. Hanno reso un po 'più difficile vederlo nel server Windows 2012: è necessario prima fare clic sulla scheda "dettagli".