There plenty of others who are running Samba with 100+ users and 100's more
who can give you an idea about required hardware. From their experience,
one can confidently say that Samba scales brilliantly, whether your using
one grunty server or many smaller servers. However, I can give you
my experience with 60 users.
Server hardware is PentII 233, 128MB RAM, 5GB of SCSI disk (nothing fancy,
no RAID, just an Adaptec PCI SCSI controller). The 60 PCs are student lab
PCs which are heavily used. The server serves documents, data and
applications (Word, Excel netscape, statistics and maths packages), the
applications being the most demanding. All client PCs and the server
are on 100Mbit network. The server's load rarely gets above 1, and client
performance is excellant, loading those fat MS applications is very snappy.
For 100+ users you, you may need up the SCSI disc specs a little, using a
better (Ultra fast wide ....) controller and faster drives, but if you're
not serving applications it may not be necessary, but then again roaming
profiles can be demanding like applications. A PentII 233 CPU would be
fine, Samba is very efficient, but 300 and 350+ CPUs seem more the norm
now days. Someone correct if I'm wrong, but you should allow at least 1MB
of RAM for each concurrent user, plus the memory required for the OS
and other services. So 128MB should be fine, but as usual with
memory the more the better, you then have more memory for disk caching which
helps relieve potential disk bottle necks.
To tweak speed there is Speed.txt in Samba's doc directory. In short the
TCP_NODELAY and oplocks options seem to give the best improvement,
there are many more tweaking possibilities in the document which don't need
repeating, the document is well worth a read.
You may need to increase Linux's file and inode table, I found it necessary
with 60 users. All you need is to add the following somewhere in rc startup
scripts. My example uses 4096 and 10000 respectively.
# Increase the size of file table
if [ -f /proc/sys/kernel/file-max ] ; then
echo 4096 > /proc/sys/kernel/file-max
fi
# Increase the size of inode table
if [ -f /proc/sys/kernel/inode-max ] ; then
echo 10000 > /proc/sys/kernel/inode-max
fi
You can check your current maximum settings and currently used stats with
cat /proc/sys/kernel/file-max
cat /proc/sys/kernel/inode-max
cat /proc/sys/kernel/file-nr
cat /proc/sys/kernel/inode-nr
See "man proc" for more info about /proc, it's fascinating.
There are numerous file locking options. The new Samba 2.0.0 is very
close to NT I hear. I have never had problems with file locking. The
defaults are pretty much spot on. The smb.conf
man page, the Samba source doc directory and Samba home page will
tell you all you need to know about possible tweaks. The tweaks are there
primarily to cope with buggy Windows applications.
See Linux's Hardware-HOWTO for supported and unsupported tape drives.
If you already have a SCSI controller in the server, a SCSI DAT Tape unit
would be a robust safe option.
Sources of info:
Linux HOWTOs: http://metalab.unc.edu/LDP/HOWTO/HOWTO-INDEX.html
Samba: http://www.samba.org
Deja news is great for searching mail and news archives ,particularly
usefull for specific problems or configurations.
http://www.dejanews.com/
Benjamin Suto wrote:>
> First of all, kudos to the Samba crew. You've made a great
application,
> which will hopefully commodotize Microsoft's biggest asset, their NT
> server.
>
> I've set up Samba 2.0.0 as a PDC with roaming profiles. All seems to
> work well with the small limited set of machines I've used.
Backgrounds
> and all settings seem to be saved, and all works well. It took quite a
> bit of time to get working properly, but it seems to work with no
> problems.
>
> At this point, I'm in need of a little bit of advice.
>
> How is Samba with scalability? The company I'm consulting for would
> like to run 100+ clients using the Samba PDC, and I'd like to know what
> to expect.
>
> Do I have to patch my kernel for file descriptors? I will be running a
> copy of 2.2 by the time the server is fully operational.
>
> What kind of hardware should I be looking into putting into the server?
> The server will mainly be serving roaming profiles and user documents
> and data.
>
> What kind of optimizations should I look at, to keep the system running
> optimally?
>
> Are there any problems with using it with so many clients at once?
>
> What about file locking?
>
> Tape backup solutions? What solutions are out there (pay or
> otherwise)? It needs to be a proven and reliable program, since this
> is a rather mission-critical server.
>
> Are there any other problems that may show up with so many clients that
> I should be aware of?
>
> Are there any resources out there for finding this information out,
> other than pestering the people in this news group?
>
>
> Thanks for your help, whichever kind soul decides to write back.
>
> Ben
>
--
Peter Debus
Computer Systems Administrator
School of Mathematical Computer Sciences
University of New England
Armidale NSW
Australia
Ph: 61 (0)267 73 2412 Fax: 61 (0)267 73 3312