Hello again.
I've had this solution implemented now for 3-4 months. It has helped us out tremendously.
Originally I complained about a memory leak, and then declared that I figured out the problem, that debug was set to true in the web.config. Well, that’s only partially correct, by setting it to false, it seems that IIS was able to restart the offending process every once in a while, to keep the leak in check. However, over the last few months, we have had an increase in traffic and hence an increase in the number pages rendered by the handler.
IIS is no longer able to keep the leak in check, and I find ourselves restarting IIS almost daily.
Over this weekend, we set up our load balancer to direct all non-handler pages to one web server, and all handler pages to the other. After a 24 hr period, the non-handler webserver remained almost constant with only a slight rise in RAM. The other webserver, was fast approaching 700 mb of RAM. Overall, there are far more non-handler pages than handler pages being rendered.
We get around a million page views a day. I mention that, because this leak probably wouldn't be noticed if we had far less traffic.
Now it still feels like I’m missing something. Is there an object that needs to be explicitly destroyed? Maybe the httpContext Items (HttpContext.Current.Items.Clear)
Does releaseHandler need to be called? (I have one line of code here ‘handler = nothing')
I have isResuable set to true.
Any insight is much appreciatedJon
|