[Samba] Samba-Citrix compatability

Andrew Bartlett abartlet at samba.org
Tue Nov 4 01:37:08 GMT 2003


On Tue, Nov 04, 2003 at 02:28:11PM +1300, Paul Eggleton wrote:
> Andrew Bartlett wrote on Tuesday, 4 November 2003 2:20 p.m.:
> >  But more
> > importantly, there is an issue caused by the way Windows Terminal
> > Server clients connect - they all use the same smbd.  This causes all
> > their operations to be serialised, even worse if something blocks.    
> 
> Can you explain this a bit more? I'm wondering if some of the trouble
> we've been having is caused by this. (We are using Samba 3.0 as a
> profile/general purpose file server for several Citrix MetaFrame XP
> servers).

Windows uses one TCP/IP connection to connect to a single server.
Windows NT Terminal server had a registry switch to make it spit it up
as one-per-user, as there ware problem with only 1000 open files (or
something like that).  MS fixed their bug, so removed the setting.

The problem is that unlike NT, Samba is not multithreaded - it deals
with the operations from the client in a strictly serial fashion.
This is usually fine for a single PC, and becosue multiple client PCs
all use their own seperate TCP/IP connection, Samba scales really
well.

However, when all the work is on one TCP/IP connection, all the
changes between user (seteuid calls) and even worse blocking due to
simple disk IO is serialised.  Ie, other unreated operations cannot
complete.  (I think that the fcntl() issues might also make this even
worse, but jra would know better).

By forcing Windows to make multiple TCP/IP connections to the Samba
server, we get back to the situation we had with multiple windows
client PCs.

Much of the work on Samba4 is to create a compleatly asyncronous
design, which can cope with this stuff very well, but until then, we
need the workarounds...

Andrew Bartlett



More information about the samba mailing list