Sun Microsystems, Inc.  Oracle System Handbook - ISO 7.0 May 2018 Internal/Partner Edition
   Home | Current Systems | Former STK Products | EOL Systems | Components | General Info | Search | Feedback

Asset ID: 1-72-1611334.1
Update Date:2018-01-05
Keywords:

Solution Type  Problem Resolution Sure

Solution  1611334.1 :   Sun Storage 7000 Unified Storage System: Extremely Slow SMB Performance to Mac Clients if Edge Switch is 10Gb Connected  


Related Items
  • Sun Storage 7410 Unified Storage System
  •  
  • Sun ZFS Storage 7320
  •  
  • Sun Storage 7310 Unified Storage System
  •  
  • Sun Storage 7210 Unified Storage System
  •  
  • Sun ZFS Storage 7420
  •  
  • Sun Storage 7110 Unified Storage System
  •  
  • Sun ZFS Storage 7120
  •  
Related Categories
  • PLA-Support>Sun Systems>DISK>ZFS Storage>SN-DK: 7xxx NAS
  •  




In this Document
Symptoms
Cause
Solution


Created from <SR 3-7792689041>

Applies to:

Sun ZFS Storage 7120 - Version Not Applicable and later
Sun Storage 7410 Unified Storage System - Version Not Applicable and later
Sun ZFS Storage 7420 - Version Not Applicable and later
Sun Storage 7310 Unified Storage System - Version Not Applicable and later
Sun Storage 7210 Unified Storage System - Version Not Applicable and later
Apple Mac OS X (Intel) (64-bit)
Apple Mac OS X (Intel) (32-bit)
7000 Appliance OS (Fishworks)

Symptoms

SMB transfers are slow between Mac clients running OSX 10.7 or 10.8 when they are connected via the 10Gbps link.

Those connected via a 1Gbps link do not show this problem.

Cause

Mac OSX has a tunable parameter, net.inet.tcp.delayed_ack which controls when TCP acknowledgements are sent.

The default setting, net.inet.tcp.delayed_ack=3, causes the OS to check for and throttle back high speed streaming data that can negatively impact interactive network I/O.

If high speed streaming is detected, acknowledgements are delayed.  Snoops show the delay is 200ms. This can result in an idle connection for significant periods of time on a high speed link.

In our test, we saw about a 200 ms delay once every transfer of 61440 bytes. That limited the transfer speed to 300K bytes per second as the data transfer time was a fraction of the delay.

The delayed acknowledgements introduce a pacing mechanism that seriously degrades throughput on file transfers.

 

Solution

The customer tested the 4 possible settings, 0-3,  and settled on net.inet.tcp.delayed_ack=2. This results in an acknowledgement every other packet.

Commands

To set the value in the running kernel:

sudo sysctl -w net.inet.tcp.delayed_ack=2

 

To have the system set the value on subsequent boots:

echo net.inet.tcp.delayed_ack=2 > /etc/sysctl.conf

 

Based on notes found on the internet, the following are the possible values and effects for net.inet.tcp.delayed_ack.  I was unable to get a definitive answer.

0 = acknowledge each packet

1 = send 1 ack for each 6 packets

2 = send immediate ack after the 2nd packet, 2 packets per ack

3 = auto detect streaming (DEFAULT)

 


Attachments
This solution has no attachment
  Copyright © 2018 Oracle, Inc.  All rights reserved.
 Feedback