How to Troubleshoot SQL, Skype, Windows, Active Directory, Exchange and Basic Server issues with one tool! Its called Multi-Perf!



Figure 1. Perfmon

Hello Everyone,

Well Multi-Perf sounds like it will do a lot! I don’t want to mislead anyone, so I will say up front, Yes it will troubleshoot all those products; One at a time. It is an industry Standard, that you only work on one problem at a time. Therefore, This tool will collect performance information, related to one of the topics of concern. Once the log is collected, you can then review it for specific problems, related to your installation.

1Figure Figure 2. Set-Execution Policy

The benefit of this tool, is That I have been fortunate enough to partner with one of my Best Friends; Tommy Paulk. He is a Master Engineer for Exchange Server. My title Is Skype Architect. See where I am going with this? Tommy created the Exchange Counter set. I created the Skype counter set. Each counter set has been created by a professional in their field of study. The bottom line is you get a script that gives you choices on what set of performance information you need.

So the Multi-Perf is run simply as “Multi-Perf  counter”, where the counters are Basic, Active, SQL, EXCH and Skype

0       Figure 3. Multi-Perf and Readme 

Lets go ahead and get started on explaining what you get for your money here. See Figure 1 at the top of this read? That is the result of any counter set; a sort of mix up of settings that you have to get into, dance with, and somehow survive victoriously. The particulars are beyond the scope of this article; but Begin here. No I take that back, I always make the first link, one I would never read myself. Ok, read this one- Windows Perfmon. Its pretty good.

Now that your up to speed, lets get you some instructions! Figure 2 is set-execution policy. You should open your PowerShell as admin, and run this command : Set-Execution Policy –Execution Policy Unrestricted.

Next you just have to know the syntax of the command:

.\Mult-Perf testname –computer mycomputer –instance my instance. Notice the red lines in figure 4? that represents the 3 data points you are responsible for.

0  Figure 4. Mult-Perf Syntax

If you are not using SQL, then you only have 2 items to put  in!. If you are running on the local computer, you only have to put the test name in! If you forget the test name, you automatically get the Basic counter pack.

So this means this tool will work, regardless of input. You wont get the detail you want, but you get a basic counter log, at a minimum. Let me now give you some example of running syntax.

Figure 5. Run Active test on computer 2

See above, you use the form: .\Program testname –computer computername

If you forget the computer name, it will automatically select the local computer:


Figure 6. Run as Program .\Multi-Perf.ps1 only


in this case you will have no difference in result, because you are giving the most important test variable in, the test type.


Figure 7. with SQL; If you forget to specify the instance, you will get another chance to put it in. 3

If you put the instance in, then that is fine. But if you did not, there is no penalty. This makes the Log tool, infallible and easy to use.

As the last example, I will take you over the case where a person starts the SQL trace, and does not input the Instance:


0   Figure A. No instance specified.  


Instead of failing, The Script looks up the SQL instances, and presents them for the customer. It also says the user must type the instance name themselves, so there is no accident.

1    Figure B

Once the user types in the instance in Figure B, we move to Figure C and we just ask how many seconds between snapshots. 1-60 is best.

2  Figure C


Finally, With Figure D, we are just asking for an Enter, to go ahead and create the counter object. Upon hitting enter, The confirmation that the Counter perfmon is started.

3    Figure D

Finally, with Figure E, you see performance counter is stated. As long as that is the end result, The interceding Steps were all successful. You can see the fruits of your labor in Figure F, which is the running Performance monitor!!


4    Figure E


Figure F is start-> run-> Perfmon

Untitled Figure F Permon running. Always called Perf.


The counter that is created is always called Perf. It will always deleted the old one before another one is created. If you want to keep the old one, just rename it.


Ok if you made it this far, you must want your copy. Please have it and go in Peace!

Download Me Here







Storport.sys trace to find out if the storage or the server has a latency issue. Performance Server

Also Titled, How to find out if the server is slow because of the server or the storage.

This is the fastest way I could find to get the Storport.sys collected and analyzed. It is quazi automated and should not be too challenging to complete. There are some requirements:

Create Storport Trace

  • Have 2008 R2 or 2012 Server or 2012 R2.
  • Have this link to collect the storport trace.
  • Clear the cache and run your trace with the counter job running.
  • Stop the job after the data is completed its transfer.
  • Use Event Viewer to save and extract the logs to an etl file.

Analyze Storport trace

  • Download and Install the Windows 8 ADK- Windows Assessment and deployment kit
  • Install XPERF from the ADK
  • Convert the ETL file to a CSV with the command in the folder- C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\Xperf –I storport.etl > storport.csv
  • Add Power Pivot as a COM add in to your Excel in Office
  • Download the contents of storportPACMAN and unzip to c:\storeportPACMAN
  • Place the ETL into the c:\storportPACMAN folder. name it storport.etl (important)
  • There is a powershell script named storportPACMAN.ps1 in the c:\storeportPACMAN folder. Run it.

In about 5-7 minutes, or longer, depending on the size of the original file, you will have a nicely organized report on the storport latency. I posted the source Link here to let you see the original source of the zip file and script. This script and excel template saves me from the terrible task of going through 55 meg of data, looking for a needle in a hay stack. This it a highly recommended way to get some decent storport results with ICSI connections only.

In conclusion, this tool will give you a number. if your number is higher then this, then your server has an issue getting writes or reads to the storage sub-system

<  9ms = excellent
< 15ms = good
< 25ms = fair
> 25ms = poor

This post looks somewhat boaring with no pictures and graphs to look at, but I promise you the storport trace results has a nice graphical view that should take away your doubt as to if the storport is the issue. If there are latencies here at this level, it is likely the server has an issue with the storage, in some way. If this checks out, then your looking at the Storage as the bottleneck.

Thank you