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.

Thanks,

Charles

CharlesH
  • 344
  • 2
  • 13

1 Answers1

1

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,639
  • 10
  • 26
  • 36
  • Thanks for your reply! Definitely given me more to think about with regards to this. Is there a way to determine that maximum handles or simply let it run and run until it falls over? I've got perfmon running for memory and handles and the last thing I done yesterday was remove AV, restarted and let the counters logging start again which I will be checking throughout today. – CharlesH Sep 16 '15 at 06:58
  • There should be a way to find the max, but we're at the limit of my Windows ability. – chicks Sep 16 '15 at 12:05