martillo@ATHENA.MIT.EDU (05/06/87)
Does anybody have figures for obtained packet rates for asynchronous terminal concentrators over ethernet? I mean the configuration where the host has an ethernet interface and lives on the same LAN as the asynchronous terminal concentrator which supports say 8-16 terminals. I think DEC has a product of this type called LAT (LAN Asynchronous Terminal?). I would suspect that because protocol layers 3 and 4 would not need to be implemented that better performance would be obtained than with telnet or rlogin based terminal concentrators (although internetting would be impossible). I would still be interested in figures for telnet or rlogin style terminal concentrators as well. Also while the maximum packet rate at the concentrator is of interest, I would really like to know what sort of packet rates people consider good on the host side. Yakim Martillo
root@TOPAZ.RUTGERS.EDU (Charles Hedrick) (05/06/87)
I just took a look at some statistics from three of our Cisco terminal servers. Since it's 3am, packet rates wouldn't show much, but I have some other data which is probably in the long run more useful. This shows the total number of packets in and out for each session, the total number of bytes, and the number of packets with data. By looking at the fraction of packets with data, you can get a feeling for how much you are paying for TCP ack and window updates. Note however that even with LAT, there surely has to be some sort of acknowledgements, so it can't be 100% efficient either. The original data contains a lot more info about the innards of the TCP protocol handling, but I have omitted it as it didn't seem relevant to this discussion. It looks like well over half (typically over 2/3) of the packets received have data (i.e. are not just acks), and the amount of data per packet is fairly high. It looks like around half, or maybe slightly less of the packets sent have data, and as you would expect it is about one char per packet. (A couple of the connections have been idle for long periods, so you see packets that aren't doing much.) It looks to me like this is about as efficient as one can hope for. It looks like acks for stuff we send typically gets piggybacked on the echo, but the stuff that comes back requires separate acks. This is what you'd expect with a simple model of what is going on, and is presumably going to be the same for any protocol that is designed to use unreliable networks. The number of characters per packet also seems good. Obviously I can't compare this with LAT without seeing data on LAT, but there doesn't seem to be a lot of room for improvement. dialup to Sun (4.2 IP, 4.3 beta TCP), though one gateway Rcvd: 4694 (out of order: 0), with data: 4374, total data bytes: 160181 Sent: 6456 (retransmit: 1), with data: 3988, total data bytes: 4220 dialup to Pyramid (4.3 TCP/IP, with telnetd in the kernel) Rcvd: 1981 (out of order: 0), with data: 1634, total data bytes: 119314 Sent: 1626 (retransmit: 0), with data: 824, total data bytes: 900 hardwired to Sun, through one gateway Rcvd: 2472 (out of order: 0), with data: 1265, total data bytes: 114771 Sent: 2489 (retransmit: 0), with data: 175, total data bytes: 191 hardwired to Pyramid Rcvd: 12195 (out of order: 0), with data: 7116, total data bytes: 88935 Sent: 9044 (retransmit: 0), with data: 6957, total data bytes: 7206 hardwired to Sun, through one gateway Rcvd: 671 (out of order: 0), with data: 406, total data bytes: 10684 Sent: 834 (retransmit: 0), with data: 340, total data bytes: 349 hardwired to DEC-20 Rcvd: 14579 (out of order: 0), with data: 410, total data bytes: 54371 Sent: 492 (retransmit: 0), with data: 207, total data bytes: 249
CERF@A.ISI.EDU.UUCP (05/06/87)
Yakim, LAT stands for the name of the protocol used by Digital to support terminal to host access over an ethernet. Dunno what rates you can expect, but we were supporting 35-50 concurrent virtual terminals from a microvax II across an ethernet to a bunch of hosts. Oh, each VT was operating between 1200 and 2400 bps but the protocol to the microvax was line at a time X.25. Vint
SYSTEM@CRNLNS.BITNET.UUCP (05/07/87)
Charles,
Thanks for the Ethernet utilization statistics for your Cisco
terminal servers. It's consistant with what I've seen for
one host based TELNET program.
Unfortunately, though, it's not the whole story.
The problem that we've encountered is the high
CPU overhead used by at least one TELNET implementation under VMS.
I am enclosing a copy of a brief test that I did recently.
It's certainly not definitive, but it gives one food for thought.
Selden E. Ball, Jr.
(Wilson Lab's network and system manager)
Cornell University NYNEX: +1-607-255-0688
Laboratory of Nuclear Studies BITNET: SYSTEM@CRNLNS
Wilson Synchrotron Lab ARPA: SYSTEM%CRNLNS.BITNET@WISCVM.WISC.EDU
Judd Falls & Dryden Road PHYSnet/HEPnet/SPAN:
Ithaca, NY, USA 14853 LNS61::SYSTEM = 44283::SYSTEM (node 43.251)
P.S. The Ethernet utilization figures were obtained by running
a patched version of VMS Monitor with the command
$ MONITOR ETHERNET
I can send you a copy of the patch if you don't have it.
S.
-------------------------------------------------------------------
The following is a report of a test done using CMU/TEK TCP/IP
by S.Ball on April 23rd and 24th, 1987
Executive summary:
=================
If we run TCP/IP for production use, we will need a front end.
CMU/TEK TCP/IP software uses an excessive amount of cpu resources
for terminal support both outbound, when accessing another system,
and inbound, when the local system is hosting a session.
Environment:
============
2 VAX-11/750s (LNS53 and CLE750) with FPA and 5 Megabytes of memory,
running VMS 4.4 and connected with DEUNA Ethernet interfaces.
The CMU TCP/IP package being tested consisted of
FINGER V2.4, SMAIL V2.5, TELNET V3.0, and IP/ACP V6.0.
Only TELNET and IP/ACP were actually involved in this test.
Each of the tests was run for only about a minute, so the percentages
aren't accurate to better than about 5% or worse.
Unfortunately, that size of error is unimportant.
TELNET i/o test
---------------
I used a 9600 baud terminal connected to a DEC LAT-11 terminal server
on Ethernet. Past studies have shown the LAT protocol to be
comparable to DMF-32 connections in terms of its CPU use.
First I logged into LNS53 (3 others were logged in doing nothing),
and then did a TELNET to CLE750 (where 1 other was logged in doing nothing)
and gave the command "TYPE DOC:*.*;*". Our DOC: directory contains
many text files of various sizes.
results:
--------
(the actual numbers fluctuated +/- 5% or so, presumably due to disk
file open overhead)
The transfer used 100% of the cpu on (remote) CLE750
====
(20% kernel, 80% user, <5% interrupt)
User mode programs on on CLE750 were the TELNET server using about 50%,
IP_ACP using about 15%, and TYPE using about 15%.
It used 50% of the cpu on (local) LNS53 (15% kernel, 35% user, <5% interrupt)
===
User mode programs on LNS53 were TELNET and IP_ACP, using approximately
equal fractions of the cpu, but with large fluctuations.
Ethernet use went from 10Kbytes/sec to about 15Kbytes/sec.
The Ethernet packet size averaged about 100 bytes,
presumably 1 per record of terminal output.
But, if we assume half of the i/o increase was Lat from LNS53 to the
LAT-11, and half was TELNET from CLE750 to LNS53, this implies, since
the terminal i/o was < 1 Kbyte/sec x 2 = < 2 Kbytes/sec, that there was
> 3 Kbytes/sec of overhead somewhere. Some of the excess may
have been due to other systems doing Ethernet i/o at the same time.
For comparison:
==============
Using DECnet SET HOST
---------------------
I used the same 9600 baud terminal connected to a DEC LAT-11
terminal server on Ethernet.
I logged into LNS53 (1 other user was running a cpu bound job),
I did a SET HOST to CLE750 (where 1 other was logged in doing nothing),
and used the command "TYPE DOC:*.*;*"
On LNS53, there was no observable degredation in my terminal output
due to the other job, but the other job averaged > 75% of the cpu.
In contrast to TELNET use, CLE750 averaged > 85% idle.
Kernel and Interrupt modes fluctuated from 2% to 10% each,
apparently dominated by disk file open operations.
Unfortunately, the increased load on Ethernet wasn't observable:
it was already fluctuating between 35 and 45 Kbytes/sec.
Using a direct LAT connection
-----------------------------
Again I used the 9600 baud terminal connected to a DEC LAT-11 terminal
server on Ethernet.
I logged into CLE750 (there was 1 other user logged in doing nothing),
and gave the command "TYPE DOC:*.*;*"
CLE750 averaged > 85% idle.
Kernel and Interrupt modes fluctuated from 2% to 10% each,
apparently dominated by disk file open operations.
Ethernet use went from about 11 Kbytes/sec to maybe 12.5 Kbytes/sec.
SYSTEM@CRNLNS.BITNET (05/08/87)
Thanks for the information about WIN/VX performance. My tests of the CMU/TEK TCP/IP package were using CMU's "shared DEUNA" code. DECnet and LAT were also using the same hardware. CMU's software uses DEC's XE driver, creating additional logical devices. Obviously, I'll have to try to do another test using a separate DEUNA. Selden
ROODE@BIONET-20.ARPA (David Roode) (05/08/87)
The numbers you quote are extremely similar to those sent by David Kashtan over a year ago concerning the affect of context switching on performance of Telnet service. Kashtan is the implementor of a package which includes IP and TCP and TELNET and which has now become available from SRI International. This package has been in existence for a very long time, and his previous message, if memory serves me, concerned some experiments he did with a non-Kernel implementation of the above protocols. The problem is that the CPU can be consumed by the context switching needed for character at a time I/O as common in Telnet. Kashtan's experience was that a single 9600 baud Telnet connection could consume nearly an entire 780. Again, this is subject to my recall. However, his implementation handles things very differently and runs in Kernel mode. As a result it is much more efficient. We have it here on MicroVaxes and it is the primary means for users to use the machine, i.e. there are no hardwire terminal ports to speak of, so everyone comes in via cisco boxes. We note no problems with the Telnet connections to the microvax consuming excess resources, although we typically only have 6-8 at a time of peak usage. -------
melohn@SUN.COM.UUCP (05/08/87)
Local Area Terminal is a DEC propritary protocol. Hypothetically, if you were to combine the I/O from several terminal sessions into a single message between each server and host pair, you might very well exceed the figures Charles is seeing with Cisco Terminal concentrators, espcially when multiple sessions are communicating with the same host. If you limited the frequency of how often you sent messages to each host to some value (like 80ms), and required the host to in most cases send a message only in reply to a message from the server, the amount of traffic would be further reduced.
leres@ucbarpa.Berkeley.EDU.UUCP (05/08/87)
I'm not familiar with the cmu/tek vms tcp/ip. Does it use the Salkind epacket/elink code? The (low) performance you quote in your posting leads me to believe so. Salkind's code was the first to share the deuna with decnet. Basically, a process (elink) hangs reads on the deuna and on a raw internet socket. When a packet comes in off the wire, elink gets it and then writes it onto the raw socket. It goes through the internet code, comes out via the indriver, and arrives in the users buffer. An out bound packet goes the other way; from user process to internet kernel to elink process to deuna driver. At the time it was first implemented, elink was great; you could have decnet and internet on your machine without buying two ethernet interfaces. But obviously, having data pass through the elink process isn't very efficient. Decnet uses an (undocumented) internal interface to the ethernet driver called the alt start facility. This facility allows kernel use of the ethernet driver. I recently rewrote epacket for the Wollongong Group's WIN/VX product. Now, packets go directly from the ethernet driver to the internet code so things runs faster and uses less cpu time. If I login to a 9600 baud hardwired terminal on a 780 and telnet to a 750 and do "help /nopage * * *", the 780 is 95% idle and the 750 is 60% idle. On occasion, I have achieved 85 Kbytes/sec between the VMS 780 and a 4.3 Unix 780. I've heard that Kashtan rewrote epacket to use the internal "ffi" interface to the ethernet driver for SRI's Multinet product. I'd expect it to also be much faster than an elink process implementation. I don't sell or distribute these products. If you are interested in them, please contact TWG or SRI. Craig
lamaster@ames.UUCP (Hugh LaMaster) (05/08/87)
In article ... SYSTEM@CRNLNS.BITNET writes: > >The problem that we've encountered is the high >CPU overhead used by at least one TELNET implementation under VMS. >The following is a report of a test done using CMU/TEK TCP/IP : >CMU/TEK TCP/IP software uses an excessive amount of cpu resources >2 VAX-11/750s (LNS53 and CLE750) with FPA and 5 Megabytes of memory, >running VMS 4.4 and connected with DEUNA Ethernet interfaces. >The transfer used 100% of the cpu on (remote) CLE750 > ==== >(20% kernel, 80% user, <5% interrupt) > >User mode programs on on CLE750 were the TELNET server using about 50%, >IP_ACP using about 15%, and TYPE using about 15%. One part of the results surprised me, based on my experiments. I have performed essentially the same experiments, using Wollongong TCP/IP on VMS. a terminal uses about 5-6% in user state. However, during the same period, total system usage (user + interrupt + kernel) was about 15%. This was true with both telnet and a direct wired terminal. Two points: 1) Wollongong TCP/IP is clearly more efficient than the TCP/IP you used; and 2) I saw higher overhead from direct wired terminals than you did (I am wondering why right now :-) ). Anyway, I was concerned about telnet overhead myself, but found no observable difference between network and direct wired. This surprised me, I admit; Wollongong has improved a great deal in the last releases. An interesting part to me was discovering just how expensive terminal I/O is on VMS. 7 9600 baud terminals at full output saturated a 785... I think it is definitely a question which should be addressed more carefully by the terminal server vendors. Some implementations work fine, others seem to be a problem. Most of the vendors don't seem to have looked at this as carefully as I would have expected.