If you experience any performance issues with your Netapp storage system there is a 100% chance that Netapp support will ask you to collect a perfstat while you are experiencing the issue.
Sometimes this can be hard to capture as the problem may be intermittent, however there are quite a few options (such as the schedule option) that give us a greater chance of capturing the data while the issue is happening.
Netapp provides perfstat as a free tool and can be downloaded from: http://mysupport.netapp.com/NOW/download/tools/perfstat/
Netapp Perfstat GUI
The newer versions of Perfstat provide you with a nice GUI interface that makes selecting the perfstat options very easy:
Netapp Perfstat CLI
Perfstat also has a CLI option that can be run from a command line. Below is an example of running a perfstat for a cluster mode system. It will capture 3 iterations with 300 seconds between each iteration. Each iteration will run for 5 minutes.
Here are the command line switches available for perfstat:
-h –help To see a complete detailed usage
-v –version Prints perfstat version, and supported ONTAP versions.
-q –quiet Suppress all non-error messages
–verbose Increase verbosity (beware: prints all command executions)
–debug Beware verbose output. Both ‘verbose’ and ‘debug’ will add client-side timestamps.
–preset-file Use a different preset file.
–print-preset Prints the internal preset file.
-o –output-file Use a different output file name. (default: “perfstat_data_yyyymmdd_hhmmss.zip”).
–sshprivatekey-file SSH private key filename for perfstat user.
–sample-interval Specifies statit/sysstat frequency.
–config-all captures config information in every iteration. (default: CONFIG info is captured only during the first iteration).
-t –time sample time in minutes, per iteration. (default: 2 minutes).
-i –iteration=N[,M] repeat N times with M seconds between samples. (default: N=1, M=0)..
-n –nodes=N1[,N2,N3,..] node names to collect from. (defaults to all nodes).
–max-run-time Maximum Perfstat runtime in minutes.
–full-stutter-statit Split entire time (-t) into all stutter statit collections.
–no-stutter-statit Disable ‘stuttered’ statit commands.
–enable-flag=PATTERN Enables data collection for specified flags. (default: All flags are disabled. Command with !
–unzip=FILE Unzips the specified file.
–include=PATTERN Includes *only* commands matching PATTERN, and excludes everything else.
–exclude=PATTERN Excludes commands matching PATTERN, and includes everything else.
-H –hosts=H1:username:passWord[,H2:userName:passWord,H3:passWord,..]Remote host names to collect from.
-m –mode=[7-mode/cluster-mode/cluster/c] Specify the mode for the target filers (default: 7-mode).
-z –FILER_ONLY Specify the flag to capture information from controller(s) only (default: Host and controller(s)
-s –SSH How the 7-mode parallel commands should be executed, using SSH or RSH. (default: RSH)
-r –MODULE_INST =ID1[ID2,ID3..]Capture RAS trace for the instances of pre-configured modules(default: instance-id 1)
-p –PROFILES=[kahuna,flat,storage,(more)]Capture MP Domain profiles from filers
-l –login controller login user in 7-mode [ default: root ]
-a –app_name Name of the application for which data to be collected on host side.
-w –app_args List of parameters for the application data collection on host side.
-S –switch Collect the data from target switches.The format should
-L –log Collect back up log information
–LEGACY_MODE Collects output in Legacy Mode. This option work only for 7-mode. In Legacy mode, Systemshell and S
–diag-passwd diag (systemshell) password. Format should be
–stats-format Parse stats stop command output
–mcc Metro Cluster support
–SSHKey-passPhrase SSHKey file password. Passpharse used to encrypt the private key file.
–SSHKnownHosts-FilePathOption is vaild in-case OpenSSH flag set. Otherwise sliently Ignored. Deafult path to look into k
-R –maxRetries Default Retries count are 100. Each Retry take around 3 seconds. Chang in maximum retries count inc minutes(3*100 seconds) timeout with the controller.
-C –Clean-Up Clean up output uncompressed directory from local host and perfstat user from controller.
–vol_db Collect the waffi_id for each volume under each node.
-g Collects data using OPENSSH
–iter-wafl-cpstats Enable collection of multiple samples of ” wafl cpstats ” command output over the sampling period.