Home > Storage > PowerScale (Isilon) > Industry Solutions and Verticals > Media and Entertainment > PowerScale OneFS: macOS Client Performance and User Experience Optimization > Ethernet flow control
Flow control is an Ethernet traffic management system. It is primarily designed to reduce packet loss due to network congestion. Flow control functions by introducing Ethernet pause frames into the network stream. The inner workings of flow control is a complex topic that is beyond the scope of this document.
Testing has shown that the macOS network stack can easily be overrun by high-performance network storage (such as PowerScale). This condition will result in a large number of out of order packets during reads. Out of order packets result in inconsistent read performance. Enabling flow control, both RX and TX, for the network switch ports to which both the PowerScale storage and the Apple client machines are connected alleviates this issue.
It is easy to diagnose if a lack of flow control is causing out of order packets on the macOS client. The nettop CLI command in macOS displays a column labeled rx_ooo that shows the number of out of order packets. Use of this command is covered in the section Observe macOS network statistics in this document. But to summarize, run the following command from the macOS CLI:
nettop -m tcp -p kernel_task -J interface,bytes_in,bytes_out,rx_dupe,rx_ooo,re-tx,rtt_avg,rcvsize,unacked,tx_win
While that command is running, initiate a large read from the PowerScale cluster on the macOS client, such as playing back a long video file. The rx_ooo value will increase rapidly, and the counter may even reset during the read.
Enable flow control on both client and storage switch network ports and rerun the test. The rx_ooo column will either stop increasing entirely or only by a few KiB.
Here is a partial screen capture of the output of that command: