Re: Excess memory usage growth for a process
John Warner <[email protected]> Mon, 27 Jul 2009 12:28:13 -0400
| Newsgroups | gmane.comp.windows.devel.dotnet.advanced |
|---|---|
| Organization | House |
| Message-ID | <087801ca0ed7$3dd076b0$b9716410$@com> |
I don't disagree with you just note that before 'some change' working OK no memory leaks, after change, memory leak. We both know your code did not recompile itself to include a memory leak ... That reminds has the framework/runtimes been updated/patched? John Warner > -----Original Message----- > From: Discussion of advanced .NET topics. [mailto:ADVANCED- > [email protected]] On Behalf Of Eddie Lascu > Sent: Monday, July 27, 2009 12:00 PM > To: [email protected] > Subject: Re: [ADVANCED-DOTNET] Excess memory usage growth for a > process > > Hi John, > > I could check that with our system administrators. Do you think that can be > a possible explanation? > I just talked with one of the DB Admin and she said she made some changes > on > some Stored Produces, but nothing as dramatic as a patch update. She also > said that the drivers for the network cards were updated last week, but I > can't see how that can affect the memory used by my processes. > > Thanks, > Eddie > > > -----Original Message----- > From: Discussion of advanced .NET topics. > [mailto:[email protected]] On Behalf Of > John Warner > Sent: Monday, July 27, 2009 11:49 AM > To: [email protected] > Subject: Re: [ADVANCED-DOTNET] Excess memory usage growth for a > process > > Not what you are seeking, but has anything on the server changed? An > Oracle patch or something of that nature? > > John Warner > > > > -----Original Message----- > > From: Discussion of advanced .NET topics. [mailto:ADVANCED- > > [email protected]] On Behalf Of Eddie Lascu > > Sent: Monday, July 27, 2009 11:33 AM > > To: [email protected] > > Subject: [ADVANCED-DOTNET] Excess memory usage growth for a > process > > > > Hi guys, > > > > > > > > I need your help with an issue I am having right now. I have several > windows > > services deployed. These services gather some XML files from the > internet > > and then parse the content and save the information in the database. The > > database is Oracle 11g, so the access is done through ODP.NET. I had > some > > issues before (and some of you with good memory may recall my previous > > questions) where I noticed the memory used by these services growing > very > > high. At the time, I understood that some classes in the ODP.NET library > use > > some JAVA code and they are known for not cleaning properly after them. > As a > > result I rewrote my code in such a way that every dynamic allocation of > an > > object from the ODP.NET library was encompassed in an "using" statement, > > like this: > > > > > > > > using (OracleCommand objDbCommand = new > > OracleCommand(strSqlSelectStatement, > > objConnection)) > > > > > > > > All was fine for a very long time. All my services kept a constant size > when > > it came to the total memory used, a size that hovered around 55-60 MB. > This > > was the case for months. At the beginning I checked the size almost on a > > daily basis. After a while, my confidence grew and I only checked it > once a > > week or so. Every time I looked at the size of all my processes (I had 4 > > that followed pretty much the same approach on dealing with those Oracle > > objects) the size was around that 55-60 MB mark. > > > > > > > > Now, all of a sudden, this last weekend, the size for some of the > services > > shut up to about 690 MB, despite the fact the service was running with > the > > exact same code as it did a month ago. This represents a potential fatal > > problem for the server that can get to a point where it can no longer > > allocate memory, so I need to find a way to understand what the heck is > > going on. Unfortunately, I do not have any metrics implemented in my > > application to log the total amount of memory used. That would have been > a > > very good indication on when exactly did this surge started to happen. I > > could have checked the Event Viewer to see if the server got hit by a > > nuclear bomb or something on that precise moment. I really don't get > this. I > > mean that's why we moved to .NET in the first place, to be rid of such > > concerns, like making sure all dynamically allocated objects are then > > destroyed. > > > > > > > > Can anyone give me an idea on how to investigate this issue? Are there > tools > > out there that could be used to pick at the memory allocated by a > process > > and see what are those objects that take up so much memory? For the > time > > being, I have the processes running, but two of them are at or close to > 690 > > MB and I don't know how long will I be able to keep them running. > > > > > > > > If you had an issue like this, what would you try to do? > > > > > > > > Any suggestion will be greatly appreciated. > > > > > > > > TIA, > > > > Eddie > > > > > > > > > > =================================== > > View archives and manage your subscription(s) at > > http://peach.ease.lsoft.com/archives > > =================================== > View archives and manage your subscription(s) at > http://peach.ease.lsoft.com/archives > > =================================== > View archives and manage your subscription(s) at > http://peach.ease.lsoft.com/archives =================================== View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives