Home > Storage > PowerScale (Isilon) > Industry Solutions and Verticals > Media and Entertainment > PowerScale OneFS: macOS Client Performance and User Experience Optimization > Observe macOS network statistics
From the macOS terminal, the nettop command is an easy way to observe periodically updated network statistics (default interval 1 second). The feedback provided by nettop can be helpful to understand how the macOS client is communicating with network storage during certain application workloads. The following command shows macOS TCP behavior for the kernel_task process, which is the parent process for all SMB connections on TCP port 445:
nettop -m tcp -p kernel_task -J interface,bytes_in,bytes_out,rx_dupe,rx_ooo,re-tx,rtt_avg,rcvsize,unacked,tx_win
Key metrics to look at, when analyzing network statistics with nettop are:
Should be as low as possible. If there are spikes above 10 milliseconds, bandwidth and performance will be negatively impacted. TCP and especially SMB traffic over TCP are sensitive to latency.
Can be a sign of the client not being able to reassemble packets.
Can be a sign of latency or packet loss.
The higher the latency is, the more Duplicate ACKs will appear.
High latency or large amounts of out of order packets will degrade performance. Either of these issues could be the result of operating system or driver issues on the Apple client. Other causes could be network issues between the client and storage, or latency problems on a software or hardware-related layer such as intermittently busy or queued up disks.
To confirm if high latency is related to SMB read or write requests, you can try capturing Wireshark/tcpdump trace files with a capture filter for port 445. When the capture is stopped, look at Statistics > Service Response Time > SMB2, and look out for high MAX SRT values. Details about Wireshark and tcpdump are out of scope for this paper.
Before going down the rabbit hole of analyzing TCP packets, try to simplify the environment (as outlined above). Reducing the number of variables between the client and the storage system is a good starting point.
The following figure shows the output of the nettop command. (Note that the relevant output is well below the column headings.)