Troubleshooting Forefront TMG 2010 Performance issues Cheat Sheet
We encourage you to enhance this guide by identifying missing areas (scenarios, features, lifecycle...), provide links to and write descriptions of existing content, and providing new content where there are gaps. Join the community!
Scenario 1: Slow Internet Access through Forefront TMG
Potential Issue 1
Task |
Commands/Approach |
What to look for at this stage |
Get a dump of wspsrv.exe process while the issue is happening |
Use the approach from this post
|
|
Load the wspsrv.exe dump and quick review all the threads within this process |
On WinDBG type: ~kb* |
|
Check for critical sections |
On WinDBG type: !cs –l |
|
Dump the information related to the critical section that is locked |
On WinDBG type: !cs -o <owning thread> |
|
**Sample Article:
Potential Issue 2
Task |
Commands/Approach |
What to look for at this stage |
If critical section doesn’t show any result but there are still suspicious patterns on the user mode dump, start to review perfmon. |
Use TMG PAL while reviewing Perfmon Data.
|
|
Don’t focus only on TMG counters, also review Windows core counters |
Memory/*, Processor/*, Network Interface/*, Process/*, Physical Disk/*, Threads/*
nltest /dbflag:0x2080ffff |
|
**Sample Article:
**http://blogs.technet.com/b/yuridiogenes/archive/2010/11/16/hey-dc-are-you-still-there.aspx
Scenario 2: Firewall Service Crash
Task |
Commands/Approach |
What to look for at this stage |
Make sure to attach a debugger to wspsrv.exe process in order to collect the dump when service crashes |
|
|
Load the crash dump on WinDBG |
On WinDBG type: !analyze -v |
|
If the faulting module is not a TMG component, review who is the owner |
On WinDBG type: lmvm <faulting module> |
|
**Sample Articles:
**http://blogs.technet.com/b/yuridiogenes/archive/2009/08/20/isa-server-firewall-service-crashed-but-why.aspx http://blogs.technet.com/b/yuridiogenes/archive/2008/08/13/capturing-an-user-mode-crash-on-isa-server-part-2-of-2.aspx
Scenario 3: TMG Stop Responding
Task |
Commands/Approach |
What to look for at this stage |
First, make sure that is TMG that stops responding or the Windows OS that stops responding |
Get answer for the following questions:
2) Does the server get back in production if you restart Firewall Service? 3) How frequent does this issue happen?
|
|
If the whole server stops answering, get complete (or kernel) memory dump |
Use the approach from this article to configure the server.
|
|
Load the kernel dump on WinDBG |
On WinDBG type: !locks |
|
Once you find a thread that might be waiting for a resource, dump the thread |
On WinDBG type: !thread <thread number> |
|
If the thread has IRPs, dump the IRP |
On WinDBG type: !irp <irp number> |
|
**Sample Articles:
**http://blogs.technet.com/b/yuridiogenes/archive/2008/08/22/antivirus-and-isa-server.aspx
Download the PDF version of this Cheat Sheet from here.
This article was originally written by:
**Yuri Diogenes, Senior Technical Writer
Windows Server iX | IT Pro Security
Microsoft Corporation
**--------
Yuri’s Blog: http://blogs.technet.com/yuridiogenes
Team’s Blog: http://blogs.technet.com/b/securitycontent
Twitter: http://twitter.com/yuridiogenes