A few months back we created a user dashboard and added it to our webpage with a number of charts and gauges, each wrapped by a webpart. we started with 2007v1 and have subsequently upgraded to 2007v3 and now are on 2008v1. Since rolling this feature out we have experienced general instability with IIS. It seems as though periodically the worker process just locks up hard, and we have to recycle it. Our theory is that there must be a memory leak somewhere in our dashboard controls that is causing this to happen.
Each of the gauges and dials on the page load based on information from the users session. There are about 8 of them that load each time the user logs in. Are there any general "best practices" we should be following in dealing with the infragistics gauge and chart controls? I am wondering if there is something we should be manually disposing after we are finished rendering the page to free up resources.
Any information you can give on best practices for implimenting these controls on a framework 3.5 website would be appreciated. Thusfar we have been unable to track down the source of the lockups and have been forced to resort to recycling the IIS worker process periodically, but that in itself causes various undesirable results.
Thanks
Someone from Developer Support asked me a similar question today, it sounds like you submitted a support incident and he is following up with you. But I will post here what I told the support engineer today:
I assume by IIS, you mean the ASP.NET worker process: aspnet_wp.exe or w3wp.exe depending on your operating system. This is where you would note high memory usage if there were a leak in your ASP.NET web application.
I am not aware of any memory leaks in the current version of WebChart or WebGauge. I recommend using SciTech .NET Memory Profiler (http://memprofiler.com/) to profile the application for leaks.
I should also point out that ASP.NET is designed to automatically correct any memory leaks by restarting itself when the memory usage crosses a certain threshold. See the note under “Enhanced Reliability” here: http://msdn.microsoft.com/en-us/asp.net/aa336565.aspx
I work with the person who originally posted this. We are still having problems, but we've determined that it is not a memory leak. Our issue is that the application pool is getting deadlocked.
We have several web gauges and charts on this page. We are using session-based deployment for both the gauge and chart.
Are there any known issues with having multiple gauges and charts on 1 web page? Is there anything special that we should do? We are using a load testing tool and when the problem occurs, it shows problems with the GaugeImage.aspx file.
It works for a while, so it is not a basic setup / deployment problem. In production, we sometimes go several days with no problems and then sometimes have bad days.
We are on 2009 volume 1.
i tried it just now using the Microsoft Web Application Stress tool.
here is the page i used:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register assembly="Infragistics35.WebUI.UltraWebGauge.v9.1, Version=9.1.20091.1015, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" namespace="Infragistics.WebUI.UltraWebGauge" tagprefix="igGauge" %><%@ Register assembly="Infragistics35.WebUI.UltraWebGauge.v9.1, Version=9.1.20091.1015, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" namespace="Infragistics.UltraGauge.Resources" tagprefix="igGaugeProp" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <igGauge:UltraGauge ID="UltraGauge1" runat="server" BackColor="Red" ForeColor="ControlLightLight" Height="250px"> <Gauges> <igGaugeProp:RadialGauge> <overdial><BrushElements><igGaugeProp:BrushElementGroup><BrushElements><igGaugeProp:MultiStopRadialGradientBrushElement CenterPointString="8, 100" FocusScalesString="5, 0"><ColorStops><igGaugeProp:ColorStop Color="50, 255, 255, 255"></igGaugeProp:ColorStop><igGaugeProp:ColorStop Color="150, 255, 255, 255" Stop="0.3310345"></igGaugeProp:ColorStop><igGaugeProp:ColorStop Color="Transparent" Stop="0.3359606"></igGaugeProp:ColorStop><igGaugeProp:ColorStop Color="Transparent" Stop="1"></igGaugeProp:ColorStop></ColorStops></igGaugeProp:MultiStopRadialGradientBrushElement></BrushElements></igGaugeProp:BrushElementGroup></BrushElements></overdial> </igGaugeProp:RadialGauge> </Gauges> </igGauge:UltraGauge> </div> </form></body></html>
here are my results:
Overview================================================================================Report name: 9/8/2009 3:17:20 PMRun on: 9/8/2009 3:17:20 PMRun length: 00:15:00Web Application Stress Tool Version:1.1.293.1Number of test clients: 1Number of hits: 4606Requests per Second: 5.12Socket Statistics--------------------------------------------------------------------------------Socket Connects: 4652Total Bytes Sent (in KB): 944.94Bytes Sent Rate (in KB/s): 1.05Total Bytes Recv (in KB): 15896.10Bytes Recv Rate (in KB/s): 17.66Socket Errors--------------------------------------------------------------------------------Connect: 0Send: 0Recv: 0Timeouts: 0RDS Results--------------------------------------------------------------------------------Successful Queries: 0Script Settings================================================================================Server: localhostNumber of threads: 50Test length: 00:15:00Warmup: 00:00:00Cooldown: 00:00:00Use Random Delay: NoFollow Redirects: YesMax Redirect Depth: 15Clients used in test================================================================================localhostClients not used in test================================================================================Result CodesCode Description Count ================================================================================200 OK 4606 Page SummaryPage Hits TTFB Avg TTLB Avg Auth Query ================================================================================GET /WebGaugePage/ 4606 9601.13 9601.17 No No
You might try "Stress level (threads)" = 50, Stress multiplier (sockets per thread) = 1 and see if that makes a difference. We were able to reproduce with less than 50, but I would be curious to see if you see issues with that. Thanks.
those were my settings exactly. the report indicates this under "Number of Threads."
have you reproduced this problem on more than one machine? are you also using Infragistics35.WebUI.UltraWebGauge.v9.1, Version=9.1.20091.1015 ?
The lockup occurred intermittently for over a year with multiple Infragistics versions. We are currently on 9.1.2091.2013.
It first happened on a dual-proc dual-core server that is probably about 4 years old now. It also happened on a dual-proc quad-core server that is less than a year old. Also, an old test server and a developer's workstation running IIS.
You might try bumping the number of threads up to 120 and see if it happens then.
i got the same results. have you tried running windows update and installing the latest .NET patches on these servers?
Overview================================================================================Report name: 9/11/2009 2:41:22 PMRun on: 9/11/2009 2:41:22 PMRun length: 00:15:00Web Application Stress Tool Version:1.1.293.1Number of test clients: 1Number of hits: 5023Requests per Second: 5.59Socket Statistics--------------------------------------------------------------------------------Socket Connects: 5125Total Bytes Sent (in KB): 1041.02Bytes Sent Rate (in KB/s): 1.16Total Bytes Recv (in KB): 17335.43Bytes Recv Rate (in KB/s): 19.28Socket Errors--------------------------------------------------------------------------------Connect: 0Send: 0Recv: 0Timeouts: 0RDS Results--------------------------------------------------------------------------------Successful Queries: 0Script Settings================================================================================Server: localhostNumber of threads: 120Test length: 00:15:00Warmup: 00:00:00Cooldown: 00:00:00Use Random Delay: NoFollow Redirects: YesMax Redirect Depth: 15Clients used in test================================================================================localhostClients not used in test================================================================================Result CodesCode Description Count ================================================================================200 OK 5023 Page SummaryPage Hits TTFB Avg TTLB Avg Auth Query ================================================================================GET /WebGaugePage/ 5023 20973.61 20973.98 No No