473,385 Members | 2,069 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

out of memory

My asp.net app that ran fine on my dev boxes is having problems at my web
hoster who is running IIS 6. I'm getting Out of Memory exceptoions. When
my web hoster bounces my app, the problem goes away for a couple of days.
Sounds like I have a Memory Leak, but my application is managed and garbage
collection is automatic, right?

How can I track available memory and what kinds of tools are available to
shoot this kind of problem?
Thanks,
T
Nov 19 '05 #1
6 1748
Hi Tina,

Yes, it is possible to Manage to write your own custom Managed Memory leak.
Garbage Collection IS automatic, but unless you put your cans out on the
street, they will never get picked up. IOW, the purpose of Memory Management
and Garbage Collection is not to allow you more time to play Solitaire, but
to help you prevent your own forest fires, as Smokey the Bandit would say.
;-)

The first thing you need to do is to determine that you will, in the future,
take more responsibility for your code. As Fox Mulder would say, "Trust No
one" (not even content from Microsoft!). Or, as my old boss when I was a
carpenter in Skokie Indiana would say "Measure twice, cut once."

Second, let's have a look at some diagnostic tools and techniques. One thing
I might point out regarding why it may have worked so beautifully on your
machine is, when you start a project in Visual Studio for debugging, it
restarts the application, thereby wiping out all accumulated memory for that
application. If you didn't use Visual Studio, well, you probably didn't put
the app under any stress. For example, the Application will stop itself 20
minutes after the last client Request, and won't start again until the next.
A good practice is to put the app first on a staging server and then put it
under some stress over a long period of time. Microsoft Application Center
2000 is a free tool that you can download from Microsoft.com for testing ASP
and ASPO.net apps. It can put a simulated load on your app, enabling you to
see how it functions under stress.

Windows Taks Manager can be used to monitor memory and processor performance
easily while running your app. You can also set up Performance Counters in
your app for monitoring and/or recording various aspects of your app's
performance while running it.

Of course, logging is also an excellent tool to employ in your app for
debugging purposes of various types.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
"Tina" <ti**********@removespamexcite.com> wrote in message
news:uC**************@TK2MSFTNGP14.phx.gbl...
My asp.net app that ran fine on my dev boxes is having problems at my web
hoster who is running IIS 6. I'm getting Out of Memory exceptoions. When
my web hoster bounces my app, the problem goes away for a couple of days.
Sounds like I have a Memory Leak, but my application is managed and
garbage collection is automatic, right?

How can I track available memory and what kinds of tools are available to
shoot this kind of problem?
Thanks,
T

Nov 19 '05 #2

"Tina" <ti**********@removespamexcite.com> wrote in message
news:uC**************@TK2MSFTNGP14.phx.gbl...
My asp.net app that ran fine on my dev boxes is having problems at my web
hoster who is running IIS 6. I'm getting Out of Memory exceptoions. When
my web hoster bounces my app, the problem goes away for a couple of days.
Sounds like I have a Memory Leak, but my application is managed and garbage collection is automatic, right?

How can I track available memory and what kinds of tools are available to
shoot this kind of problem?
Thanks,
T

You can use something like this on you development machine and see if peak
memory keeps growing. You probably can't use it on your hoster with proper
permissioning.

Dim strReport As String
Dim objInfo As ProcessInfo = _
ProcessModelInfo.GetCurrentProcessInfo
strReport = "The process ID is " & _
objInfo.ProcessID & ". " & _
"Current status is " & _
objInfo.Status.ToString & ". " & _
"Peak memory used was " & _
objInfo.PeakMemoryUsed & ". " & _
"Request count is currently " & _
objInfo.RequestCount & "."
Response.Write(strReport)
Nov 19 '05 #3
Kevin,
do you have any practical information or know where to look regarding what
kinds of things Don't get cleaned up. I have connections, and IO streams,
and things like that. I'm not explicitly disposing of anything and I have
never read that this was recomended.
t

"Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
Hi Tina,

Yes, it is possible to Manage to write your own custom Managed Memory
leak. Garbage Collection IS automatic, but unless you put your cans out on
the street, they will never get picked up. IOW, the purpose of Memory
Management and Garbage Collection is not to allow you more time to play
Solitaire, but to help you prevent your own forest fires, as Smokey the
Bandit would say. ;-)

The first thing you need to do is to determine that you will, in the
future, take more responsibility for your code. As Fox Mulder would say,
"Trust No one" (not even content from Microsoft!). Or, as my old boss when
I was a carpenter in Skokie Indiana would say "Measure twice, cut once."

Second, let's have a look at some diagnostic tools and techniques. One
thing I might point out regarding why it may have worked so beautifully on
your machine is, when you start a project in Visual Studio for debugging,
it restarts the application, thereby wiping out all accumulated memory for
that application. If you didn't use Visual Studio, well, you probably
didn't put the app under any stress. For example, the Application will
stop itself 20 minutes after the last client Request, and won't start
again until the next. A good practice is to put the app first on a staging
server and then put it under some stress over a long period of time.
Microsoft Application Center 2000 is a free tool that you can download
from Microsoft.com for testing ASP and ASPO.net apps. It can put a
simulated load on your app, enabling you to see how it functions under
stress.

Windows Taks Manager can be used to monitor memory and processor
performance easily while running your app. You can also set up Performance
Counters in your app for monitoring and/or recording various aspects of
your app's performance while running it.

Of course, logging is also an excellent tool to employ in your app for
debugging purposes of various types.

--
HTH,

Kevin Spencer
Microsoft MVP
.Net Developer
What You Seek Is What You Get.
"Tina" <ti**********@removespamexcite.com> wrote in message
news:uC**************@TK2MSFTNGP14.phx.gbl...
My asp.net app that ran fine on my dev boxes is having problems at my web
hoster who is running IIS 6. I'm getting Out of Memory exceptoions.
When my web hoster bounces my app, the problem goes away for a couple of
days. Sounds like I have a Memory Leak, but my application is managed and
garbage collection is automatic, right?

How can I track available memory and what kinds of tools are available to
shoot this kind of problem?
Thanks,
T


Nov 19 '05 #4
Michael,
thanks for that good, brief, practical answer. I'll look into
GetCurrentProcessInfo.

Do you know of specific things that garbage collections does not clean up?
T

"vMike" <Mi************@spamnotgewarren.com.delete> wrote in message
news:q1*****************@newsread2.news.atl.earthl ink.net...

"Tina" <ti**********@removespamexcite.com> wrote in message
news:uC**************@TK2MSFTNGP14.phx.gbl...
My asp.net app that ran fine on my dev boxes is having problems at my web
hoster who is running IIS 6. I'm getting Out of Memory exceptoions.
When
my web hoster bounces my app, the problem goes away for a couple of days.
Sounds like I have a Memory Leak, but my application is managed and

garbage
collection is automatic, right?

How can I track available memory and what kinds of tools are available to
shoot this kind of problem?
Thanks,
T

You can use something like this on you development machine and see if peak
memory keeps growing. You probably can't use it on your hoster with proper
permissioning.

Dim strReport As String
Dim objInfo As ProcessInfo = _
ProcessModelInfo.GetCurrentProcessInfo
strReport = "The process ID is " & _
objInfo.ProcessID & ". " & _
"Current status is " & _
objInfo.Status.ToString & ". " & _
"Peak memory used was " & _
objInfo.PeakMemoryUsed & ". " & _
"Request count is currently " & _
objInfo.RequestCount & "."
Response.Write(strReport)

Nov 19 '05 #5
Tina,

Are you closing all the database connections, datareader objects,
memorystreams ?
you might want to try using the
using()
{
}
that i presume automatically calls dispose.
just to be on safe side call dispose.
Also you might want to look at application stress tool from m
http://www.microsoft.com/downloads/d...displaylang=en

