Mailing List Archive

How many consoles?
Hello,

I wonder how many consoles people have managed to get working with a
single conserver server. I've got 46 working fine now (using direct
connections from conserver, no piped telnet). My server is an Ultra1
running Solaris 8 in 64-bit mode. It's important for me that I can scale
quite a lot further, I may reach up to 1-200 consoles or so..

Cheers,

--
Anders.
Re: How many consoles? [ In reply to ]
On Fri, Jun 07, 2002 at 02:15:51PM +0200, Anders Nordby wrote:
> I wonder how many consoles people have managed to get working with a
> single conserver server. I've got 46 working fine now (using direct
> connections from conserver, no piped telnet). My server is an Ultra1
> running Solaris 8 in 64-bit mode. It's important for me that I can scale
> quite a lot further, I may reach up to 1-200 consoles or so..

Only 46!?! ;-)

At one site I'm working on, the conserver.cf file is nearly 2500
line, for a 3-server, distributed mode installation, controlling
more than 2000 console ports, across 25 terminal servers, and one
conserver host has close to 70 child processes under the main process.

(Just remember the math in your configuration file (cons.h) before
you do the build...we're using maxgrp=96, but just make sure that
you can spawn enough processes to cover all of the ports that you
want to connect to, and make sure your host has enough RAM for
all of the processes.)

-Z-
Re: How many consoles? [ In reply to ]
[. On Friday, June 7, 2002 at 14:15:51 (+0200), Anders Nordby wrote: ]
> Subject: How many consoles?
>
> I wonder how many consoles people have managed to get working with a
> single conserver server. I've got 46 working fine now (using direct
> connections from conserver, no piped telnet). My server is an Ultra1
> running Solaris 8 in 64-bit mode. It's important for me that I can scale
> quite a lot further, I may reach up to 1-200 consoles or so..

You should already have all the information at your disposal that you
need to calculate the resource consumption of your conserver as it
scales up. Every sixteen consoles requires a new conserver process (and
of course there's the one master), and every process requires additional
memory equal to the sum of the data and BSS section sizes, plus stack
and heap space allocation. You can estimate the stack and heap sizes by

$ ps -auxc | sed -n -e 1p -e /cons/p
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 4597 0.0 0.1 492 88 ?? Is Tue10PM 4:07.38 conserver
root 4598 0.0 0.6 22480 360 ?? S Tue10PM 21:12.25 conserver

Let's ignore the second process for now -- more about it later.

The first process, the master should be a good estimate of the ideal
memory use of each process.

$ file /usr/local/sbin/conserver
/usr/local/sbin/conserver: NetBSD/sparc demand paged dynamically linked executable
$ size /usr/local/sbin/conserver
text data bss dec hex
81920 8192 0 90112 16000

So, there's 8KB data allocated immediately per process. However the
virtual size of the running master is 492KB. That suggests there was an
additional 484KB allocated for stack and heap space.

That said, as you can see above there's still a very serious memory
leak somewhere, and that'll drastically affect scalability in any
production system.... The second conserver process is allocating an
additional 1.2KB or so with every client connection (I have a cron job
that makes console client connections to collect data from my three UPS
units once every minute).

--
Greg A. Woods

+1 416 218-0098; <gwoods@acm.org>; <g.a.woods@ieee.org>; <woods@robohack.ca>
Planix, Inc. <woods@planix.com>; VE3TCP; Secrets of the Weird <woods@weird.com>