Link to home
Create AccountLog in
Avatar of SooHow Cheng
SooHow ChengFlag for Singapore

asked on

How to create a performance report for the MS Windows servers?

This is using MS Windows Server 2019. We want to have the server performance details on the CPU, RAM, and Drives. Please see the list of performance statistics as follows,

   1. % Processor Time (All instances)

   2.  Memory - Available Mbytes

   3.  Memory - Committed Bytes

   4.  LogicalDisk(C:) - Free Megabytes

   5.  LogicalDisk(D:) - Free Megabytes


I know that using ms performance monitoring can see the "instant" performance. But, we want to have the weekly and monthly performance statistics. How should we compile to get the above performance in reports?


Thanks in advance


Avatar of David H.H.Lee
David H.H.Lee
Flag of Malaysia image

..I know that using ms performance monitoring can see the "instant" performance. But, we want to have the weekly and monthly performance statistics. How should we compile to get the above performance in reports?

To create a performance report for MS Windows servers, you can use the built-in Windows Performance Monitor tool. Follow these steps to create a report:


1. Open the Performance Monitor by typing "perfmon" in the search bar and selecting the "Performance Monitor" option.


2. In the Performance Monitor window, right-click on the "Performance Monitor" item in the left-hand pane, and select "New Data Collector Set".


3. In the "New Data Collector Set" wizard, give the collector set a name, and select "Create manually (Advanced)".


4. In the "Create a new data collector set" dialog box, select "Performance counter" and click "Next".


5. In the "Add Counters" dialog box, select the appropriate counters from the list. In this case, you would select the following counters:


Processor -> % Processor Time (All instances)

Memory -> Available Mbytes

Memory -> Committed Bytes

LogicalDisk -> Free Megabytes -> C:

LogicalDisk -> Free Megabytes -> D:


6. Once you have added the appropriate counters, click "Next", and then specify the location where you want to save the report files. Click "Finish" to create the data collector set.


7. To start collecting data, right-click on the new data collector set in the left-hand pane and select "Start".


8. After a few days or weeks of collecting data, right-click on the data collector set and select "Stop". The data will be saved to the location you specified earlier.


9. To view the performance report, open the Performance Monitor again, right-click on the data collector set, and select "Reports -> User Defined -> [name of your data collector set]". This will generate a report that contains the data collected by the data collector set.


10. You can customize the data collector set to collect data at specific intervals, and also specify how long you want to collect data for. This will allow you to generate performance reports for different time periods, such as weekly or monthly.

From https://www.ipswitch.com/blog/windows-performance-counters-getting-started


PowerShell Performance Counters

Using PowerShell's Get-Counter cmdlet, an administrator can query this data and build alerts, various triggers or output the data in just about any way she wants. Let's hook into these three performance counters we just went over above but this time with PowerShell.

As I mentioned, I'll use the Get-Counter cmdlet to continuously get at the exact same information that Performance Counter was polling.

We just use www.liveoptics.com as it's free and easy to set up then get reports from.


EDIT: If you are looking for a more permanent solution then Grafana, Telegraf, and InfluxDB.


EDIT2: WAC - Windows Admin Centre 

Avatar of SooHow Cheng

ASKER

Hi David,

Sorry for the delay. Give me some time to go through all steps and I will get back to you sooner.
Hi serialband,

PowerShell is great. Let's me check how "feasible" in using it. I will get back to you ASAP.
Hi Philip,

We are not allowed to install any software, especially 3rd-party one on our server. So we won't consider to use any of these software.
Hi all,

How about using powershell to get the results of the mentioned 5 performance counters?

Follow that link I gave.  It has the get-Counter -listSet * command to generate the different counter lists you can use.


If you want to limit them,

get-Counter -listSet processor
get-Counter -listSet memory

Open in new window

Then find the counter you want

get-Counter -Counter '\processor(_total)\% processor time'
get-Counter -Counter '\memory\Available Bytes'
get-Counter -Counter '\memory\Committed Bytes

Open in new window

To get the Disk Volume

get-Volume

Open in new window


Or if you wish to be more specify

get-Volume -DriveLetter C
get-Volume -DriveLetter D

Open in new window

Or even limit more columns

get-Volume -DriveLetter C |selectObject -Property DriveLetter,SizeRemaining
get-Volume -DriveLetter D |selectObject -Property DriveLetter,SizeRemaining 

Open in new window


Hi serialband,

Give me some time to play around with the commands. I will come back to you.
ASKER CERTIFIED SOLUTION
Avatar of SooHow Cheng
SooHow Cheng
Flag of Singapore image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account