On Mar 9, 2023, at 11:55 AM, Dan Cross <crossd(a)gmail.com> wrote:
Suppose that 1000 users telnet'ed into the x86 machine, but remained
essentially idle; what resources would that consume? We'd have 1000
open TCP connections, a thousand shell processes, a thousand
telnetd's, etc. All of that would consume some amount of RAM (though
there'd be a lot of sharing of text and read-only data and so on),
some VM space requiring RAM for paging structures and so on, some
accounting data in the kernel, 1000 pseudo-ttys allocated, entries in
the process table, etc. But, most of those shells would spend most of
their time blocked waiting on input, so wouldn't consume CPU
continuously, and similarly with the TCP connections mostly idle, the
kernel is not generally wasting a lot of processor time on the login
sessions. There'd be some bookkeeping data on disk, but that would be
small. System overhead would amount to maybe a few megabytes, I'd
imagine.
Not the same but in 1995 at Real Networks our server s/w running on
a 50Mhz or 100Mhz Pentium could handle 1000 TCP control connections
(mostly idle) and 1000 UDP "streams", each sending 10 packets/second,
which was the limiting factor. IIRC we had reduced per socket tcp
send/recv buffer size to a small number. I don't recall now whether
these machines had more than 16GB but we didn't want to tie up lots
of memory in idle buffers.
We got a real boost in traffic in Oct'95 when people all over the
world wanted to know the verdict in O.J.Simpson's murder trial in
real time! After that I added code for feeding live streams to any
downstream servers so that theoretically a 3 level distribution
tree can deliver live data to a billion people.