Extremely slow samba reads

Hallo,
I have a problem, possibly by the latest samba/kernel combination of openSUSE 11.4
My setup is:
LAN: 100Mbit full duplex on all nodes
File server with

  • Kernel 2.6.37.6-0.5-default
  • Samba 3.5.7
  • SATA I @ 7200rpm HDD
  • ATA-5 disks @ 7200 rpm HDDs

Some shares are on the SATA disks and some other shares on the ATA-5 disks, although, there is no difference in speeds.

Samba


rpm -qa | grep -i samba
samba-client-3.5.7-3.5.1.i586
samba-winbind-3.5.7-3.5.1.i586
samba-doc-3.5.7-3.5.1.noarch
samba-krb-printing-3.5.7-3.5.1.i586
samba-3.5.7-3.5.1.i586
yast2-samba-client-2.20.2-3.1.noarch
yast2-samba-server-2.20.2-3.1.noarch

Global section of smb.conf on the server is:


[global]
        dos charset = CP737
        workgroup = HOME
        netbios name = Server
        realm = HOME
        map to guest = Bad User
        username map = /etc/samba/smbusers
        client NTLMv2 auth = Yes
        log level = 1
        syslog = 0
        name resolve order = bcast host lmhosts wins
        time server = Yes
        deadtime = 15
#       socket options = IPTOS_LOWDELAY TCP_NODELAY SO_RCVBUF=65536 SO_SNDBUF=32768 SO_KEEPALIVE
#       socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
        socket options = TCP_NODELAY
        printcap name = cups
        add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
        logon path = \\%L\profiles\.msprofiles\%a
        logon drive = P:
        logon home = \\%L\%U\.msprofiles\9x
        domain logons = Yes
        os level = 64
        preferred master = Yes
        local master = yes
        domain master = Yes
        wins support = Yes
        cups options = raw
        level2 oplocks = No

Clients:


  Windows XP SP3 (not a member of the domain), ATA 5, 5400rpm disk
  openSUSE 11.1, 2.6.27.56-0.1-default, 64bit, SATA I disks, 7200rpm
  openSUSE 11.4, 2.6.37.6-0.5-default, 32bit, ATA 5, 5400 disks
  BusyBox v1.1.3, kernel: Linux Venus 2.6.12.6-VENUS, mips (E-Great Eg1-R1), USB 2, external HDD.

All Linux clients use cifs and mounts to /mnt/smb directory, except of the busybox, which mounts the SMB shares on another directory.
The openSUSE mounts are:


Share 1: rw,auto,credentials=/etc/samba/crdrs,iocharset=utf8,rsize=130048
Share 2: rw,auto,credentials=/etc/samba/crdrs,iocharset=utf8

Write TO server is acceptable (7.5MB/s, with a max of 8Mb/sec). It is slower than the theoretical performance of the 100Mbit network, but still it’s OK.

Problem: VERY slow reads from server with linux clients
With Linux clients I have a max of 2Mb/s (Megabytes/seconds)
On WinXP, I don’t know the speed, but it is definately faster, much faster (copy of a 700MB iso in about 2mins).

In order to ensure that I do not use disk cache, I have the same iso copies 14 times in the HD. (01-14).
It’s not a LAN issue, since iperf reports from 90mbps to 95mbps (bi-directionally), as well as, reads from shares via fish/scp are acceptable (7,0Mb/sec and 7.5Mb/s respectively).

Increasing log level, resulted to no helpful messages.

It seems that the problem is not a new one (although it’s new to me).
Any ideas?

Just to complete the info, in case it is important (I don’t know how, but just in case).
Samba shares are located on LVM.

OK, it seems that this is a bug…
Dowgraded the server to:

Kernel: Linux 2.6.37.1-1.2-default
Samba: samba-3.5.7-1.17.1.i586
samba-client-3.5.7-1.17.1.i586
samba-doc-3.5.7-3.5.1.noarch
samba-krb-printing-3.5.7-3.5.1.i586
yast2-samba-client-2.20.2-3.1.noarch
yast2-samba-server-2.20.2-3.1.noarch
samba-winbind-3.5.7-1.17.1.i586

Bug 721674.