Run it on your dev box. You normally dont stress test on dev. Try running
this tool to emulate user load on production box.

HTH

Regards,

Hermit Dave
http://hdave.blogspot.com
"Tina" wrote:
Kevin,
do you have any practical information or know where to look regarding what
kinds of things Don't get cleaned up. I have connections, and IO streams,
and things like that. I'm not explicitly disposing of anything and I have
never read that this was recomended.
t

"Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
Hi Tina,

Yes, it is possible to Manage to write your own custom Managed Memory
leak. Garbage Collection IS automatic, but unless you put your cans out on
the street, they will never get picked up. IOW, the purpose of Memory
Management and Garbage Collection is not to allow you more time to play
Solitaire, but to help you prevent your own forest fires, as Smokey the
Bandit would say. ;-)

The first thing you need to do is to determine that you will, in the
future, take more responsibility for your code. As Fox Mulder would say,
"Trust No one" (not even content from Microsoft!). Or, as my old boss when
I was a carpenter in Skokie Indiana would say "Measure twice, cut once."

Second, let's have a look at some diagnostic tools and techniques. One
thing I might point out regarding why it may have worked so beautifully on
your machine is, when you start a project in Visual Studio for debugging,
it restarts the application, thereby wiping out all accumulated memory for
that application. If you didn't use Visual Studio, well, you probably
didn't put the app under any stress. For example, the Application will
stop itself 20 minutes after the last client Request, and won't start
again until the next. A good practice is to put the app first on a staging
server and then put it under some stress over a long period of time.
Microsoft Application Center 2000 is a free tool that you can download
from Microsoft.com for testing ASP and ASPO.net apps. It can put a
simulated load on your app, enabling you to see how it functions under
stress.

Windows Taks Manager can be used to monitor memory and processor
performance easily while running your app. You can also set up Performance
Counters in your app for monitoring and/or recording various aspects of
your app's performance while running it.

Of course, logging is also an excellent tool to employ in your app for
debugging purposes of various types.

--
HTH,

Kevin Spencer
Microsoft MVP
.Net Developer
What You Seek Is What You Get.
"Tina" <ti**********@removespamexcite.com> wrote in message
news:uC**************@TK2MSFTNGP14.phx.gbl...
My asp.net app that ran fine on my dev boxes is having problems at my web
hoster who is running IIS 6. I'm getting Out of Memory exceptoions.
When my web hoster bounces my app, the problem goes away for a couple of
days. Sounds like I have a Memory Leak, but my application is managed and
garbage collection is automatic, right?

How can I track available memory and what kinds of tools are available to
shoot this kind of problem?
Thanks,
T



Nov 19 '05 #6
Sure Tina.

Anything that implements IDisposable should be disposed. Connections and
DataReaders should always be closed. Any time you open a file, be sure to
close it (best done using a Try/Catch/Finally block, in the Finally block,
to ensure that an exception doesn't foil your plan. Anything involving IO is
expensive, because opening a file means reading the hard drive, rather than
memory. Also, IO is high-priority.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.

"Tina" <ti**********@removespamexcite.com> wrote in message
news:Ox**************@tk2msftngp13.phx.gbl...
Kevin,
do you have any practical information or know where to look regarding what
kinds of things Don't get cleaned up. I have connections, and IO streams,
and things like that. I'm not explicitly disposing of anything and I have
never read that this was recomended.
t

"Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
Hi Tina,

Yes, it is possible to Manage to write your own custom Managed Memory
leak. Garbage Collection IS automatic, but unless you put your cans out
on the street, they will never get picked up. IOW, the purpose of Memory
Management and Garbage Collection is not to allow you more time to play
Solitaire, but to help you prevent your own forest fires, as Smokey the
Bandit would say. ;-)

