[SOLVED] FreeNAS: lacking transfere speeds over 1000Base-T with SMB

Hello TS!

I not so long back have built me a NAS based on the C2750D4I that @wendell had reviewed once.

I have 32GB ECC Ram in it, 9 Disks, two pools (new 5x2TB WD Red and old 4x1TB segate), and currently it is connected by 1x 1000Base-T connection to my network which is fully 1000Base-T enabled, and between the two core switches even has 4 x 1000Base-T trunk. (when I have run the cables I was planing to trunk the server as well with 4 x1000Base-T but now I hesitate if I cant even saturate 1x 1000Base-T link)

The negotiated speeds (switches to switches, machines to switches) match, and between the machines I get appropriate speeds, but when I access the NAS shares (SMB it is, aka CIFS) I only get about 50MB/s read and write.

When I us iperf between the NAS and Clients I get appropriate speeds:

------------------------------------------------------------
Client connecting to storage.xx.xx, TCP port 5001
TCP window size: 0.08 MByte (default)
------------------------------------------------------------
[  3] local 10.0.x.xx port 38586 connected with 10.0.x.x port 5001
[ ID] Interval       Transfer     Bandwidth
[  3] 0.0-10.0 sec   997 MBytes  99.7 MBytes/sec

------------------------------------------------------------
Client connecting to storage.xx.xxx, TCP port 5001
TCP window size: 0.08 MByte (default)
------------------------------------------------------------
[  3] local 10.0.x.xx port 38564 connected with 10.0.x.xx port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1075 MBytes   901 Mbits/sec

~ 100MB/s is ok over Gigabit I would say... but over SMB/CIFS i only get roughly halve the speed:

I am pretty sure to remember @wendell saying that he got the 100MB/s when he did his review, is there anything I might not have configured right in FreeNAS or something else I missed so I do not get the full potential? - which sucks ;)

what version of freenas? did you try autotune? sometimes turning it on, letting it do its thing, then turnint if off helps. Sometimes turning it on is weird. What nic is in your desktop machine?

FreeNAS is "FreeNAS-9.10-STABLE-201606270534 (dd17351)"

Yes it is on currently. I will turn it off than and try my testing again.

Its Intel® Ethernet Connection I218-LM for 1000Base-T (its a TP T450s)

while doing an smbxfer run top at the cli on freenas, and paste it here. is the heatsink getting adequate cooling? may need to tweak the buffers or something silly.

auto tune may have put stuff in the tweaks section, can you paste whatever its set up automatically in tunables? you may need to reboot once it makes some changes also.


I think so, the CPU according to the IPMI has 39°C +/-2°C;
I have not added additional fan to the heatsink itself, but there are 4 x 80mm fans in the Drive bays sucking air in from the front and 2 x 140mm Noctua 3000RPM Industrial PPC fans removing air forcefully from the enclosure sideways.

Ok, Ill have to google that... or do you happen to have a resource on that topic?

Did a view cycles today, so what you see here should be what is being used by the system.

try adding this to cifs auxilary paramters.. its been a while since I did this, but this may give you something to google
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536

feel free to try larger buffers than 64k also. 1500 byte mtu on the network? if so that should be fine.

Also read this. It's old, but it was great advice in 2007, not sure how applicable it still is, but I see the same kernel params peeking out at me, so maybe relevant.

http://spatula.net/blog/2007/04/freebsd-network-performance-tuning.html

Only noticed because you had a size for the mtu I didn't recognize, expected it to be 1460 not 1448

Thank you very much! I will get digging into it, and report if I succeed or fail =)

This one line is magic! Now I get 98+MB/s on Windows clients! =D
And if I load both my linux and my windows machine at the NAS the same time I get accumulated 120MB/s (adding what both OS claim they get) =D

Thank you! Thank you very much Sir!