Solved

W3WP.EXE Memory consumption spiralling upwards

Posted on 2007-03-23
3
507 Views
Last Modified: 2010-05-18
Our client app is basically a 'plug-in' OCX that is called by host systems and is used in call-centre environments to handle scripted dialogs with telephone callers.

At some point, the host instucts the OCX to launch a modal browser window. This then enters a succession of remote scripting calls to the server (running ASP plus VB DLLs) to conduct the question and answer session then in conclusion sets a Status inside a SQL Server database.

Meanwhile, the OCX merrily polls (yeek) the server at at 0.5 second intervals by calling an ASP page, waiting for a status change at which point it gathers all it needs from the database to return to the calling host.

For just about every ASP page loaded on the server, we late bind via a CreateObject("Msxml2.DOMDocument") and load an XML configuration document that drives the behaviour of the application.

Not your best architecture, but anyway...

Whilst the polling is underway, W3WP.EXE's memory utilisation reapidly increases in about 15KB chunks, roughly the size of the XML config document plus some overhead. This is clearly the case; depositing a load of dummy XML in the file is reflected by bigger chunks.

As you can imagine, this goes on until memory consumption gets silly then CPU starts to rise and eventually everything collapses. Until I am sure there is no alternative, I want to avoid recycling worker processes for the App Pool etc. I'd really like to avoid interruption of the often long conversations operators have with callers.

Once the OCX stops polling, memory is returned but very slowly and never all of it. Through code examination and other tests, we are fairly sure that there are no leaks in the application, well, certainly not on the scale witnessed.

I am aware of http://support.microsoft.com/kb/304227 but as our website doesn't run on dedicated servers I need to be certain this won't impact others.

Is MSXML caching like mad, is there any way to control this or can anyone give me deeper insight into what's going on?,

This is all under II6.0 on Server 2003 SP1.
0
Comment
Question by:touch-base
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 34

Accepted Solution

by:
Dave_Dietz earned 125 total points
ID: 18784281
It's not caching - you simply have a big pile of DOMDocument objects sitting around in memory until Garbage Collection can happen.  

Since you are seeing polling activity every .5 seconds from *each* client you likely aren't allowing the Garbage Collection to take place - something in the collection scheduling algorythm sees the high traffic and waits for a better time to collect.

Making the registry change may lessen the impact of the issue but it will affect any other applciations that use the same version of MSXML as the one you configure in the registry, but it will not likely be affecting them in a negative way.

Dave Dietz
0
 
LVL 1

Author Comment

by:touch-base
ID: 18837863
I've implemented the registry change and we are currently monitoring activity. First signs are promising although it's hard to tell as, with the serious impact this was having, we have also simultaneously rationalised the polling activity.
0
 
LVL 1

Author Comment

by:touch-base
ID: 19030720
With large numbers of users and the high level of polling activity PLUS the discovery that an OCX was not being destroyed after use by the host application meant that each transaction left a process polling in the background. I saw polling levels at 155 per second - 'amazing that the server coped at all!
0

Featured Post

Forrester Webinar: xMatters Delivers 261% ROI

Guest speaker Dean Davison, Forrester Principal Consultant, explains how a Fortune 500 communication company using xMatters found these results: Achieved a 261% ROI, Experienced $753,280 in net present value benefits over 3 years and Reduced MTTR by 91% for tier 1 incidents.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Prologue It is often required to host multiple websites on a single instance of IIS, mostly in development environments instead of on production servers. I am sure it is not much a preferred solution on production servers but this is at least a pos…
If you don't have the right permissions set for your WordPress location in IIS, you won't be able to perform automatic updates. Here's how to fix the problem.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question