Would love to re-visit this topic. Also using the Promise SanLink2 and getting decent performance connecting to a Windows Server 2012 R2 with a 36 drive RAID 60. Internally the RAID gets 3,000MB/s read and write.
A Mac Pro 2013 with a Promise SanLink 2 currently gets 630MB/s writes and 840MB/s reads with the following systlc config:
net.inet.tcp.doautorcvbuf=0
net.inet.tcp.doautosndbuf=0
kern.ipc.maxsockbuf=8388608
net.inet.tcp.sendspace=4000000
net.inet.tcp.recvspace=4000000
net.inet.tcp.maxseg_unacked=8
net.inet.tcp.delayed_ack=0
net.inet.tcp.win_scale_factor=7
Before that I used these:
net.inet.tcp.doautorcvbuf=0
net.inet.tcp.doautosndbuf=0
kern.ipc.maxsockbuf=8388608
net.inet.tcp.sendspace=4194304
net.inet.tcp.recvspace=4194304
net.inet.tcp.maxseg_unacked=32
net.inet.tcp.delayed_ack=2
net.inet.tcp.win_scale_factor=7
That got us to 632MB/s write and 828MB/s read. Seems like decreasing the unpacked value to 8 and setting ack value to 0 squeezed out just a little bit more. Possible that it was just a fluke, though.
Anyways, the performance isn’t bad but the write are much slower than the reads. Again the RAID is not the bottleneck as it can pull 3000MB/s writes. Wondering if there are any additional settings on either the OSX or windows side that can be tweaked to improve the speed?
SMB signing is already turned off and Netbios over TCP is turned on on the Windows NIC. Jumbo frames enabled on Client, Server, and Switch. Switch is a Netgear M7100-M24X.