[Samba] What is the maximum speed for download from a samba share
L A Walsh
samba at tlinx.org
Sat Apr 21 03:54:53 UTC 2018
Knut Krüger via samba wrote:
> What is the maximum speed for download from a samba share?
> I have a 100 kbit/s Internet
> The maximum speed for a download from my webserver with samba is about
> 25.000 kbit/s
> The bottleneck is the samba access. Without samba I can download with
> 100 kbit/s
> So the question? is it possible to get more speed or is this the maximum
> speed with samba?
> I tried a lot of hints for samba tuning but nothing was faster.
100 kbit/s? as in 12.2KB/s? Ouch.
I was able to get 125mB on writes and 119mB reads using a 1gbit ethernet.
I start to lose speed on 10gb with limiting factor being cpu on
client OR server depending on packet size.
Sent a recent note to the cygwin list (used cygwin in the testing).
My experience was to use the cifs protocol as easiest (over a local
network). With a 10Gb (limited to 8Gb due to running on older
PCIe interface) card, I'm getting:
Using bs=16.0M, count=64, iosize=1.0G
R:1073741824 bytes (1.0GB) copied, 1.67486 s, 611MB/s
W:1073741824 bytes (1.0GB) copied, 4.01592 s, 255MB/s
Also, on a local net, using Jumbo packets also helps
(I have a 9000B MTU on my local net).
The speeds / values using 'Bytes', (2**3) use the base2
prefixes for consistency. To get values in mbits, multiple
The above test only tests transfer speed -- not file i/o --
it uses /dev/zero for a source and /dev/null for a target.
To simplify testing, I created devices 'zero' and 'null'
in my home directory:
> > ll zero null
crwxrw-rw- 1 1, 3 May 20 2016 null
crw-rw-rw- 1 1, 5 Jun 15 2015 zero
/h> ll zero null
-rwxrw-rw- 1 0 May 20 2016 null*
-rw-rw-rw- 1 0 Jun 15 2015 zero
For write, I used cygwin's 'dd' with if=/dev/zero and of=/h/null.
For read, I used if=/h/zero and of=/dev/null.
Flags for reading: iflag=fullblock conv=nocreat
and for writing: oflag=direct iflag=fullblock conv=nocreat,notrunc
To test the CPU bounding, I just tried limiting the clock speeds
on the client and server.
Limiting the linux-server's max cpu-speed had
the most affect on performance:
(limited to 1.6GHz instead of 2.4GHz) (33% limitation)
Using bs=16.0M, count=256, iosize=4.0G (~35% slowdown)
R:4294967296 bytes (4.0GB) copied, 10.4467 s, 392MB/s
W:4294967296 bytes (4.0GB) copied, 21.5026 s, 190MB/s
Limiting the client (cygwin-win7sp1x64): (~7-13% slowdown)
(clock limited to 1.16GHz instead of 3.2)
Using bs=16.0M, count=256, iosize=4.0G
R:4294967296 bytes (4.0GB) copied, 7.14355 s, 573MB/s
W:4294967296 bytes (4.0GB) copied, 15.9781 s, 256MB/s
This would indicate that even in the unencrypted case
network transfer speed is cpu bound (and this is using
Jumbo packets). Using scp or rsync+ssh, speeds dropped to
between 100-200MB/s in either direction.
W/o encryption, I'd expect samba to get near line speeds over
a 100kb connection as that shouldn't come close to being CPU bound.
More information about the samba