Output Perfmon's "Resource Monitor" Disk processes and details to a file -- Windows Server 2008

Posted on 2011-09-14
Last Modified: 2012-05-12
I am trying to output to a file the data underneath the "Disk" segment of the "Resource Overview"/"Resource Monitor" box in Performance and Reliability monitor(perfmon). To bring it up to see what I mean, simply type:
perfmon /res
or just "perfmon"
in CMD.

I've been told that the Data Collector Sets have the potential to do it, but I can't find further information on how it can do that and I can't find anything after hours of playing with it. Specifics appreciated.

Basically, I want to output to a file the list of files/processes under the "Disk" segment, along with the "File", the "Read" amount, and the "Write" amount.

Help regarding this greatly greatly appreciated.

Question by:weblocked
  • 5
  • 4
LVL 50

Expert Comment

by:Steve Bink
ID: 36545059
In Performance Monitor, navigate the Data Collector Sets tree to find the set you want to start.  Right-click and select "Properties".  The "Directory" tab is what you are looking for.

Author Comment

ID: 36545461
The "Resource Overview"/"Resource Monitor" box is not a set under the tree. The tree just has items like system performance, and system overview which is just getting general server info like disk queue. As mentioned, I want a list of files/processes and how much they are reading/writing written to a file and no existing set has this. I understand that creating a set can do this for me, but I can't identify the steps to make a set properly for this. I've only found ways to make sets to include numerical items like disk queue.

LVL 50

Expert Comment

by:Steve Bink
ID: 36546041
I'm not sure what issues you are encountering.  I create a new data collector set, add the counters, and let it run.  Once I stop it, I see the a new listing in Reports.  I view the report, and I see all the counters I selected.  The log file is saved (by default to %SYSTEMDRIVE%\Perflogs) for reference.  If you want process-specific information, look under the "Process" category when adding the counters.
LVL 50

Expert Comment

by:Steve Bink
ID: 36546179
OK...brief tutorial.

In Perfmon, right-click "Data Collector Sets -> User Defined" and select "New -> Data Collector Set":

 Start a new data collector
Give it a name, and select "Create manually":

 Give it a name, and use manual creation
You want to create a data log, capturing "Performance Counter" data:

 Capture Performance Counter Data
Hit "Next", and you will be asked what counters to include and the sample rate.  I set my sample rate to "1" in the example.  Click the "Add" button to add a counter:

 Click "Add" to add a counter
In the add counter dialog, select the "Process" category of counters.  Each counter type will display a list of processes under the instances box.  In the image below, I have redacted the names of my processes.  Alternatively, you can select _Total or All.  Highlight the specific process counter you want to include, select the process you want, and click the "Add" button.  The counter should appear in the big list box to the right.

 Adding a counter
At this point, you can finish configuring the new set.  After you are done adding counters, the next two screens ask where you want to save the file, and under what account the trace should run.  Once the set is saved, you will see the new set in your tree in the main perfmon window:

 The new data set, and its matching report
Highlight the new dataset in the menu tree, then click the "Start" button in the menu bar.  The trace should start collecting data.  Once you are done, hit the stop button.  There will be a delay (length depending on the amount of data) as the report is generated.  Once it is done, you can select the report from the tree and view the results.  Alternatively, you can transfer the file to another computer for analysis.

You can also schedule your data set to run at specific times, or under specific conditions, but that would be a lot more pictures.
Will my email signature work in Office 365?

You've built an email signature using raw HTML code in Office 365, but you can't review how it looks with Transport Rules. So you have to test it over and over again before it can be used. Isn't this a bit of a waste of your time? Wouldn't a WYSIWYG editor make it a lot easier?


Author Comment

ID: 36548176

I've done this. And, assuming I did it correctly, the result is a line graph of the counter. I want a list of processes like this:
Image -- File -- Read B/min -- Write B/min

In any sort of format, I don't care about the format. But it seems like these counters are giving me stats on the processes all together, instead of individual processes.

What I want is the data shown under "Disk" on the bottom right of this screenshot:

 resources -- disk
Except in a file.

LVL 50

Expert Comment

by:Steve Bink
ID: 36551296
The procedure I outlined above will give you the report, as drawn from the file.  Look in the directory you specified during the collector set creation to find the file.

Author Comment

ID: 36551548
Hello routinet,

I see what you mean. When I switch the output type to comma delimited, I can get a text file out of it.

However, the output does not output to me the file name they are reading/writing to when I choose the disk IO items under Process. That is the most important part to me, because, for example,  I have a few hundred processes called w3wp, if I don't know what they are writing/reading to/from then its useless for me.

I hope you see what I mean and have a solution.
LVL 50

Accepted Solution

Steve Bink earned 500 total points
ID: 36551739
All IIS worker processes are under w3wp, and you'll need to manually map them back to their PID per site.  In IIS6, there is a utility called iisapp.vbs that maps for you and prints to stdout.  I'm not sure if something like that exists in IIS7, or even if it would be necessary.  The information you want may be exposed in the metabase, or through the MMC.

If you want the filename each process is accessing, perfmon might not be what you need.  You might want to take a look at procmon instead.  

Author Closing Comment

ID: 36559059
Well, then I guess the answer is that its not possible directly via the perfmon events. I'll look into other options. Thanks so far.

Featured Post

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Normally after a failure of Domain Controller, when promoting new DC the DC is renamed, we will discuss the options in Dcpromo to re-create the DC with the same name. Scenario: You are a small IT shop with two Domain Controllers (Domain Contr…
The recent Microsoft changes on update philosophy for Windows pre-10 and their impact on existing WSUS implementations.
This tutorial will give a short introduction and overview of Backup Exec 2012 and how to navigate and perform basic functions. Click on the Backup Exec button in the upper left corner. From here, are global settings for the application such as conne…
This tutorial will walk an individual through the steps necessary to enable the VMware\Hyper-V licensed feature of Backup Exec 2012. In addition, how to add a VMware server and configure a backup job. The first step is to acquire the necessary licen…

937 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

4 Experts available now in Live!

Get 1:1 Help Now