NetApp perfstat analysis is a four-step diagnostic loop: collect a timed perfstat capture during the problem window, correlate its GMT timestamps against the user-reported slowdown, then read three counter sections in order — disk (ut% and xfers), network (bytes/sec and errors), and CPU (idle%) — to isolate which subsystem is the bottleneck. On a 7-Mode filer, roughly speaking, an aggregate averaging over 50% disk utilization, an interface near its line rate, or CPU idle below 50% each point at a different culprit, and perfstat's job is to tell you which one is real.
That is the summary an AI Overview can give you. What it can't show you is the actual decision path an experienced storage engineer walks — which section to open first, what numbers separate "normal" from "degraded" for each disk type, and how to tell a genuine bottleneck from a single hot disk. Below is that path as an animated flow, a copy-ready checklist, the real column layouts you will search for, and a symptom-to-fix table you can work top to bottom.
The analysis checklist
Work this list top to bottom — it mirrors the flow above and keeps you from jumping straight to CPU (the least likely culprit):
- Capture ran during the actual slowdown, not after it cleared
- All 6 iterations present in the perfstat.out file
- GMT timestamps converted to local time and matched to the incident
- Disk: average ut% across the aggregate calculated (not one hot disk)
- Disk: summed xfers compared against the aggregate's IOPS ceiling
- Network: error / collision / packet-drop columns confirmed at zero
- Network: bytes/sec checked against the interface line rate
- CPU: idle% read across all 6 iterations, not a single sample
- Both controllers analyzed if this is an HA pair
- Findings documented as a baseline for next time
Collecting Perfstat Data
Before you can analyze performance data, you need to collect it properly during the time when performance issues are occurring. The perfstat utility must be downloaded from NetApp's support site and executed with the correct parameters to gather meaningful data.
Perfstat Collection Command
# Basic perfstat collection command
perfstat -f [hostname] -t 5 -i 1,6 -l [username]:[password] > C:\perfstat.out
# Example with actual values
perfstat -f nas01.company.com -t 5 -i 1,6 -l admin:password123 > C:\perfstat.out
This command collects six 5-minute perfstat samples with 1-minute intervals between each collection. The parameters ensure comprehensive data collection:
-
-f [hostname]: Target NetApp filer hostname or IP address
-
-t 5: 5-minute collection interval (recommended by NetApp support)
-
-i 1,6: 1-minute pause between 6 iterations
-
-l [credentials]: Username and password for authentication
Important: Keep the collection interval (-t value) relatively short. NetApp support recommends avoiding excessively long iterations as they can produce skewed results that don't accurately reflect system behavior.
Analyzing CPU Performance
CPU bottlenecks can significantly impact storage system performance. The CPU Statistics section in perfstat provides detailed information about processor utilization and can help you determine if CPU constraints are affecting your storage operations.
Locating CPU Statistics
To find CPU performance data in your perfstat file, search for "CPU Statistics" using your text editor's search function (Ctrl+F in most editors). Once located, look for the timestamp to understand when this sample was collected.
Time Zone Note: NetApp timestamps are in GMT. Remember to convert to your local time zone when correlating perfstat data with user-reported issues or other system logs.
Key CPU Metrics to Monitor
The most critical metric in the CPU Statistics section is the idle time percentage. This indicates what percentage of time the CPU spends waiting for work, which inversely shows CPU utilization:
-
High idle time (90-95%): CPU utilization is low (5-10%), no CPU bottleneck
-
Medium idle time (70-80%): Moderate CPU usage (20-30%), monitor closely
-
Low idle time (below 50%): High CPU utilization (above 50%), potential bottleneck
Analyzing Multiple CPU Samples
Since our collection command gathered 6 iterations, you'll find 6 separate CPU Statistics sections in your perfstat file. Don't rely on a single sample—examine all iterations to identify patterns:
-
Consistent low idle time across multiple samples indicates a sustained CPU bottleneck
-
Intermittent spikes suggest periodic high-load operations
-
Generally high idle time rules out CPU as the performance culprit
Network Performance Analysis
Network bottlenecks are common in storage environments, especially when dealing with high-throughput applications. The Network Interface Statistics section provides comprehensive data about network utilization, errors, and performance characteristics.
Network Statistics Column Headers
Search for "Network Interface Statistics" in your perfstat file. The data is presented in columns with these headers:
| Column | Description | What to monitor |
|---|---|---|
iface | Network interface name | Identify which adapter is being monitored |
side | Traffic direction (send/receive) | Understand data-flow patterns |
bytes | Bytes per second | Primary throughput metric |
packets | Packets per second | Packet rate and efficiency |
errors | Error count | Should always be zero |
collisions | Network collisions | Should be minimal or zero |
pkt drops | Dropped packets | Critical error indicator |
Critical Warning Signs
-
Errors or packet drops > 0: Indicates network hardware problems or configuration issues
-
High collision rates: Suggests network congestion or duplex mismatches
-
Bytes/sec approaching interface limits: Network saturation warning
Network Capacity Planning
Understanding your hardware capabilities is crucial for interpreting network statistics:
-
1 Gbps ports: Theoretical maximum ~134,217,728 bytes/second
-
10 Gbps ports: Theoretical maximum ~1,342,177,280 bytes/second
-
Virtual interfaces (VIF): Capacity depends on configuration (failover vs. load-balanced)
VIF Configuration Impact: In failover mode, a VIF provides no additional bandwidth—just redundancy. In load-balanced mode, bandwidth combines across member interfaces, doubling throughput for dual-port configurations.
Disk Performance Analysis
Disk bottlenecks are the most common cause of performance issues in storage systems. The Disk Statistics section provides detailed IOPS and utilization metrics that help identify storage subsystem constraints and guide capacity planning decisions.
Disk Statistics Layout
Search for "Disk Statistics" in your perfstat file. The data is organized with column headers followed by aggregate information. Key columns include:
`disk ut% xfers ureads-chain-usecs writes-chain-usecs cpreads-chain-usecs greads-chain-usecs gwrites-chain-usecs`
Critical Metrics to Monitor
Focus on these two primary metrics for quick performance assessment:
-
ut% (Utilization Percentage): Time the disk spends busy vs. idle
-
xfers (Transfers/IOPS): Input/output operations per second
Disk Type Performance Characteristics
These are per-drive random-IOPS ceilings. To estimate an aggregate's ceiling, multiply the per-drive figure by the number of data disks (spares and parity don't serve reads), then compare against the summed xfers column.
| Disk type | Per-drive IOPS | Performance threshold | Utilization warning |
|---|---|---|---|
| SATA 7,200 RPM | ~40 IOPS | Latency climbs above ~40 IOPS/drive | Monitor when ut% > 50% |
| SAS 10K RPM | ~140 IOPS | Latency climbs above ~140 IOPS/drive | Monitor when ut% > 50% |
| FC 15K RPM | ~300 IOPS | Latency climbs above ~300 IOPS/drive | Monitor when ut% > 50% |
| SSD | Thousands | Rarely IOPS-bound; watch latency | Monitor when ut% > 70% |
| Which applies to you? | Check the aggregate's disk type in the config section | Sum xfers across the aggregate | Average ut%, don't read one disk |
Aggregate-Level Analysis
Don't focus on individual disk performance—analyze the aggregate as a whole. Individual disks with high utilization are normal in a properly functioning RAID group. Instead:
-
Calculate average utilization across all disks in the aggregate
-
Look for consistently high utilization across multiple disks
-
Compare IOPS against the expected capacity for your disk type
-
Correlate high utilization with user-reported performance issues
Performance Rule: If average disk utilization consistently exceeds 50% across an aggregate, you're likely experiencing performance degradation. Consider adding more disks or upgrading to faster storage.
Perfstat Analysis Best Practices
Effective perfstat analysis requires a systematic approach and understanding of how different metrics correlate. Here are proven strategies for getting the most value from your performance data:
Systematic Analysis Approach
-
Start with disk statistics: Most performance issues stem from storage bottlenecks
-
Check network utilization: Verify if network capacity matches your storage throughput
-
Examine CPU as last resort: CPU bottlenecks are less common in storage systems
-
Correlate timestamps: Match perfstat data with user-reported problem timeframes
-
Analyze trends: Look at all 6 iterations to identify patterns vs. anomalies
Tools and Environment
-
Use a capable text editor: TextPad or similar tools that handle large files efficiently
-
Leverage search functionality: Quickly navigate between different statistics sections
-
Document your findings: Note baseline performance for future comparisons
-
Multiple controller analysis: If you have an HA pair, analyze both controllers
Symptom to cause to fix
Read the pattern across all three sections together — a single metric in isolation lies. This table maps the combinations you will actually see to their most likely cause and first action:
| What perfstat shows | Likely cause | First action |
|---|---|---|
| Avg disk ut% > 50%, xfers near ceiling, network + CPU idle | Aggregate is IOPS-bound (storage bottleneck) | Add disks/spindles to the aggregate or move hot volumes to faster media |
| Disk ut% low, one interface bytes/sec near line rate | Network saturation (not a fault) | Enable a load-balanced VIF or move to a 10 GbE port |
| Network errors / collisions / pkt drops > 0 | Cabling, NIC, or duplex/config fault | Check the physical link, replace cabling/SFP, verify duplex match |
| CPU idle < 50% sustained, disk + network healthy | CPU bottleneck (rare on 7-Mode) | Investigate dedupe/scans/heavy CIFS ops; consider a head upgrade |
| One disk at 90% ut%, rest of aggregate low | Normal RAID behavior, not a bottleneck | Ignore the single disk; average across the aggregate |
| Metrics fine in perfstat but users still complain | Capture missed the problem window | Re-run perfstat during the actual slowdown |
| VIF present but no bandwidth gain under load | VIF is in single-mode failover | Reconfigure as multimode/load-balanced if the switch supports it |
Common Performance Scenarios (quick reference)
-
High disk utilization + low network usage: Storage bottleneck confirmed
-
Low disk utilization + high network saturation: Network bottleneck
-
Low CPU idle time + normal disk/network: CPU bottleneck (rare)
-
Errors in network statistics: Hardware or configuration issues
Pro Tip: Perfstat analysis becomes intuitive with practice. Start with simple scenarios and gradually build your expertise with more complex multi-controller environments and mixed workloads.