From: Linda W on
I can share what I have, but won't claim they are optimal for
everyone. For win7, they give near theoretical performance on
writes (with win7 tuned correctly as well).

Will only mention a few pertinent items. Standard
disclaimers concerning your software, work load and hardware
all need to be considered when evaluating params.

Biggest thing is in reserving enough memory.

I just remeasured linear performance -- using a single task, using
'dd' to/from a server file of 1 or 4GB in size.

I also figured out my Win7 performance was way below par -- and
tried a WinXP performance improvement on it -- and had it work --
even though it's widely said around the net to no longer work in
Vista or above.

First the linux params, then the other params.

linux:
/proc/sys/net/ipv4
(same methods may work for ipv6, but haven't tested them)
Comparing my distro's defaults to my modified values:

*(don't know if this is important, as I don't think
congestion enters into play in my setup, but:)

default:
tcp_allowed_congestion_control=cubic reno
tcp_available_congestion_control=cubic reno
tcp_congestion_control=cubic
tcp_ecn=0
tcp_timestamps=1
mod:
tcp_allowed_congestion_control=htcp reno
tcp_available_congestion_control=htcp reno scalable
tcp_congestion_control=htcp
tcp_ecn=1
tcp_timestamps=0

Then memory for tcp:
default:
tcp_mem: 47136 62848 95272
tcp rmem 4096 87380 2011136
tcp wmem 4096 87380 2011136
mod:
tcp_mem 2097152 8338608 268435456
tcp_rmem 1048576 4194304 134217728
tcp_wmem 1048576 4194304 134217728

Also, in /etc/samba/smb.conf:
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=4194304 SO_RCVBUF=4194304
(also, not sure if they are as important, but also use:)
aio read size=65536
aio write size=65536
min recievefile size=65536
max xmit=66576

---
On my clients, under the HKLM/currentcontrolset, under

TcpIp/Parameters I have (both DWORDS):
TcpMaxWindowSize=1048576
GlobalMaxTcpWindowSize 1048576

AND I have those same two DWORDS under my active "Interface"
key (under Parameters). I looked for the one that corresponded
to my client's active interface.

-----------------------------------

Notes:
In writing up these params I did some benchmark testings.

Win7 (without the TCPMaxWindowSize) changes in the registry),
gave 10MB/s reads and 12MB/s writes.

WinXP (didn't already had those changes) came in at
35MB/s reads and 73MB/s writes.

Putting in the MaxWinSize words in my Win7 registry (though
several places around the net claim this param was no longer
used, from Vista on), gives:
70MB/s reads
108MB/s writes.

Note -- these are measured not just in terms of the execution
time of 'dd', but also looking at "xosview" running (actually
running remotely over X -- i.e. using up some of that file
transfer bandwidth!). I.e. Xosview showed 108MB/s when I measured
108MB/s in 'dd'. So it wasn't a related to cache timings.

Am glad you posted your question, as I wouldn't have experimented
with the TCPMaxWinSize -- as every place I looked claimed that param
was no longer used from Vista on -- so I had not previously tried it
(being gullible enough to believe all the sites that claimed it was
no longer supported. C'est la vi!).

Hope this helps,
Linda

--
To unsubscribe from this list go to the following URL and read the
instructions: https://lists.samba.org/mailman/options/samba
From: Holger Rauch on
Hi Linda,

thanks a lot for sharing your params; IMHO it's very useful to them in
combination (Win registry, Samba config, Linux sysctls).
Would you mind telling us a bit about your client and server HW,
the Samba server OS and version you use so that your test results
obtained with dd appear in some context and can be judged better?

Thanks in advance & Kind regards,

Holger
From: Linda W on
Holger Rauch wrote:
> Hi Linda,
>
> thanks a lot for sharing your params; IMHO it's very useful to them in
> combination (Win registry, Samba config, Linux sysctls).
> Would you mind telling us a bit about your client and server HW,
> the Samba server OS and version you use so that your test results
> obtained with dd appear in some context and can be judged better?



Both client machines are connected with Gb ethernet.
XP client with an Intel 5000XVN based motherboard with Dual Xeon
Core2 Duo's @ 3.2G, w/ 3GB of 667MHz memory.

Win7-64 client is an based on the Intel 5020SC w/24GB memory
with 1 Quad Core processor @ 2.7GH, with 1333MHz DDR3 RAM.

Server is a Dell PowerEdge T610 with same processor and memory as
the workstation, running Suse 11.2, w/vanilla 2.6.34 kernel compiled
for the machine.
The disks probably don't come into play with the server's cache,
but we're testing Samba's transfer speed over the network -- so I
tried to minimize the effect of the disks, anyway. If you care,
my my disks transfer speeds are 5x-15x my network transfer speeds
(depending on if you are looking at the low or high end of the
network speeds).

I allocated large buffers to TCP because I have few clients
that would be doing things simultaneously and because the server
isn't too worried about memory.

File system is 'xfs' -- which is best for large multi-terabyte file system.

It also supports NT's ACLs, which I extensively.

Out of curiosity -- I tried using a 256MB transfer size on my
Win7 client -- it made a difference. For this test, I made sure the
remote file was in the local buffer cache before attempting to read it
so as to only test Samba's efficiency.


Read:
/l> dd if=test1 of=/dev/null bs=256M count=16
16+0 records in
16+0 records out
4294967296 bytes (4.3 GB) copied, 39.024 s, 110 MB/s

Write:
/l> dd of=test1 if=/dev/zero bs=256M count=16 conv=notrunc oflag=direct
16+0 records in
16+0 records out
4294967296 bytes (4.3 GB) copied, 37.37 s, 115 MB/s


In both cases, running 'xosview' showed the expected network bandwidth being
used.

Does that answer your questions?

linda


--
To unsubscribe from this list go to the following URL and read the
instructions: https://lists.samba.org/mailman/options/samba