Perfstat for Windows GUI

by Frequent Contributor ‎2013-06-18 11:55 AM - edited ‎2015-08-31 03:38 PM

Perfstat 8.3 is now available at which now includes a GUI.  Therefore, I no longer plan on updating this tool on this page.


Attached you will find the GUI  (PerfstatGUI.hta).  Simply launch it on any Windows machine you wish to run Perfstat on.  There is a basic read me when you first launch the tool (also attached here is a PDF of the entire Perfstat GUI Read Me).  In addition there is attached PerfstatScriptTemplate.vbs which is a template for a script that can be ran outside the GUI (i.e. through a scheduled task).  If you wish to use the script, select the option "Create Script Only" under the perfstat options in the PerfstatGUI tool and you will be provided instructions on how to use the template.


Current Versions:


August 31, 2015 Update Version 2.6

-Corrected the time Time Between Iterations field to reflect setting is in seconds for Perfstat 8



August 31, 2015 Update Version 1.2

-Added several enhancements for a better experience


All previous update notes are included in the files.  Just open in notepad if you wish to read through the updates.


Please post all comments and suggestions for improvements here.


Getting the following errror: 1-27-2014 1-56-02 PM.png

Frequent Contributor


Thanks for the feedback!  That particular line it calls out looks at the contents of a zip file (depending upon where you were in the process either the or one of the perfstat*.zip files).  A couple of quick thoughts.  Can you check if you have the patch described in this article:  Can you manually unzip the .zip file and if so does it use the built in Windows zip tools?  Any chance compressed folders are disabled like here:

When it looks for the perfstat zip, does it look for just the name, or or does it try to look for a file called perfstat with the ext of .zip?

Frequent Contributor

Ahh - perfect question!  So first it looks for either perfstat.exe or perfstat8.exe and if not found it looks for either perfstat7* or perfstat8* but I realize it could find another file similarly named that doesn't have a .zip extension that it might try to extract.  I'll change that in the code.  Is that perhaps what's happening here, a different file matching one of those patterns?  Thanks much for the feedback as well, it is certainly helpful to knock out these problems.

OK that makes sense and answered my question. With the perfstat release date being presented in the file name (i.e. ) I wasn't sure if the script is adaptable to look for the file with that information. I thought that might be the problem that was occurring, but with your last reply it seems you factored that in. Currently I have two zip files located with the .hta directory. OpenSSH and perfstat7. Not sure what else could be causing it minus maybe going in and unblocking the zip folder which I completely forgot to do as well. I'll run the test today now that I've unlocked the files and see if that doesn't resolve the issue.

New Contributor

Hi Tim

I just spotted that the openssh link ( ) in your readme PDF is non existent anymore.

Frequent Contributor

Nice find Patrick!  Short story, I've got it fixed now.  Longer story, I'm working through the read me and about 3/4 of the way through I realize I've been a little lazy and sometimes capitalized the P in Perfstat and sometimes I didn't.  So I did a global search and replace.  Well, that also replaced it in the links which clobbered our case-sensitive URLs on the support site.  I went through and updated them all now correctly.  The only trouble you might have is the link for plink.  The link is correct but there are some versions of Adobe Reader that don't know what to do with a URL with a tilde character in it and seemingly just freeze up on that link.

Frequent Contributor

Just a general note on compatibility.  If you are seeing either of these errors:

"ssh-keygen.exe is not a valid Win32 application"

"0 [main] 3360 find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer"

It is likely due to a compatibility of the version of OpenSSH from our support site and your particular version of Windows.  There are other versions of OpenSSH built for Windows 64-bit available.  Obviously I am unable to recommend or provide warranty for any products outside of NetApp control - there is one such build available here:

Hi just installed this software on one of our production servers. The utility has a major flaw in it.

When you run to copy ssh keys to the filer. It does 2 things wrong?

1. It moves the authorized_keys to a backup. It should be doing a copy of the file before it write the keys into it. This is oversite and certain not good programming style.

2. It need to check to see if the user exists on the filer. It makes no assumption that I may have already setup keys already on it.

Even if I correct the item #1. It still does not work and does not allow me to get perfstat at all.

I don't know why this should work even on CLI on a stupid windows platform.

Can you please share us a video of the whole process which will help for the beginners aswell to do better with your tool.


Frequent Contributor

Great suggestion!  I'll get working on that.  I'm finishing up another project so might take some time, but will definitely do it.


