Perfmon - Common counters to find bottlenecks on a server with SQL (SMS/SCCM/SCOM)

I'm seriously busy right now at my day job so I don't have time to get cr@zy with the det@ilz, but I would like to quickly post the Perfmon counters I use if I want to determine if a server has a processor, memory, network or disk bottleneck.  Performance monitoring is kindof a voodoo arts kinda thing so everyone has their own special pixie dust counter that they use to look for problems.  Because of this you may find that I'm missing a counter you would be using or I've got some counters you wouldn't use, but it's at least a start.  I believe I started with a template that someone else gave me at one point when they were trying to troubleshoot performance on a server and then I just added a couple other things for my taste. 

You may use the html below in perfmon as a starting point to see what counters you might want to keep/discard.  It pretty much has all you need to determine if your server is network, processor, disk or memory bound.

  1. Save this text file as .html someone on your server.
  2. Open perfmon and navigate to "Performance Logs & Alerts" ---> "Counter Logs"
  3. In the right pane, right-click and select "New log settings from..."
  4. Select the html file from #1

Now you can either schedule perfmon to collect these counters on this server, or look at them and determine which ones you want to configure in OpsManager and have Ops Manager collect the stats for you.

If you have some counters that you think should be included or if you think there are some counters here that SHOULDN'T be included for some reason, let me know and we'll polish this together. 

Number2 (John Nelson)
MyITForum - Forum Posts
MyITForum - Blog
Add to Google

 

