[Samba] Samba + BDE and slow speed on reading (long)
Giovani Moda - MR Informática
giovani at mrinformatica.com.br
Fri Feb 1 17:44:14 GMT 2008
I'm new here, and I'm joining because I'm having a problem wich I can't figure out the solution myself. Here's what's happening:
A Samba 3.0.24 is serving files to seven Windows XP clients. Three of those clients run an application with a BDE database. The problem is that when running this application on Samba, it gets very, VERY slow, causing it to hang. I have noticed also an unusual low speed when receiving files from the samba server over network. When sending files to the server, the speed is OK. Since the databases used by that apllication have about 50Mb each, the problem must be caused by that slow speed on receiving files from the server.
I've twiked the configuration a bit, and came to this results:
socket options = SO_RCVBUF=65535 SO_SNDBUF=65535 TCP_NODELAY IPTOS_LOWDELAY - Very slow on reading, fast when writing
socket options = TCP_NODELAY IPTOS_LOWDELAY - still slow on read, but a little better. Fast when writing
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=32768 - significant improvement when reading files, but the application still hangs due to the slow speed. Fast when reading.
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=32768 SO_RCVBUF=32768 - same as above, but writing speed shows deterioration.
Other significant parameters:
max connections = 50
dos filetimes = yes
max open files = 4000
nt acl support = yes
preserve case = yes
strict locking = no
deadtime = 15
unix charset = iso8859-1
display charset = cp850
oplocks = no
kernel oplocks = no
level2 oplocks = no
local master = yes
os level = 64
domain master = yes
time server = yes
preferred master = yes
domain logons = yes
name resolve order = wins bcast host lmhosts
wins support = yes
wins proxy = yes
dns proxy = no
So, I went for socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=32768 and got these results:
Copying a 45678592 bytes throug samba, it takes from 45 to 60 seconds to transfer. The same file though FTP takes only 3.9 seconds. I know FTP is the fastest protocol and cannot be compared to samba, but still, that's a HUGE difference.
As a desperate measure, I've copied the whole database to a XP machine, shared the folder to the network, mapped it to the other stations, and the application runs perfectly again.
Conclusion: there's definitely a problem when readind files from samba server. It's not network related, since FTP is really fast, and when serving the database from XP, the speed is OK too. The server is a brand new Core 2 Duo E4500, 2GB RAM, 160 GB HD SATAII. The switch is also new. The distro in question is FC5.
As a related topic, I've came across a situation (two times and couting) when writing files to the samba server is painfully slow. On both cases, setting SO_RCVBUF=1 has resolved the problem. I don't know why, but it did. Both times, the server was connected to a D-Link DES-1024 switch. Switching NIC's and cables had no effect, but SO_RCVBUF=1 solved it instantly. Could it be related tho this version of samba and the problem I'm having now?
More information about the samba