Suggestion for all involved. Perfstat 8.3 GUI (not CLI) works well with Clustered ONTAP, but not quite with 7-mode. The CLI version works and is a tad easier to set up, but I would recommend using this GUI for ONTAP 7-mode. Because the site doesn't allow .hta extensions, download the file and rename the hta.txt to .hta.


There are a few major issues with this tool and customer usage results.


This tool provides links to perfstat 8.1, 2 versions old, about to be 3, it points here:


This link can't remain while keeping this available for customer usage. There will be a new link going live soon that can staticly link to the current version of perfstat 8


The tool also implies that running perfstat 8 against 7-mode is recommended or at least OK, and gives the customer an option to do so. We are trying to completly get away from perfstat 8 for 7-mode for support cases.


With the availabilty to use the offical gPerfstat GUI for all perfstat 8 collections, I request we remove the ability to run perfstat 8 from this tool and make it a 7-mode only tool. This will resolve the current issues and future issues.


Unable to run on Mac. App fails to start.


/Users/shashidhar/Downloads/gPerfstat_20150514_2838766_MacOS/gPerfstat ; exit;

feelcollege-lm:~ shashidhar$ /Users/shashidhar/Downloads/gPerfstat_20150514_2838766_MacOS/gPerfstat ; exit;

2017-04-03 14:10:00.098 gPerfstat[58844:10596733] -[NSApplication runModalSession:] may only be invoked from the main thread. Behavior on other threads is undefined. (

0   AppKit                              0x00007fffd3c8e603 -[NSApplication runModalSession:] + 200

1   libwx_osx_cocoau-    0x00000001109d7c02 _ZN14wxGUIEventLoop17DoDispatchTimeoutEm + 82

2   libwx_osx_cocoau-    0x00000001108a5702 _ZN13wxCFEventLoop15DispatchTimeoutEm + 34

3   libwx_osx_cocoau-    0x00000001108a5218 _ZN13wxCFEventLoop8OSXDoRunEv + 24

4   libwx_osx_cocoau-    0x00000001109d9436 _ZN16wxModalEventLoop8OSXDoRunEv + 102

5   libwx_osx_cocoau-    0x00000001108a565f _ZN13wxCFEventLoop5DoRunEv + 31

6   libwx_osx_cocoau-    0x00000001107ddd51 _ZN15wxEventLoopBase3RunEv + 65

7   libwx_osx_cocoau-    0x00000001109129c5 _ZN8wxDialog9ShowModalEv + 133

8                     0x0000000111bb7066 _wrap_Dialog_ShowModal + 102

9   Python                              0x000000010dac819d PyEval_EvalFrameEx + 12783

10  Python                              0x000000010dac4d7a PyEval_EvalCodeEx + 1409

11  Python                              0x000000010dacb59d fast_function + 117

12  Python                              0x000000010dac8400 PyEval_EvalFrameEx + 13394

13  Python                              0x000000010dacb62e fast_function + 262

14  Python                              0x000000010dac8400 PyEval_EvalFrameEx + 13394

15  Python                              0x000000010dac4d7a PyEval_EvalCodeEx + 1409

16  Python                              0x000000010da691ae function_call + 350

17  Python                              0x000000010da4b0ea PyObject_Call + 99

18  Python                              0x000000010dac797b PyEval_EvalFrameEx + 10701

19  Python                              0x000000010dacb62e fast_function + 262

20  Python                              0x000000010dac8400 PyEval_EvalFrameEx + 13394

21  Python                              0x000000010dacb62e fast_function + 262

22  Python                              0x000000010dac8400 PyEval_EvalFrameEx + 13394

23  Python                              0x000000010dac4d7a PyEval_EvalCodeEx + 1409

24  Python                              0x000000010da691ae function_call + 350

25  Python                              0x000000010da4b0ea PyObject_Call + 99

26  Python                              0x000000010da55ed7 instancemethod_call + 174

27  Python                              0x000000010da4b0ea PyObject_Call + 99

28  Python                              0x000000010dacad8b PyEval_CallObjectWithKeywords + 93

29  Python                              0x000000010daf79ba t_bootstrap + 70

30  libsystem_pthread.dylib             0x00007fffeb53aaab _pthread_body + 180

31  libsystem_pthread.dylib             0x00007fffeb53a9f7 _pthread_body + 0

32  libsystem_pthread.dylib             0x00007fffeb53a1fd thread_start + 13


2017-04-03 14:10:01.370 gPerfstat[58844:10596712] *** Assertion failure in -[wxNSApplication run], /Library/Caches/

2017-04-03 14:10:01.407 gPerfstat[58844:10596712] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSApp with wrong _running count'

*** First throw call stack:


0   CoreFoundation                      0x00007fffd5db00db __exceptionPreprocess + 171

1   libobjc.A.dylib                     0x00007fffeaa41a2a objc_exception_throw + 48

2   CoreFoundation                      0x00007fffd5db4c32 +[NSException raise:format:arguments:] + 98

3   Foundation                          0x00007fffd781dd50 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195

4   AppKit                              0x00007fffd384bd6c -[NSApplication run] + 469

5   libwx_osx_cocoau-    0x00000001109d8148 _ZN14wxGUIEventLoop8OSXDoRunEv + 248

6   libwx_osx_cocoau-    0x00000001108a565f _ZN13wxCFEventLoop5DoRunEv + 31

7   libwx_osx_cocoau-    0x00000001107ddd51 _ZN15wxEventLoopBase3RunEv + 65

8   libwx_osx_cocoau-    0x00000001107a3557 _ZN16wxAppConsoleBase8MainLoopEv + 103

9                        0x000000010fd9649c _ZN7wxPyApp8MainLoopEv + 76

10                        0x000000010fde0daf _wrap_PyApp_MainLoop + 79

11  Python                              0x000000010dac819d PyEval_EvalFrameEx + 12783

12  Python                              0x000000010dac4d7a PyEval_EvalCodeEx + 1409

13  Python                              0x000000010da691ae function_call + 350

14  Python                              0x000000010da4b0ea PyObject_Call + 99

15  Python                              0x000000010da55ed7 instancemethod_call + 174

16  Python                              0x000000010da4b0ea PyObject_Call + 99

17  Python                              0x000000010dac7bd2 PyEval_EvalFrameEx + 11300

18  Python                              0x000000010dacb62e fast_function + 262

19  Python                              0x000000010dac8400 PyEval_EvalFrameEx + 13394

20  Python                              0x000000010dac4d7a PyEval_EvalCodeEx + 1409

21  Python                              0x000000010dac47f3 PyEval_EvalCode + 54

22  Python                              0x000000010dae48a2 run_mod + 53

23  Python                              0x000000010dae4a5f PyRun_StringFlags + 109

24  Python                              0x000000010dae49b3 PyRun_SimpleStringFlags + 69

25  gPerfstat                           0x000000010d14db2c gPerfstat + 6956

26  gPerfstat                           0x000000010d161b78 gPerfstat + 88952

27  gPerfstat                           0x000000010d14d454 gPerfstat + 5204


libc++abi.dylib: terminating with uncaught exception of type NSException

Abort trap: 6


Saving session...

...copying shared history...

...saving history...truncating history files...



[Process completed]



Hi. That is a bug with the gperfstat 8.4. If you are having problems, please open a Support case for further review.






He isnt using perfstat 8.4 but which BUG are you refering to?






You are using perfstat 8.3 (gPerfstat_20150514_2838766_MacOS)


There have been 2 revsions released since. Please use perfstat 8.4



The current version of the GUI for Mac OS X only works in OS X 10.11.6+, othereise it will fail to run. If you are trying to run on a previous version of OS X the command line version will work, you can run it by accessing the perfstat8_mac binary in the "/bin" folder of the extracted download.


no setup required, you can just run: (3 iterations at 5 minutes)

./perfstat8_mac --verbose <cluster_mgmt_ip> -t 5 -i 3 --mode="c" -z



Instructions for GUI (any OS)


Instructions for CLI (can use for OS X)



Also here is a KB referencing all versions of all OS's:


Hope this helps..




I apologize. Dan is correct. My reply was incorrectly worded. I meant to say "it looks like it could be a bug or config issue and it's with the gperfstat8, not this particular GUI, so a Support case would probably be the best place to review from here." Sorry for the confusion.


This NetApp Community is public and open website that is indexed by search engines such as Google. Participation in the NetApp Community is voluntary. All content posted on the NetApp Community is publicly viewable and available. This includes the rich text editor which is not encrypted for https.

In accordance to our Code of Conduct and Community Terms of Use DO NOT post or attach the following:

  • Software files (compressed or uncompressed)
  • Files that require an End User License Agreement (EULA)
  • Confidential information
  • Personal data you do not want publicly available
  • Another’s personally identifiable information
  • Copyrighted materials without the permission of the copyright owner

Files and content that do not abide by the Community Terms of Use or Code of Conduct will be removed. Continued non-compliance may result in NetApp Community account restrictions or termination.