5

I have a DAG setup with Server 2012 R2 and Exchange 2013 running on three Servers plus another Server for a lagged copy.

We appear to be having a handle leak on all of the Servers, it doesn't seem to matter if they are hosting the databases or not. However what strikes me as odd is that the handle leak does not seem to be hugging a huge number of resources e.g. it is not using tons and tons of memory as the handles increase, even when one of the Servers peaked at 261076 handles it had not really increased it's memory usage much more.

The handle leaker is the Windows process LSASS which is also a headache as although I'm monitoring using Perfmon and I've used RAMmap, Process Explorer, etc. it is proving to be a hard one to troubleshoot as LSASS itself is not the cause whatever is 'using' LSASS is the problem.

I'm fairly knowledgeable in performance troubleshooting but only ever with in-house coding using .NET etc. everything on this box is Microsoft.

So I guess my questions are:

What is the difference between Handle Leaks and Memory Leaks can I have a Handle Leak without having a Memory Leak? And if so what is the danger of a pure Handle Leak overtime?

What else can I do to troubleshoot this? I was going to install the SDK and use UMDH and Gflags to take snapshots of the memory but its not a very fast increase so this is going to be a little painful.

Got lots of information but not sure what is relevant so anything you need to ask I can provide.

chicks
  • 3,915
  • 10
  • 29
  • 37
CharlesH
  • 344
  • 2
  • 13

1 Answers1

2

A handle leak is a special case of a memory leak. You're leaking memory from a narrowly defined pool: the set of available handles. Typically a handle would be a memory pointer, which on a 64 bit machine would take 8 bytes. So 261076 handles times 8 bytes is 2039kB, just short of 2meg. That's pocket change on modern machines.

But the problem you need to look out for is: what happens when you run out of handles? How does your app degrade? Is there a hard limit or does it start to break before the max? Can you graph the number of handles and restart services when it gets beyond a certain point? Is there a way to change the limit on the number of handles to mitigate the problem? Does restarting services fix it or does it require a reboot?

chicks
  • 3,915
  • 10
  • 29
  • 37