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.
- Save this text file as .html someone on your server.
- Open perfmon and navigate to "Performance Logs & Alerts" --->
"Counter Logs"
- In the right pane, right-click and select "New log settings from..."
- 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

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
