M
mjkahn
I'm running IIS 5.0 under Windows 2000 Server. My ASP (VBscript) code
instantiates and uses some objects implemented in custom-written Visual Basic
6 DLLs. (Thanks to a previous thread, we no longer store those objects in
Session variables.) Application Protection for this site's Virtual Directory
is set to Medium (Pooled).
I'm using the Microsoft Web Application Stress Tool to monitor performance
and make sure database connections (opened within the VB6 DLLs) are being
closed and pooled properly. At the same time, I'm using the Windows Task
Manager to watch how much memory DLLHOST.EXE is using.
Windows Task Manager is showing me that DLLHOST is using more and more
memory over time. Memory usage goes up while a test is running, and then goes
down a bit when the dust settles after a test (e.g., once the closed
connections are removed from the pool and finally deleted), but it never goes
back down to what it was before the test ran--over time, memory usage keeps
creeping upward.
The VB6 DLLs used by my ASP pages open ADO database connections, but the
code is very careful about closing Recordsets and Connections and setting
them to Nothing.
A few questions:
1. Is this normal? Should I be concerned?
2. The ASP code instantiates these object with code like this:
set obj = Server.CreateObject("DLLname.ObjectName")
Is it important for the ASP code to do something like "set obj = Nothing"
before it exits? If the ASP code doesn't do that, will the memory used by the
object be freed when the ASP page terminates or when the user's Session ends?
3. Is there a better way I should be monitoring memory usage for this kind
of situation? (The Counters in the Perofrmance Monitor are kind of daunting.
If you can suggest an article that would help me understand memory usage,
that would be great.)
Thanks very much!
MJ.
instantiates and uses some objects implemented in custom-written Visual Basic
6 DLLs. (Thanks to a previous thread, we no longer store those objects in
Session variables.) Application Protection for this site's Virtual Directory
is set to Medium (Pooled).
I'm using the Microsoft Web Application Stress Tool to monitor performance
and make sure database connections (opened within the VB6 DLLs) are being
closed and pooled properly. At the same time, I'm using the Windows Task
Manager to watch how much memory DLLHOST.EXE is using.
Windows Task Manager is showing me that DLLHOST is using more and more
memory over time. Memory usage goes up while a test is running, and then goes
down a bit when the dust settles after a test (e.g., once the closed
connections are removed from the pool and finally deleted), but it never goes
back down to what it was before the test ran--over time, memory usage keeps
creeping upward.
The VB6 DLLs used by my ASP pages open ADO database connections, but the
code is very careful about closing Recordsets and Connections and setting
them to Nothing.
A few questions:
1. Is this normal? Should I be concerned?
2. The ASP code instantiates these object with code like this:
set obj = Server.CreateObject("DLLname.ObjectName")
Is it important for the ASP code to do something like "set obj = Nothing"
before it exits? If the ASP code doesn't do that, will the memory used by the
object be freed when the ASP page terminates or when the user's Session ends?
3. Is there a better way I should be monitoring memory usage for this kind
of situation? (The Counters in the Perofrmance Monitor are kind of daunting.
If you can suggest an article that would help me understand memory usage,
that would be great.)
Thanks very much!
MJ.