Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Worker process recycles because it reached its virtual memory limit

We host a rather large (self written) ASP.NET website for our customers. It consists of a web service, a web site and a image serving web site, all three in their own virtual directory. The three virtual directories are together in one application pool. The pool has both memory limits (maximum virtual memory and maximum used memory) set to 500 megabytes.

However, the application pool suffers many recycles, even with only one user at a time. The eventlog message says:

A worker process with process id of 'xxxx' serving application pool 'xxxx' has requested a recycle because it reached its virtual memory limit.

However, observing the worker process with Process Explorer shows nothing that supports this message. Which counters should I watch to observe the memory that is in fact limited by both settings?

Update 1

Observing the process in Task Manager shows a 'mem usage' and 'vm size' of around 100 MB, still the process is recycled with the above message. 5 GB physical memory available on the server...

Update 2

Although the web site is rather large, the problem concentrates in a small portion of the application. It executes a query (using Oracle) and binds the results to a gridview and repeater webcontrol. The results consists of a short description and an icon (loaded through the image serving web site). If I execute 10 search actions after each other, each giving 9 results, the work process shows mem usage and vm size of around 100 MB and recycles...

Update 3 Switching of the usage of the image serving web site does not result in better results. So I think it is fair to say that the problem is something else.

like image 525
Michiel Overeem Avatar asked Dec 19 '08 14:12

Michiel Overeem


People also ask

Was event id 5077?

Cause : This event is logged when a worker process with process id of serving application pool has requested a recycle because it reached its virtual memory limit. A worker process requests a recycle when it reaches its configured limits for time, number of requests, or memory usage.


1 Answers

Just as an observation... If your "image serving" site happens to do any inline image processing/generation, you can quickly swallow up memory by not calling Dispose() on any disposable resources - particularly those that are wrapping native functionality...

It's not a direct answer to your question, but it might help to look into the underlying problem that is causing the rampant memory use.

like image 168
Andrew Rollings Avatar answered Sep 21 '22 14:09

Andrew Rollings