Comment 14 for bug 810606

Revision history for this message
Jean- (jean-helou) wrote :

Here is the result of my extensive tests

For all tests:
192.168.1.10 is a synology NAS with 1Gb ethernet - smbd 3.2.8 (DSM 3.1-1613)
192.168.1.9 is a dell xps 1330 with 100Mb ethernet - upto date 11.04 distro (smbclient says 3.5.8)
192.168.1.11 is an asus U36jc with 1Gb ethernet up to date win 7

they are linked to a netgear GS 108 SWITCH rated for Gb ethernet

No other equipment is connected

The NAS is the first SMB server

Download test
iperf -c 192.168.1.10 -f M -p 2222
------------------------------------------------------------
Client connecting to 192.168.1.10, TCP port 2222
TCP window size: 0.02 MByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.9 port 55114 connected with 192.168.1.10 port 2222
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 99.5 MBytes 9.94 MBytes/sec

Upload test

DiskStation> iperf -c 192.168.1.9 -f M
------------------------------------------------------------
Client connecting to 192.168.1.9, TCP port 5001
TCP window size: 0.02 MByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.10 port 2142 connected with 192.168.1.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-10.0 sec 112 MBytes 11.2 MBytes/sec

9.94MBytes is my baseline and sounds right for 100Mb ethernet

With no modification on either the server or the client here is what I get with smbclient.

SMBCLIENT Download test

smbclient //192.168.1.10/public
Enter jean's password:
Domain=[JEAN] OS=[Unix] Server=[Samba 3.2.8]
smb: \> get ubuntu-11.04-server-i386.iso
getting file \ubuntu-11.04-server-i386.iso of size 686493696 as ubuntu-11.04-server-i386.iso (11126,9 KiloBytes/sec) (average 11126,9 KiloBytes/sec)
smb: \>

SMBCLIENT Upload test

jean@xps:~/opt/mnt$ smbclient //192.168.1.10/public
Enter jean's password:
Domain=[JEAN] OS=[Unix] Server=[Samba 3.2.8]
smb: \> put ubuntu-11.04-server-i386.iso.up
putting file ubuntu-11.04-server-i386.iso.up as \ubuntu-11.04-server-i386.iso.up (9881,6 kb/s) (average 9881,6 kb/s)
smb: \>

smb client yields speeds which seem fine for a 100 Mb connection

fstab

//192.168.1.10/public /mnt/test cifs credentials=/etc/credentials.del,rw,_netdev,uid=jean,gid=users 0 0

CIFS Download test

dd if=ubuntu-11.04-server-i386.iso of=/tmp/ubuntu-11.04-server-i386.iso.up
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 101,899 s, 6,7 MB/s

CIFS Upload test

jean@xps:/mnt/test$ dd if=/tmp/ubuntu-11.04-server-i386.iso.up of=ubuntu-11.04-server-i386.iso.up
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 820,385 s, 837 kB/s

CIFS without modifications downloads fine but uploads ver very slowly we lost one order of magnitude. This is the same as what I observed through nautilus using only graphical interfaces and no command line

Following ubuntu 810606 bug first debug instruction :
create
 /etc/modprobe.d/cifs.conf
with content
 options cifs CIFSMaxBufferSize=130048

CIFS 2 Download test
jean@xps:/mnt/test$ dd if=ubuntu-11.04-server-i386.iso of=/tmp/ubuntu-11.04-server-i386.iso.up
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 36,8665 s, 18,6 MB/s

CIFS 2 Upload test
jean@xps:/mnt/test$ dd if=/tmp/ubuntu-11.04-server-i386.iso.up of=ubuntu-11.04-server-i386.iso.up
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 818,795 s, 838 kB/s

the first result is aberrant it goes over the theoretical limit of the link, the second one is just as bad as befor.

I unmounted and remounted the share and reran the test changing file names in case there was a caching mecanism I was not aware of

CIFS 3 Download test
jean@xps:/mnt/test$ dd if=ubuntu-11.04-server-i386.iso of=/tmp/ubuntu-11.04-server-i386.iso.up2
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 108,488 s, 6,3 MB/s

CIFS 3 Upload test
jean@xps:/mnt/test$ dd of=ubuntu-11.04-server-i386.iso.up2 if=/tmp/ubuntu-11.04-server-i386.iso.up2
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 810,528 s, 847 kB/s

We are back to the speeds observed without cifs.conf which doesn't seem to have helped

Unmounting the share and adding the second recommandation and changing fstab
//192.168.1.10/public /mnt/test cifs credentials=/etc/credentials.del,rw,_netdev,rsize=32768,wsize=32768,uid=jean,gid=users 0 0

remounting the share

CIFS 4 Download test
jean@xps:/mnt/test$ dd if=ubuntu-11.04-server-i386.iso of=/tmp/ubuntu-11.04-server-i386.iso.up3
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 108,625 s, 6,3 MB/s

CIFS 4 Upload test

jean@xps:/mnt/test$ dd of=ubuntu-11.04-server-i386.iso.up3 if=/tmp/ubuntu-11.04-server-i386.iso.up3
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 811,71 s, 846 kB/s

still no change