The first thing you need to do is to determine that you will, in the
future, take more responsibility for your code. As Fox Mulder would say,
"Trust No one" (not even content from Microsoft!). Or, as my old boss
when I was a carpenter in Skokie Indiana would say "Measure twice, cut
once."

Second, let's have a look at some diagnostic tools and techniques. One
thing I might point out regarding why it may have worked so beautifully
on your machine is, when you start a project in Visual Studio for
debugging, it restarts the application, thereby wiping out all
accumulated memory for that application. If you didn't use Visual Studio,
well, you probably didn't put the app under any stress. For example, the
Application will stop itself 20 minutes after the last client Request,
and won't start again until the next. A good practice is to put the app
first on a staging server and then put it under some stress over a long
period of time. Microsoft Application Center 2000 is a free tool that you
can download from Microsoft.com for testing ASP and ASPO.net apps. It can
put a simulated load on your app, enabling you to see how it functions
under stress.

Windows Taks Manager can be used to monitor memory and processor
performance easily while running your app. You can also set up
Performance Counters in your app for monitoring and/or recording various
aspects of your app's performance while running it.

Of course, logging is also an excellent tool to employ in your app for
debugging purposes of various types.

--
HTH,

Kevin Spencer
Microsoft MVP
.Net Developer
What You Seek Is What You Get.
"Tina" <ti**********@removespamexcite.com> wrote in message
news:uC**************@TK2MSFTNGP14.phx.gbl...
My asp.net app that ran fine on my dev boxes is having problems at my
web hoster who is running IIS 6. I'm getting Out of Memory exceptoions.
When my web hoster bounces my app, the problem goes away for a couple of
days. Sounds like I have a Memory Leak, but my application is managed
and garbage collection is automatic, right?

How can I track available memory and what kinds of tools are available
to shoot this kind of problem?
Thanks,
T



Nov 19 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Andreas Suurkuusk | last post by:
Hi, I just noticed your post in the "C# memory problem: no end for our problem?" thread. In the post you implied that I do not how the garbage collector works and that I mislead people. Since...
4
by: Frank Esser | last post by:
I am using SQL 8 Personal edition with sp2 applied. I set the max server memory to 32MB and leave the min server memory at 0. When my application starts hitting the database hard the memory usage...
4
by: Franklin Lee | last post by:
Hi All, I use new to allocate some memory,even I doesn't use delete to release them. When my Application exit, OS will release them. Am I right? If I'm right, how about Thread especally on...
9
by: Mike P | last post by:
I know everything about reference counting and making sure you don't have large objects lying around. I have also profiled my app with multiple tools. I know about the fact GC collects memory but...
22
by: xixi | last post by:
hi, we are using db2 udb v8.1 for windows, i have changed the buffer pool size to accommadate better performance, say size 200000, if i have multiple connection to the same database from...
14
by: Alessandro Monopoli | last post by:
Hi all, I'm searching a PORTABLE way to get the available and total physical memory. Something like "getTotalMemory" and it returns the memory installed on my PC in bytes, and...
1
by: Nick Craig-Wood | last post by:
I've been dumping a database in a python code format (for use with Python on S60 mobile phone actually) and I've noticed that it uses absolutely tons of memory as compared to how much the data...
5
by: kumarmdb2 | last post by:
Hi guys, For last few days we are getting out of private memory error. We have a development environment. We tried to figure out the problem but we believe that it might be related to the OS...
1
by: Jean-Paul Calderone | last post by:
On Tue, 22 Apr 2008 14:54:37 -0700 (PDT), yzghan@gmail.com wrote: The test doesn't demonstrate any leaks. It does demonstrate that memory usage can remain at or near peak memory usage even after...
5
by: cham | last post by:
Hi, I am working on c++ in a linux system ( Fedora core 4 ), kernel version - 2.6.11-1.1369_FC4 gcc version - 4.0.0 20050519 ( Red Hat 4.0.0-8 ) In my code i am creating a vector to store...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.