Re: Memory Issues

Tech-Archive recommends: Fix windows errors by optimizing your registry



The counter MSExchangeIS:exchmem Number of memory errors tells how many
allocates could not be satisfied by available memory (all heaps)

The counter MSExchangeIS:exchmem Number of memory heaps with errors refers
to the number of heaps with errors. Exchange 2003 divides available virtual
memory into a number of heaps by default using the formula number of
processors +3. If hyperthreading is enables each processor counts as 2. If
I have a dual processor box with hyperthreading enabled, there are 7 heaps.
If you have a single processor box with hyperthreading enabled, then you
have 5 heaps. I believe an error is generated if the counter reaches 5.

So, within a heap you have a thread that allocates and deallocates memory
blocks. When deallocated blocks are decommitted or recycled depends on the
setting of heapdecommitfreeblockthreshold. MS recommends this setting be
hex 0x40000. The thought behind this is to wait a while and decommit a
bunch of deallocated blocks at once to minimize fragmentation (more
contiguous blocks decommited as the threshold increases). Of course, this
is a tradeoff because until the threshold is met, deallocated blocks are not
decommitted or available for use.

The Store.exe process creates the default exchmem heaps at startup, and does
not increase the number of heaps unless the existing number is either fully
utilized or is fragmented to a point where an allocation cannot find enough
contiguous memory to succeed. When there is an allocation error within all
heaps, an additional heap is created, the counter MSExchangeIS:exchmem
Number of memory errors is incremented, and the memory is allocated from
there. The repeated creation and deletion of additional heaps contributes to
virtual memory fragmentation/depletion. You can see this additional heap
creation in the counter MSExchangeIS:Exchmem Number of Additional Heaps.

At this point, I would examine the MSExchangeIS VM counters to see if there
is a virtual memory framgentation/depletion problem.



"Adoyt" <Adoyt@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:CA253E27-6564-41E5-924F-64C69AB0E74D@xxxxxxxxxxxxxxxx
I'm not sure if I'm having memory issues or not because of the articles on
microsofts website. The counter, MSExchangeIS:exchmem:Number of memory
errors is @ 2.

The Exchange analyzer says that an error will be generated when the
counter
is above 500:
https://www.microsoft.com/technet/prodtechnol/exchange/Analyzer/74a9c209-6259-4433-80cf-da90d470846c.mspx?mfr=true

The kb article 'Ruling out memory problems' says it should be at zero at
all
times:
http://technet.microsoft.com/en-us/library/7a44b064-8872-4edf-aac7-36b2a17f662a.aspx

Thanks!


.



Relevant Pages

  • Re: GC.Collect can be trusted?
    ... Basically, all memory allocations/de-allocations are made by the OS itself, every process in Windows starts with a "default heap" at process creation time, all heaps allocated to a process are reclaimed by the OS when the process terminates, don't expect to find leaks at this level, this is really a robust piece of code in the kernel. ... Program code can allocate space from this process heap or allocate another heap from the OS. ... Program code allocates/de-allocates process heap space by means of a WIN32 API call, program code also calls the C runtime to further allocate memory space from the aforementioned process heaps, the CLR memory allocator does exactly that, he calls the OS to reserve a number of process heaps, while he uses the C Runtime to reserve space from these process heaps for the GC generational heaps, the GC allocates/de-allocates object space from these "CG heaps". ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Increasing GDI Object Limits
    ... the heaps are not increased just to manage the additional ... resource, but are expanded by a pre-determined "best case" block of memory. ... These "magic" sizes are the result of memory allocation schemes and not of ...
    (microsoft.public.vb.general.discussion)
  • How do I diagnose what is preventing me from saving my WMMaker pro
    ... there was a problem (either source file not found, not enough memory, not ... enough disc space etc). ... I have heaps of disc space and heaps of memory and ...
    (microsoft.public.windowsxp.moviemaker)
  • Re: Can you track memory usage in VB6?
    ... Using the Task Manager can be misleading Dave. ... memory really is being lost, rather than things legitimately being cached. ... look at the process heaps. ... Private Const PROCESS_HEAP_UNCOMMITTED_RANGE As Integer = &H2 ...
    (microsoft.public.vb.general.discussion)
  • Re: Framework 2.0 array redim unsatisfactory performance
    ... implementation details of Redim, Redim Preserve, and List. ... significantly higher object allocated overhead then List. ... ReDim simply allocates a new ... but I do not even attempt to test its memory ...
    (microsoft.public.dotnet.languages.vb)