Hi all. I've been transitioning a file server to OmniOS for many reasons 
(abandoning zfsonlinux). But I seem to have one last issue I'd like to resolve. 
It seems to be running into a performance issue with samba. I'm not using the 
built in zfs smb sharing because I need more flexibility in our environment 
than it offers such as sharing subfolders, shadow copies, etc.

I'm running the latest LTS version of Omni on a well equipped server with 2x 
Xeon E5-2630 v2 @ 2.60GHz, 128G ECC ram with dual intel 10g NICs, and two dual 
LSI 6G SAS cards. The zpool has 8 x raidz2s that have 10 4TB drives in each 
totaling 290TB. Disk performance is not an issue.

I've compiled samba 4.2.1 and netatalk from source, got winbind working nicely 
with our AD environment. Samba is even happily kerberized. Everything 
authenticates and functions correctly. But, while netatalk gives me line speed 
performance (120-150MB/s on a gigabit workstation), samba won't budge above 
40-60MB/s (same speeds using MacOS and Windows 7,8,2012 clients).

Using the same hardware on CentOS 7 with zfsonlinux, samba gives me just about 
the same throughput as netatalk. In linux, I could tune it with socket options 
giving it a bigger buffer and it made a big difference. But using the same 
options on Omni doesn't seem to have any significant affect (actually seems to 
slow it down a bit).

In smb.conf on both OSs:
        socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=2097152 
SO_RCVBUF=2097152

In CentOS7 in sysctl.conf:
net.ipv4.tcp_rmem = 10000000 10000000 10000000
net.ipv4.tcp_wmem = 10000000 10000000 10000000
net.ipv4.tcp_mem = 10000000 10000000 10000000
net.ipv4.tcp_sack = 0
net.core.rmem_max = 524287
net.core.wmem_max = 524287
net.core.rmem_default = 524287
net.core.wmem_default = 524287
net.core.optmem_max = 524287
net.core.netdev_max_backlog = 300000

And then in Omni, I've set these ip properties
root@store3:# ipadm show-prop
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   max_buf               rw   16777216     16777216     1048576      
8192-1073741824
tcp   recv_buf              rw   16777216     16777216     128000       
2048-16777216
tcp   send_buf              rw   16777216     16777216     49152        
4096-16777216

I just can't get samba on Omni to go any faster than 60MB/s. I've tried 
adjusting those buffers, removing the socket options in smb.conf altogether, 
but, to no avail.

Anyone else out there running samba on Omni and getting faster throughput? 
Anyone have any ideas of how I could get more throughput with samba?

Thanks,

Michael
_______________________________________________
OmniOS-discuss mailing list
[email protected]
http://lists.omniti.com/mailman/listinfo/omnios-discuss

Reply via email to