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.