jean@xps:/mnt/test$ cat /proc/fs/cifs/DebugData
Display Internal CIFS Data Structures for Debugging
---------------------------------------------------
CIFS Version 1.71
Features: dfs lanman posix spnego xattr
Active VFS Requests: 0
Servers:
1) Name: 192.168.1.10 Domain: JEAN Uses: 1 OS: Unix
 NOS: Samba 3.2.8 Capability: 0x80f3fd
 SMB session status: 1 TCP status: 1
 Local Users To Server: 1 SecMode: 0x3 Req On Wire: 0
 Shares:
 1) \\192.168.1.10\public Mounts: 1 Type: NTFS DevInfo: 0x0 Attributes: 0x50027
PathComponentMax: 255 Status: 0x1 type: 0

 MIDs:

jean@xps:/mnt/test$ cat /proc/fs/cifs/Stats
cat: /proc/fs/cifs/Stats: Aucun fichier ou dossier de ce type

jean@xps:/mnt$ sudo echo 4 > /proc/fs/cifs/cifsFYI
bash: /proc/fs/cifs/cifsFYI: Permission non accordée

overrode write permission

jean@xps:/mnt$ cat /proc/fs/cifs/cifsFYI
4

CIFS 5 Download test
jean@xps:/mnt/test$ dd if=ubuntu-11.04-server-i386.iso of=/tmp/ubuntu-11.04-server-i386.iso.up4
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 107,834 s, 6,4 MB/s

CIFS Upload test
jean@xps:/mnt/test$ dd of=ubuntu-11.04-server-i386.iso.up4 if=/tmp/ubuntu-11.04-server-i386.iso.up4
1340808+0 enregistrements lus
1340808+0 enregistrements écrits
686493696 octets (686 MB) copiés, 808,122 s, 849 kB/s

jean@xps:/mnt/test$ cat /proc/fs/cifs/DebugData
Display Internal CIFS Data Structures for Debugging
---------------------------------------------------
CIFS Version 1.71
Features: dfs lanman posix spnego xattr
Active VFS Requests: 0
Servers:
1) Name: 192.168.1.10 Domain: JEAN Uses: 1 OS: Unix
 NOS: Samba 3.2.8 Capability: 0x80f3fd
 SMB session status: 1 TCP status: 1
 Local Users To Server: 1 SecMode: 0x3 Req On Wire: 0
 Shares:
 1) \\192.168.1.10\public Mounts: 1 Type: NTFS DevInfo: 0x0 Attributes: 0x50027
PathComponentMax: 255 Status: 0x1 type: 0

 MIDs:

[51205.996410] CIFS VFS: server 192.168.1.10 of type Samba 3.2.8 returned unexpected error on SMB posix open, disabling posix open support. Check if server update available.

Next attempt with an up to date windows 7 computer with 1 Gb Ethernet as the server same client

smbclient //192.168.1.11/temp
Enter jean's password:
Domain=[NOIR] OS=[Windows 7 Professional 7601 Service Pack 1] Server=[Windows 7 Professional 6.1]
smb: \> get grdive.rar
getting file \grdive.rar of size 617250416 as grdive.rar (11415,3 KiloBytes/sec) (average 11415,3 KiloBytes/sec)
smb: \> put grdive.rar2
putting file grdive.rar2 as \grdive.rar2 (8153,5 kb/s) (average 8153,5 kb/s)

-rw-r--r-- 1 jean jean 617250416 2011-07-18 13:15 grdive.rar

Speeds are about right even if I don't explain the assymetry

Updated the fstab and credentials to point to the win7 share and mounted it

jean@xps:/mnt/test$ dd if=grdive.rar of=/tmp/grdrive.rar
1205567+1 enregistrements lus
1205567+1 enregistrements écrits
617250416 octets (617 MB) copiés, 96,3163 s, 6,4 MB/s

jean@xps:/mnt/test$ cat /proc/fs/cifs/DebugData
Display Internal CIFS Data Structures for Debugging
---------------------------------------------------
CIFS Version 1.71
Features: dfs lanman posix spnego xattr
Active VFS Requests: 0
Servers:
1) Name: 192.168.1.11 Domain: JEAN Uses: 1 OS: Windows 7 Professional 7601 Service Pack 1
 NOS: Windows 7 Professional 6.1 Capability: 0x1e3fc
 SMB session status: 1 TCP status: 1
 Local Users To Server: 1 SecMode: 0x3 Req On Wire: 0
 Shares:
 1) \\192.168.1.11\temp Mounts: 1 Type: NTFS DevInfo: 0x20 Attributes: 0xc700ff
PathComponentMax: 255 Status: 0x1 type: DISK

 MIDs:

new line in dmesg
[57048.066362] CIFS VFS: rsize 32768 too large, using MaxBufSize

jean@xps:/mnt/test$ dd of=grdive.rar2 if=/tmp/grdrive.rar
1205567+1 enregistrements lus
1205567+1 enregistrements écrits
617250416 octets (617 MB) copiés, 88,4556 s, 7,0 MB/s

No new entry in dmesg

Through nautilus copy from win7 to ubuntu gives 9MB/s
Through nautilus copy from ubuntu to win7 yields 6.7MB/sroot

win7/ubuntu speeds were unaffected by removing cifs.conf and rsize/wsize

Comparing speeds with NAS/Win7 interactions is difficult as they are both on 1 Gb ethernet but I get 15Mb both ways, I don't lose an order of magnitude speed one way.

The order of magnitude loss of speed when uploading to the NAS smb share from ubuntu can't be normal.
I can probably upgrade the samba on my NAS by using command line and ipkg. And yes, in the mean time I am going to pester the synology forums for an SMB upgrade too.

Let me know if I can help in any other way.