Remember Performance Monitor on your Windows servers

Posted: (EET/GMT+2)

 

From time to time I run into situations where the performance of the solutions customer use is not good enough. Oftentimes, it's a .NET application accessing some kind of database (usually, it's SQL Server), and the combination isn't performing well enough.

In these situations, it's important to get the big picture first, i.e. to gather information about the architecture, networking, hardware, virtualization, disks, and so on. But, you will also need something that you can measure, especially if you are making changes to the system and/or the application.

If, for instance, the database server is a suspect, I usually start by firing up Task Manager on the server. Especially on Windows Server 2012 this gives you a good overview of the performance situation, most notably the CPU and the memory usage.

But, while Task Manager is useful for an overview, the Performance Monitor tool (perfmon.exe) is a much better alternative. It allows you to customize what you want to monitor in a highly detailed fashion, but you can also let it run for a day, and collect the results into an Excel compatible file, such as a CSV file.

In my opinion, Performance Monitor is an underestimated tool, and seems like not that many developers are aware of it. Still, it is part of every Windows installation, and it's most useful on the server systems.

If you haven't before, take a look at this tool. I'm sure it's time well spent.