BTW, for those of you that just want to see it, but don't want to download the template, here's the guts of it. 

 
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;" />
<META NAME="GENERATOR" Content="Microsoft System Monitor" />
</HEAD>
<BODY>
<OBJECT ID="DISystemMonitor1" WIDTH="100%" HEIGHT="100%"
CLASSID="CLSID:C4D2D8E0-D1DD-11CE-940F-008029004347">
 <PARAM NAME="_Version" VALUE="196611"/>
 <PARAM NAME="LogName" VALUE="COMPUTERNAME"/>
 <PARAM NAME="Comment" VALUE=""/>
 <PARAM NAME="LogType" VALUE="0"/>
 <PARAM NAME="CurrentState" VALUE="0"/>
 <PARAM NAME="RealTimeDataSource" VALUE="1"/>
 <PARAM NAME="LogFileMaxSize" VALUE="-1"/>
 <PARAM NAME="DataStoreAttributes" VALUE="34"/>
 <PARAM NAME="LogFileBaseName" VALUE="Server Capture Template_%computername%"/>
 <PARAM NAME="LogFileSerialNumber" VALUE="1"/>
 <PARAM NAME="LogFileFolder" VALUE="c:\Perfmon"/>
 <PARAM NAME="Sql Log Base Name" VALUE="SQL:!Server Capture Template_%computername%"/>
 <PARAM NAME="LogFileAutoFormat" VALUE="6"/>
 <PARAM NAME="LogFileType" VALUE="2"/>
 <PARAM NAME="StartMode" VALUE="0"/>
 <PARAM NAME="StopMode" VALUE="0"/>
 <PARAM NAME="RestartMode" VALUE="0"/>
 <PARAM NAME="LogFileName" VALUE="c:\Perfmon\Server Capture Template_%computerName%_03101921.blg"/>
 <PARAM NAME="EOFCommandFile" VALUE=""/>
 <PARAM NAME="Counter00001.Path" VALUE="\Active Server Pages\Request Bytes In Total"/>
 <PARAM NAME="Counter00002.Path" VALUE="\Active Server Pages\Request Bytes Out Total"/>
 <PARAM NAME="Counter00003.Path" VALUE="\Active Server Pages\Requests Executing"/>
 <PARAM NAME="Counter00004.Path" VALUE="\Active Server Pages\Requests Queued"/>
 <PARAM NAME="Counter00005.Path" VALUE="\Active Server Pages\Requests/Sec"/>
 <PARAM NAME="Counter00006.Path" VALUE="\Active Server Pages\Sessions Current"/>
 <PARAM NAME="Counter00007.Path" VALUE="\Active Server Pages\Transactions/Sec"/>
 <PARAM NAME="Counter00008.Path" VALUE="\Internet Information Services Global\Measured Async I/O Bandwidth Usage"/>
 <PARAM NAME="Counter00009.Path" VALUE="\LogicalDisk(*)\% Disk Time"/>
 <PARAM NAME="Counter00010.Path" VALUE="\LogicalDisk(*)\% Idle Time"/>
 <PARAM NAME="Counter00011.Path" VALUE="\LogicalDisk(*)\Avg. Disk Queue Length"/>
 <PARAM NAME="Counter00012.Path" VALUE="\LogicalDisk(*)\Avg. Disk Read Queue Length"/>
 <PARAM NAME="Counter00013.Path" VALUE="\LogicalDisk(*)\Avg. Disk sec/Read"/>
 <PARAM NAME="Counter00014.Path" VALUE="\LogicalDisk(*)\Avg. Disk sec/Write"/>
 <PARAM NAME="Counter00015.Path" VALUE="\LogicalDisk(*)\Avg. Disk Write Queue Length"/>
 <PARAM NAME="Counter00016.Path" VALUE="\LogicalDisk(*)\Current Disk Queue Length"/>
 <PARAM NAME="Counter00017.Path" VALUE="\LogicalDisk(*)\Disk Read Bytes/sec"/>
 <PARAM NAME="Counter00018.Path" VALUE="\LogicalDisk(*)\Disk Reads/sec"/>
 <PARAM NAME="Counter00019.Path" VALUE="\LogicalDisk(*)\Disk Transfers/sec"/>
 <PARAM NAME="Counter00020.Path" VALUE="\LogicalDisk(*)\Disk Write Bytes/sec"/>
 <PARAM NAME="Counter00021.Path" VALUE="\LogicalDisk(*)\Disk Writes/sec"/>
 <PARAM NAME="Counter00022.Path" VALUE="\Memory\Available MBytes"/>
 <PARAM NAME="Counter00023.Path" VALUE="\Memory\Cache Bytes"/>
 <PARAM NAME="Counter00024.Path" VALUE="\Memory\Committed Bytes"/>
 <PARAM NAME="Counter00025.Path" VALUE="\Memory\Free System Page Table Entries"/>
 <PARAM NAME="Counter00026.Path" VALUE="\Memory\Pages/sec"/>
 <PARAM NAME="Counter00027.Path" VALUE="\Memory\Pool Nonpaged Bytes"/>
 <PARAM NAME="Counter00028.Path" VALUE="\Memory\Pool Paged Bytes"/>
 <PARAM NAME="Counter00029.Path" VALUE="\Memory\System Cache Resident Bytes"/>
 <PARAM NAME="Counter00030.Path" VALUE="\NBT Connection(*)\Bytes Received/Sec"/>
 <PARAM NAME="Counter00031.Path" VALUE="\NBT Connection(*)\Bytes Sent/sec"/>
 <PARAM NAME="Counter00032.Path" VALUE="\NBT Connection(*)\Bytes Total/sec"/>
 <PARAM NAME="Counter00033.Path" VALUE="\Network Interface(*)\Bytes Received/Sec"/>
 <PARAM NAME="Counter00034.Path" VALUE="\Network Interface(*)\Bytes Sent/sec"/>
 <PARAM NAME="Counter00035.Path" VALUE="\Network Interface(*)\Bytes Total/sec"/>
 <PARAM NAME="Counter00036.Path" VALUE="\Network Interface(*)\Current Bandwidth"/>
 <PARAM NAME="Counter00037.Path" VALUE="\Paging File(*)\% Usage"/>
 <PARAM NAME="Counter00038.Path" VALUE="\PhysicalDisk(*)\% Disk Time"/>
 <PARAM NAME="Counter00039.Path" VALUE="\PhysicalDisk(*)\% Idle Time"/>
 <PARAM NAME="Counter00040.Path" VALUE="\PhysicalDisk(*)\Avg. Disk Queue Length"/>
 <PARAM NAME="Counter00041.Path" VALUE="\PhysicalDisk(*)\Avg. Disk Read Queue Length"/>
 <PARAM NAME="Counter00042.Path" VALUE="\PhysicalDisk(*)\Avg. Disk sec/Read"/>
 <PARAM NAME="Counter00043.Path" VALUE="\PhysicalDisk(*)\Avg. Disk sec/Write"/>
 <PARAM NAME="Counter00044.Path" VALUE="\PhysicalDisk(*)\Avg. Disk Write Queue Length"/>
 <PARAM NAME="Counter00045.Path" VALUE="\PhysicalDisk(*)\Current Disk Queue Length"/>
 <PARAM NAME="Counter00046.Path" VALUE="\PhysicalDisk(*)\Disk Read Bytes/sec"/>
 <PARAM NAME="Counter00047.Path" VALUE="\PhysicalDisk(*)\Disk Reads/sec"/>
 <PARAM NAME="Counter00048.Path" VALUE="\PhysicalDisk(*)\Disk Transfers/sec"/>
 <PARAM NAME="Counter00049.Path" VALUE="\PhysicalDisk(*)\Disk Write Bytes/sec"/>
 <PARAM NAME="Counter00050.Path" VALUE="\PhysicalDisk(*)\Disk Writes/sec"/>
 <PARAM NAME="Counter00051.Path" VALUE="\Process(*)\% Processor Time"/>
 <PARAM NAME="Counter00052.Path" VALUE="\Process(*)\Handle Count"/>
 <PARAM NAME="Counter00053.Path" VALUE="\Process(*)\IO Data Operations/sec"/>
 <PARAM NAME="Counter00054.Path" VALUE="\Process(*)\IO Other Operations/sec"/>
 <PARAM NAME="Counter00055.Path" VALUE="\Process(*)\Private Bytes"/>
 <PARAM NAME="Counter00056.Path" VALUE="\Process(*)\Thread Count"/>
 <PARAM NAME="Counter00057.Path" VALUE="\Processor(*)\% Idle Time"/>
 <PARAM NAME="Counter00058.Path" VALUE="\Processor(*)\% Privileged Time"/>
 <PARAM NAME="Counter00059.Path" VALUE="\Processor(*)\% Processor Time"/>
 <PARAM NAME="Counter00060.Path" VALUE="\Processor(*)\% User Time"/>
 <PARAM NAME="Counter00061.Path" VALUE="\Processor(_Total)\DPCs Queued/sec"/>
 <PARAM NAME="Counter00062.Path" VALUE="\Server Work Queues(*)\Available Threads"/>
 <PARAM NAME="Counter00063.Path" VALUE="\Server Work Queues(*)\Available Work Items"/>
 <PARAM NAME="Counter00064.Path" VALUE="\Server Work Queues(*)\Queue Length"/>
 <PARAM NAME="Counter00065.Path" VALUE="\Server Work Queues(*)\Total Operations/sec"/>
 <PARAM NAME="Counter00066.Path" VALUE="\Server\Bytes Received/Sec"/>
 <PARAM NAME="Counter00067.Path" VALUE="\Server\Bytes Total/sec"/>
 <PARAM NAME="Counter00068.Path" VALUE="\Server\Bytes Transmitted/Sec"/>
 <PARAM NAME="Counter00069.Path" VALUE="\Server\Files Open"/>
 <PARAM NAME="Counter00070.Path" VALUE="\Server\Files Opened Total"/>
 <PARAM NAME="Counter00071.Path" VALUE="\Server\Pool Nonpaged Bytes"/>
 <PARAM NAME="Counter00072.Path" VALUE="\Server\Pool Nonpaged Failures"/>
 <PARAM NAME="Counter00073.Path" VALUE="\Server\Pool Nonpaged Peak"/>
 <PARAM NAME="Counter00074.Path" VALUE="\Server\Pool Paged Bytes"/>
 <PARAM NAME="Counter00075.Path" VALUE="\Server\Pool Paged Failures"/>
 <PARAM NAME="Counter00076.Path" VALUE="\Server\Pool Paged Peak"/>
 <PARAM NAME="Counter00077.Path" VALUE="\Server\Server Sessions"/>
 <PARAM NAME="Counter00078.Path" VALUE="\SQLServer:Access Methods\Page Splits/sec"/>
 <PARAM NAME="Counter00079.Path" VALUE="\SQLServer:Buffer Manager\Checkpoint pages/sec"/>
 <PARAM NAME="Counter00080.Path" VALUE="\SQLServer:Buffer Manager\Database pages"/>
 <PARAM NAME="Counter00081.Path" VALUE="\SQLServer:Buffer Manager\Lazy writes/sec"/>
 <PARAM NAME="Counter00082.Path" VALUE="\SQLServer:Buffer Manager\Page life expectancy"/>
 <PARAM NAME="Counter00083.Path" VALUE="\SQLServer:Buffer Manager\Page reads/sec"/>
 <PARAM NAME="Counter00084.Path" VALUE="\SQLServer:Buffer Manager\Page writes/sec"/>
 <PARAM NAME="Counter00085.Path" VALUE="\SQLServer:Databases(*)\Log Flushes/sec"/>
 <PARAM NAME="Counter00086.Path" VALUE="\SQLServer:General Statistics\Logins/sec"/>
 <PARAM NAME="Counter00087.Path" VALUE="\SQLServer:General Statistics\Logouts/sec"/>
 <PARAM NAME="Counter00088.Path" VALUE="\SQLServer:General Statistics\User Connections"/>
 <PARAM NAME="Counter00089.Path" VALUE="\SQLServer:Latches\Average Latch Wait Time (ms)"/>
 <PARAM NAME="Counter00090.Path" VALUE="\SQLServer:Latches\Latch Waits/sec"/>
 <PARAM NAME="Counter00091.Path" VALUE="\SQLServer:Latches\Total Latch Wait Time (ms)"/>
 <PARAM NAME="Counter00092.Path" VALUE="\SQLServer:Locks(*)\Average Wait Time (ms)"/>
 <PARAM NAME="Counter00093.Path" VALUE="\SQLServer:Locks(*)\Lock Requests/sec"/>
 <PARAM NAME="Counter00094.Path" VALUE="\SQLServer:Locks(*)\Lock Wait Time (ms)"/>
 <PARAM NAME="Counter00095.Path" VALUE="\SQLServer:Locks(*)\Number of Deadlocks/sec"/>
 <PARAM NAME="Counter00096.Path" VALUE="\SQLServer:Memory Manager\Connection Memory (KB)"/>
 <PARAM NAME="Counter00097.Path" VALUE="\SQLServer:Memory Manager\Granted Workspace Memory (KB)"/>
 <PARAM NAME="Counter00098.Path" VALUE="\SQLServer:Memory Manager\Lock Memory (KB)"/>
 <PARAM NAME="Counter00099.Path" VALUE="\SQLServer:Memory Manager\Optimizer Memory (KB)"/>
 <PARAM NAME="Counter00100.Path" VALUE="\SQLServer:Memory Manager\SQL Cache Memory (KB)"/>
 <PARAM NAME="Counter00101.Path" VALUE="\SQLServer:Memory Manager\Target Server Memory (KB)"/>
 <PARAM NAME="Counter00102.Path" VALUE="\SQLServer:Memory Manager\Total Server Memory (KB)"/>
 <PARAM NAME="Counter00103.Path" VALUE="\SQLServer:Replication Dist.(*)\Dist:Delivery Latency"/>
 <PARAM NAME="Counter00104.Path" VALUE="\SQLServer:Replication Logreader(*)\Logreader:Delivery Latency"/>
 <PARAM NAME="Counter00105.Path" VALUE="\SQLServer:SQL Statistics\Batch Requests/sec"/>
 <PARAM NAME="Counter00106.Path" VALUE="\SQLServer:SQL Statistics\SQL Compilations/sec"/>
 <PARAM NAME="Counter00107.Path" VALUE="\SQLServer:SQL Statistics\SQL Re-Compilations/sec"/>
 <PARAM NAME="Counter00108.Path" VALUE="\System\Processor Queue Length"/>
 <PARAM NAME="Counter00109.Path" VALUE="\Terminal Services\Active Sessions"/>
 <PARAM NAME="Counter00110.Path" VALUE="\Terminal Services\Inactive Sessions"/>
 <PARAM NAME="Counter00111.Path" VALUE="\Terminal Services\Total Sessions"/>
 <PARAM NAME="Counter00112.Path" VALUE="\Web Service(*)\Bytes Received/sec"/>
 <PARAM NAME="Counter00113.Path" VALUE="\Web Service(*)\Bytes Sent/sec"/>
 <PARAM NAME="Counter00114.Path" VALUE="\Web Service(*)\Bytes Total/sec"/>
 <PARAM NAME="Counter00115.Path" VALUE="\Web Service(*)\Connection Attempts/sec"/>
 <PARAM NAME="Counter00116.Path" VALUE="\Web Service(*)\Current Connections"/>
 <PARAM NAME="Counter00117.Path" VALUE="\Web Service(*)\Files Received/sec"/>
 <PARAM NAME="Counter00118.Path" VALUE="\Web Service(*)\Files Sent/sec"/>
 <PARAM NAME="Counter00119.Path" VALUE="\Web Service(*)\Files/sec"/>
 <PARAM NAME="Counter00120.Path" VALUE="\Web Service(*)\Total Bytes Received"/>
 <PARAM NAME="Counter00121.Path" VALUE="\Web Service(*)\Total Bytes Sent"/>
 <PARAM NAME="Counter00122.Path" VALUE="\Web Service(*)\Total Bytes Transfered"/>
 <PARAM NAME="Counter00123.Path" VALUE="\Web Service(*)\Total Files Received"/>
 <PARAM NAME="Counter00124.Path" VALUE="\Web Service(*)\Total Files Sent"/>
 <PARAM NAME="Counter00125.Path" VALUE="\Web Service(*)\Total Files Transferred"/>
 <PARAM NAME="CounterCount" VALUE="125"/>
 <PARAM NAME="UpdateInterval" VALUE="60"/>
 <PARAM NAME="SampleIntervalUnitType" VALUE="1"/>
 <PARAM NAME="SampleIntervalValue" VALUE="60"/>
</OBJECT>
</BODY>
</HTML> 


Number2 (John Nelson)
MyITForum - Forum Posts
MyITForum - Blog
Add to Google

Published Wednesday, March 26, 2008 1:10 PM by jnelson

Comments

# SMS 2003 Performance - The performance benefits of an x64 DP in a busy SMS 2003 hierarchy

Thursday, March 27, 2008 8:55 PM by Number2 Blog - MyITForum.com

QUICK BACKGROUND Although x64 is officially unsupported in SMS 2003 for any site components, the reality

Powered by Community Server (Commercial Edition), by Telligent Systems