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 -- To unsubscribe from this list go to the following URL and read the instructions: http://lists.samba.org/mailman/listinfo/samba