HighTechTalks DotNet Forums  

Private Bytes and aspnet_wp

Dotnet Framework (Performance) microsoft.public.dotnet.framework.performance


Discuss Private Bytes and aspnet_wp in the Dotnet Framework (Performance) forum.



Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old   
redhotsly@hotmail.com
 
Posts: n/a

Default Private Bytes and aspnet_wp - 03-16-2007 , 02:01 PM






Hi,

We have a .Net 2.0 Web Services Application running on Windows 2003
Server SP. There is one application pool that contains 10 copies of
this application (there is one copy per customer that we have).

When all the applications are loaded, the "private bytes" for the
process is around 400MB and the "# Bytes in all heaps" is around
250MB.

I'm trying to understand what is loaded in the private bytes. As far
as I understand, the private bytes include the assemblies themselves
as well as any unmanaged objects (i.e.: COM Objects). Is that right?

The \bin directory of my web application contains 13MB of DLL files.
Can I make this simplistic calculation: 13 MB X 10 Applications = 130
MB. Therefore 130MB of the private bytes would be allocated to hold
the assemblies themselves?

How can I find out what exactly is in the private bytes? Is there a
tool I can use to find out? I have a memory dump and I have WinDbg. I
know how to inspect managed memory using SOS Extension commands but I
don't know how to to inspect non managed memory. Is WinDbg the right
tool?

Thanks

-Sly


Reply With Quote
  #2  
Old   
Ben Voigt
 
Posts: n/a

Default Re: Private Bytes and aspnet_wp - 03-16-2007 , 03:16 PM






Quote:
The \bin directory of my web application contains 13MB of DLL files.
Can I make this simplistic calculation: 13 MB X 10 Applications = 130
MB. Therefore 130MB of the private bytes would be allocated to hold
the assemblies themselves?
Much of each DLL (any readonly segments) should be shared, and not appear in
private bytes at all.

Quote:
How can I find out what exactly is in the private bytes? Is there a
tool I can use to find out? I have a memory dump and I have WinDbg. I
know how to inspect managed memory using SOS Extension commands but I
don't know how to to inspect non managed memory. Is WinDbg the right
tool?

Thanks

-Sly




Reply With Quote
  #3  
Old   
Laura T.
 
Posts: n/a

Default Re: Private Bytes and aspnet_wp - 03-20-2007 , 06:02 AM



As the name says, the Private Bytes counter indicates the amount of memory
being used that can't be shared with other processes. It contains caches,
buffers, CLR heaps etc. Everything allocated (committed) by the process for
itself.

Some good links for more details.

http://blogs.msdn.com/tess/archive/2...ak-memory.aspx
http://msdn.microsoft.com/msdntv/tra...ranscript.aspx
http://msdn.microsoft.com/msdnmag/is...t/default.aspx

<redhotsly (AT) hotmail (DOT) com> ha scritto nel messaggio
news:1174068100.473717.244640 (AT) n59g2000hsh (DOT) googlegroups.com...
Quote:
Hi,

We have a .Net 2.0 Web Services Application running on Windows 2003
Server SP. There is one application pool that contains 10 copies of
this application (there is one copy per customer that we have).

When all the applications are loaded, the "private bytes" for the
process is around 400MB and the "# Bytes in all heaps" is around
250MB.

I'm trying to understand what is loaded in the private bytes. As far
as I understand, the private bytes include the assemblies themselves
as well as any unmanaged objects (i.e.: COM Objects). Is that right?

The \bin directory of my web application contains 13MB of DLL files.
Can I make this simplistic calculation: 13 MB X 10 Applications = 130
MB. Therefore 130MB of the private bytes would be allocated to hold
the assemblies themselves?

How can I find out what exactly is in the private bytes? Is there a
tool I can use to find out? I have a memory dump and I have WinDbg. I
know how to inspect managed memory using SOS Extension commands but I
don't know how to to inspect non managed memory. Is WinDbg the right
tool?

Thanks

-Sly




Reply With Quote
  #4  
Old   
redhotsly@hotmail.com
 
Posts: n/a

Default Re: Private Bytes and aspnet_wp - 03-23-2007 , 11:46 AM



On Mar 16, 3:16 pm, "Ben Voigt" <r... (AT) nospam (DOT) nospam> wrote:
Quote:
The \bin directory of my web application contains 13MB of DLL files.
Can I make this simplistic calculation: 13 MB X 10 Applications = 130
MB. Therefore 130MB of the private bytes would be allocated to hold
the assemblies themselves?

Much of each DLL (any readonly segments) should be shared, and not appear in
private bytes at all.

Hi Ben,

I was able to calculate the amount of memory used by the assemblies.
WngDBg has the "lm" command that lists modules and prints the start
and end address of each module. With 10 application domain loaded I
had a total of 150 MB of DLLS. System DLLs and DLLs that are in the
GAC are loaded only once but my application's assemblies are loaded 10
times. BTW, most of the 150 MB is loaded with system and GAC dlls.

Sly



Reply With Quote
Reply




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.