[comp.unix.xenix.sco] How would you handle 5000+ users?

kew@cims2.uucp (Keith Walker) (11/06/90)

What happens when you ask XENIX to handle 5000+ users in a passwd
file? Is this the way to do things? All we want to do really is
provide for e-mail between all of these users; but there's sooo many!
I've never dealt with a system larger than about 100 users (and note
that that is *users* not terminals -- there are only eight modems and
a couple of terminals), and the thought of having to deal with over
5000 users seems slightly intimidating.

Does a stock XENIX or UNIX handle this kind of load well? Obviously,
all those people aren't on-line at the same time, but is having a passwd
file with 5000+ lines in it and 5000+ home directories just asking too
much of humble XENIX?

Please e-mail your response. I don't think that this topic has wide
interest, but I would like to start a conversation with someone that
have dealt with problems like this before.


-- 
Keith Walker           Domain: kew@cims.com
                         UUCP: uunet!proto!cims2!kew
			Voice: +1 509/466-9384

chip@chinacat.Unicom.COM (Chip Rosenthal) (11/07/90)

In article <1990Nov6.014513.26144@cims2.uucp> kew@cims2.uucp
	(Keith Walker) writes:
>What happens when you ask XENIX to handle 5000+ users in a passwd
>file?

Anything which attempts a getpwent() et. al. becomes unusable.

I ran some tests with two passwd files: a 44-line version and a 5044-line
version.  The big one was created by appending the active stuff to the
end of 5000-lines of dummy entries, those providing some worst-case
values.  (That is, this guarantees that nearly 5000 lines need to be
scanned before the desired passwd record would be found.)

My results were:

    ------------------------    -----------	-----------

				big passwd	small passwd

    ------------------------    -----------	-----------

    ls -l /etc		real	1:34.36		0:01.52
		    	user	0:53.60		0:00.42
		    	sys	0:05.10		0:00.56

        With a huge passwd file, ls -l would freeze anytime a file with
        different group/user ownership came up and this information needed
        to be retrieved.

    ------------------------    -----------	-----------

    elm			real	0:05.46		0:01.36
		    	user	0:04.10		0:00.62
		    	sys	0:00.86		0:00.58

	    This involved starting up and immediately quitting Elm.

    ------------------------    -----------	-----------

    sending mail	real	0:02.38		0:00.50
		    	user	0:01.88		0:00.08
		    	sys	0:00.34		0:00.22

	This test involved running the command:
	
	    echo "testing" | /usr/lib/sendmail chip bin root uucp

	where sendmail is really smail3.1.

    ------------------------    -----------	-----------

    login			~3 sec		~3 sec

        This was timed on my watch.  Repeatability of my typing is
        +-800msec, and my eyeballs are calibrated to 396msec.

    ------------------------    -----------	-----------

My gut feel is that if users do nothing but use mail, performance will be
degraded but possibly acceptable.  If they plan on talking to a shell,
it will be unusable - stuff like "ls -l" will be too painful.

If you have your heart set on this system, one kludge might be to build
yourself a DBM database of /etc/passwd,  write a modified getpwent() and
friends which use this database, get your hands on available versions of
common utilities (e.g. ls from the GNU fileutils), and compile it with
your library.

Can somebody who knows YP comment on whether something might be done
with a 386 UNIX to make this work?

-- 
Chip Rosenthal  <chip@chinacat.Unicom.COM>
Unicom Systems Development, 512-482-8260 
Our motto is:  We never say, "But it works with DOS."

cat@tygra.ddmi.com (CAT-TALK Maint. Account) (11/07/90)

In article <1990Nov6.014513.26144@cims2.uucp> kew@cims2.uucp (Keith Walker) writes:
"What happens when you ask XENIX to handle 5000+ users in a passwd
"file? Is this the way to do things? All we want to do really is
"provide for e-mail between all of these users; but there's sooo many!
"I've never dealt with a system larger than about 100 users (and note
"that that is *users* not terminals -- there are only eight modems and
"a couple of terminals), and the thought of having to deal with over
"5000 users seems slightly intimidating.
"

We have almost 2000 users in the password file here at CAT-TALK and so
far there isn't a problem (ie: Xenix can handle it fine). For securities 
sake, keep an "authorized copy" of your password file offline and upload
it every now and then and compare it with the active password file to 
make sure no one has hacked into your system and added any bogus users.

"Does a stock XENIX or UNIX handle this kind of load well? Obviously,
"all those people aren't on-line at the same time, but is having a passwd
"file with 5000+ lines in it and 5000+ home directories just asking too
"much of humble XENIX?
"

We split the user's home directories between 4 separate filesystems.
Empty, all of these directories take 256000 bytes. The problem is that
we would run out of inodes if people started getting alot of files
in their directories. Also, spreading out the filesystems on 4
separate drives reduces that contention for access to any one disk drive,
keeping things from slowing down due to disk I/O.

Does anyone know if there *IS* a limit on number of entries in the 
password file? Does Xenix keep a "cache" in memory somewhere and if
so, is it a complete copy??