SQL Server Monitoring – Get CPU, Memory, Network Usage

powershellsql serversqlcmd

For reporting purposes, I want to get SQL Server box CPU, memory, network (not SQL Server process alone) and show it in report. Do you have any idea how to pull this? My initial thoughts are run wmi queries through task scheduler to get the data every 15 minutes and insert into database table and use it in reports

My report format will be like below

Server name:
CPU usage
Memory usage
Network usage
Disk space usage:

My questions:

  1. can this be done in any,other way other than wmi/power shell
  2. I will also need to get web servers data
  3. will you be able to give one sample query for one server.

Best Answer

If you are running SQL Server 2008 and up, then you can use Performance Data Collector on SQL Server. This will get you all the metrics (and even more) that you need.

Below is from my TEST server :

enter image description here

If you want for webserver, then your best bet is to use Powershell. Even you can generate nice reports with charts out of your collection.