|
Author
|
Topic: High IIS memory after load test
|
jcrvs Advanced
 
Posts: 124 Registered: Jul 2001
|
posted 02-26-2002 10:37 PM
I am performing load test on IIS server which hosts COM components and ASP. Now after the load test is over the memory is around 110 MB and after 5 hrs or so i have observed that it scales down only to around 93 MB, this indiactes the reduction is around 15% only,. Does this mean there are memoery leaks ? I doubt it as we have run through the code for setting all objects to nothing/null.So is this peculiar IIS server behaviour ? or do i have a code problem for this high memory? Thanks in advance

|
allogene Advanced Guru
    
Posts: 921 Registered: Jun 2001
|
posted 02-27-2002 07:36 AM
How much memory do you have without running a test? Basically what is your normal memory level?You may not have a problem at all, then again you easilly could. Perhaps it is not a code problem, maybe it is a server setting or a time out value set to high. Perhaps a connection problem. There are so many different things that would cause memory leaks. But first you need to know what the normal state of memory is and whether or not you return to it. ------------------ Simple minds, Simple thoughts! Doug

|
rstens Guru
   
Posts: 321 Registered: Aug 2000
|
posted 02-27-2002 08:51 AM
Could also be that your cache is now filled up. Check the appropriate counters for Cache and see if there was an increase in cache usage from when you first started your test.If so, you have nothing to worry about, because this is normal (desired) behaviour. ------------------ Roland

|
jcrvs Advanced
 
Posts: 124 Registered: Jul 2001
|
posted 02-28-2002 01:18 AM
The startup memory is around 30 MB for the iis server (i mean inetinfo.exe process) and after the load test is complete for say 3 hrs it goes high as 110 MB and after 5 hrs i observed it still is high as 98 MB. quote: Originally posted by allogene: How much memory do you have without running a test? Basically what is your normal memory level?You may not have a problem at all, then again you easilly could. Perhaps it is not a code problem, maybe it is a server setting or a time out value set to high. Perhaps a connection problem. There are so many different things that would cause memory leaks. But first you need to know what the normal state of memory is and whether or not you return to it.

|
allogene Advanced Guru
    
Posts: 921 Registered: Jun 2001
|
posted 02-28-2002 08:50 AM
I would check private bytes, and pool paged bytes and pool nonpaged bytes. Also check pages input/sec, pages read/sec, and pages/sec. These will help indicate a memory problem.------------------ Simple minds, Simple thoughts! Doug

|
rstens Guru
   
Posts: 321 Registered: Aug 2000
|
posted 02-28-2002 11:45 AM
Check out the following link on some known IIS memory leaks: http://www.iisfaq.com/MemoryLeaks/ ------------------ Roland

|
Yury Guru
   
Posts: 308 Registered: Dec 1999
|
posted 03-03-2002 05:23 PM
quote: Originally posted by jcrvs: Does this mean there are memory leaks ?
Not necessary. IIS (as well as MS SQL) will consume (allocate to cache) as much memory as available/needed in case of heavy load. It won't be reclaimed by OS unless it's required by another application.

|
Jim Muir Member
Posts: 9 Registered: Feb 2002
|
posted 03-08-2002 06:58 AM
The amount of memory consumption you describe over 3hrs is not very much. I have seen a situation where memory grew over 200 MB during an overnight test. This was because the developers of the COM object code did not explicitly destroy objects, but instead expected them to be destroyed when they lost scope.Becuase of the load used in our soak test, the objects were constantly reused, so they never lost scope, and the object kept consuming memory. I think it was a VB dictionary or collection object that kept growing. I should mention that this never happened in production because production usage up to that time had been low enough to allow the object to be unloaded by MTS/IIS after a timeout. Additionally, the way I originally found the memory leak was that I noticed that the response times grew as the test progressed. The longer the test run, the longer the response times. After the developer modified the code to explicitly destroy objects, the memory leak went away, and the response times remained relatively uniform regardless of how long the test ran. The tricky part was finding which of the 30+ MTS objects was the culprit  I hope this is helpful. ------------------

|
jcrvs Advanced
 
Posts: 124 Registered: Jul 2001
|
posted 03-12-2002 04:25 AM
quote: Originally posted by Jim Muir: The amount of memory consumption you describe over 3hrs is not very much. I have seen a situation where memory grew over 200 MB during an overnight test. This was because the developers of the COM object code did not explicitly destroy objects, but instead expected them to be destroyed when they lost scope.Becuase of the load used in our soak test, the objects were constantly reused, so they never lost scope, and the object kept consuming memory. I think it was a VB dictionary or collection object that kept growing. I should mention that this never happened in production because production usage up to that time had been low enough to allow the object to be unloaded by MTS/IIS after a timeout. Additionally, the way I originally found the memory leak was that I noticed that the response times grew as the test progressed. The longer the test run, the longer the response times. After the developer modified the code to explicitly destroy objects, the memory leak went away, and the response times remained relatively uniform regardless of how long the test ran. The tricky part was finding which of the 30+ MTS objects was the culprit :) I hope this is helpful.
I checked up stuff as all people wo contributed here, findings are as follows :- 1. Code check performed but no leaks found 2. Response time did not increase as the load test progressed 3. Also a test was performed on IIS with few asp pages and single com abject and it was found that the IIS did allocate memory and didi not release it, so it increases to a extent and then remains stable at that value. That was the behaviour of the IIS itself. 4. Paging was observed to be high as 1500 (page faults/sec) at peak load but later it reduced to very low values
Thanks for all the help

|
allogene Advanced Guru
    
Posts: 921 Registered: Jun 2001
|
posted 03-12-2002 07:00 AM
quote: Originally posted by jcrvs: 4. Paging was observed to be high as 1500 (page faults/sec) at peak load but later it reduced to very low values
This is a very large amount of page faults. I would look into this. I would also suggest looking at Memory\Pages Input/Sec and Memory\Pages Read/Sec. For more information on these try a search on Google I found lots of info there. These two monitors should help indicate if there is a problem with paging.------------------ Simple minds, Simple thoughts! Doug

|
jcrvs Advanced
 
Posts: 124 Registered: Jul 2001
|
posted 03-13-2002 09:28 PM
quote: This is a very large amount of page faults. I would look into this. I would also suggest looking at Memory\Pages Input/Sec
You were right i check the Memory\Pages Input/Sec and the value was less than 1, which means i really had memory hardware problem for one of the servers, but sad it is too late to report this problem cos of deadline

|
allogene Advanced Guru
    
Posts: 921 Registered: Jun 2001
|
posted 03-14-2002 06:43 AM
quote: Originally posted by jcrvs: [QUOTE] You were right i check the Memory\Pages Input/Sec and the value was less than 1, which means i really had memory hardware problem for one of the servers, but sad it is too late to report this problem cos of deadline
Sorry to hear that. It is good that you found the problem. Good for future reference. Glad I could be of some help. ------------------ Simple minds, Simple thoughts! Doug

|