Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1764
  • Last Modified:

ASP.NET application pooling issue

We have a problem with one of our websites server application pools restarting after every few minutes. The actual error message we are receiving in system logs is: A worker process with process ID of **serving application pool** has requested a recycle because it reached its virtual memory limit....

After further investigation using IIS debugger, we traced the problem to a dll called mscorwks.dll located in the Microsoft framework folder (v2.0.50727) , and found that there is a memory leak.

We are running .NET framework 2 on a multiprocessor server running Windows Server 2003 (Web Edition). The server uses 4 application pools though all other application pools are unaffected as they are running ASP code.

Can anyone help?

---->
mscorwks.dll is responsible for 390.55 MBytes worth of outstanding allocations. The following are the top 2 memory consuming functions:
mscorwks!EEVirtualAlloc+104: 386.56 MBytes worth of outstanding allocations.
mscorwks!EEHeapAlloc+12d: 3.97 MBytes worth of outstanding allocations.
<------
0
MancAndy
Asked:
MancAndy
  • 2
1 Solution
 
craskinCommented:
i'd start by reinstalling .netfx
0
 
Dave_DietzCommented:
mscorwks.dll is the .Net runtime - workstation version.

I seriously doubt there is a memory leak in this DLL - if there was then everyone who uses the 2.0 Framework sould have a memory leak.  What you are most likely seeing here is the Framework setting up the Managed Heap and/or some .Net code allocating memory.

In any case, what is the memory recycle limit set to for the application pool that is having a problem?  

I'll say right off the bat that if it is less than 1024MB it's set too low and is likely the cause of the entire problem.  Unless you have a specific reason to have a memory recylce limit I would actually recommend disabling that recycle event entirely - it is a band-aid designed to be used in the case of a known memory leak in code that you can't (or won't) fix.

Also, reinstalling the .Net Framework is not likely to have any impact on this issue.

Dave Dietz
0
 
MancAndyAuthor Commented:
Your reccomendation worked.... thanks!

We had the recycling limit set at half a gig. Setting it to 1 gig has removed the recurring errors from the event log completely.

Just a quick question though... should we be configuring the server to use mscorsvr.dll instead (on a machine with the spec I described above)? It's only a small site without much traffic so we didn't think it made any difference. We've been using ASP until recently....

Andy
0
 
Dave_DietzCommented:
The big difference in the two versions of the Framework core mainly have to do with how many heaps are used and some changes in garbage collection.

It is actually suggested to use the workstation version if there are issues with garbage collection using too much CPU on multi-proc boxes.

Overall, unless you see a problem I wouldn't worry about it - if it ain't broke and all.....  :-)

Dave Dietz
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now