Still no solution after 5 months(!) - Transfer speed problems (oplocks?) with Samba 2.0.7 and Win2K Pro

Kenichi Okuyama okuyamak at dd.iij4u.or.jp
Wed Dec 20 01:50:24 GMT 2000


>>>>> "i" == infernix  <infernix at infernix.nl> writes:
>> information. According to your test, Windows98 is faster than Win2k,
>> right? Then, which device drivers are you using for you '3com 3c905C
>> NIC', on each OS? Is it from Microsoft, or is it from 3Com?
i> This is only partially true. Both OSes are very fast with FTP. Only Samba is
i> slow on Win2K. This simplifies the problem, because you can be sure that:

Are you really, really sure about that?

FTP is not RPC type of application. You can create tcp connection
per file, plus one connection for control. Meanwhile, Samba is RPC,
and have only single connection per client, not per file.

Therefore, even if each connection is really stupid, you can have
very good performance as total for FTP, if you are copying multiple
files, and if you used smart enough ftp client.


i> 1) There is no ovbious misconfiguration in the hardware settings

How did you check it?

At least, since Win98 and Win2k are entirely different OS, the
setting should not look the same. The very fact that NIC card work,
does not mean you made no misconfiguration.


i> 2) This is not a Win2K/Win9x TCP/IP thing (otherwise it would affect FTP
i> too)

That's not true.

FTP's connection is basically full duplex. You have something to
send for both way ( though it's size is not simmetric, this does not
matter ). Samba/RPC type of connection is Half duplex. You have
nothing to send as tcp stream while you are recieving request, then
you have nothing to recieve as tcp stream while you are sending
answer to the request.

If Win2k's winsock2 have problem in sending Ack, especially at where
sending ack packet ( because there was no packet available to piggy
bag the ack ), you will find this kind of problem.
# And I'm doubting about this.

So, even if both FTP and SMB uses TCP/IP, it does not mean this is
problem of Samba simply because no problem will occur on FTP.


i> 3) There is no change in the smb.conf and therefore it is not evidently
i> influenced by the Samba configuration file.

I don't think so too.

But as you have already seen, request from NT/2k totally differs
from request from 95/98, and since so, nobody really know if " We
should set smb.conf exactly the same way for both 98 and 2k, or
not".

# To be honest, I am doubting about Win2k. Microsoft might be really
# checking for Samba, and might be generating request that causes
# bad performance. I'm doubting about WinMe too.


i> 4) The server is apparently not to blame since it works fine in Windows 98.

I doubt about this. Writing/Reading request is totally different
between 98 and NT, and since so, system call generation pattern
differs, too.

# Take a look deeply inside Samba. You'll see what I mean.



>> Run Samba server normally, and than look at your machine's load
>> average using vmstat ( or anything is okey ), especially CPU load.
>> Are you having enough CPU power? are you having enough Memory?
i> This was my first guess, but there's 128MB memory in there and its a P2-266.
i> It should by all means be fast enough. Besides, if this would be the case, I
i> would suffer bad performance in Windows 98 too.

Currently, if you push extreamely heavy load against Samba server
using netbench, you'll find that P-III 500MHz with 256MB memory can
only handle upto 8 clients.

And if you look at result of vmstat, you'll find that CPU usage is
full ( 0% for idle ), and only 25% are being used by user. 75% are
being used by kernel.

If you look at what's using CPU inside kernel, you'll find that
it is due to many, system calls being called.

Since so, I don't know if P2-266 is enough or not. Basically, I
don't think so.



>> How about trying Samba-2.0.7-ja-2.1 instead of Smaba-2.0.7?
i> I am yet to try this. I will, but this is not the real solution to the
i> problem since IMHO the main branch should implement any patches/fixes for
i> this. But I will see if I can try it out tonight.

Many patches on ja-2.1 are reported to samba-technical as well.
And some, are being merged into 2.2/HEAD branch.

# I don't see most of the fix yet, but I'm looking forward to them
# > Andrew :)

But that does not mean fix will be applied to 2.0.7 branch.
And since we are still not coming up with stable 2.2, what else can
we use beside ?


>> What OS are you using for server? Linux?  Of which version? Did you
>> try FreeBSD or NetBSD? Socket layers of *BSD are lot better than
>> Linux version.
i> This is also irrelevant, because the problem only surfaces on Windows 2000
i> clients. However, fyi, I am running Debian 2.2 (Linux) with kernels 2.2.18
i> and 2.4.0-test12.

I have been tracing Linux kernels. So far, I see lots and lots of
ugly cludges inside that will prevent performance tuning.
# Enormous amount of short minded data structure design is
# spread all over.

You seems to know a lot about system, at least enough to understand
how to create 2.4.0-test12 kernels. Then, why don't you try using *BSD?

At least, as for Server perpose, I think *BSD works lot better than
Linux.


i> It's just a shame that apparently nobody is looking into this issue. This
i> isn't just a single case. I have had over 10 emails stating that they had
i> the exact same performance problem. Sigh...

Why don't YOU (^o-)?

# If you dig into the source code of Samba, you'll see that we
# should first fix total flow of source, before fixing individual.
---- 
Kenichi Okuyama at Tokyo Research Lab, IBM-Japan, Co.




More information about the samba-technical mailing list