home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.lbl.gov / 2014.05.ftp.ee.lbl.gov.tar / ftp.ee.lbl.gov / email / vanj.88oct24.txt < prev    next >
Text File  |  1995-11-10  |  7KB  |  148 lines

  1. BBoard-ID: 7621
  2. BB-Posted: Tue, 25 Oct 88 2:06:08 EDT
  3. To: tcp-ip@sri-nic.ARPA
  4. Subject: 4BSD TCP Ethernet Throughput
  5. Date: Mon, 24 Oct 88 13:33:13 PDT
  6. From: Van Jacobson <van@helios.ee.lbl.gov>
  7.  
  8. Many people have asked for the Ethernet throughput data I
  9. showed at Interop so it's probably easier to post it:
  10.  
  11. These are some throughput results for an experimental version of
  12. the 4BSD (Berkeley Unix) network code running on a couple of
  13. different MC68020-based systems: Sun 3/60s (20MHz 68020 with AMD
  14. LANCE Ethernet chip) and Sun 3/280s (25MHz 68020 with Intel
  15. 82586 Ethernet chip) [note again the tests were done with Sun
  16. hardware but not Sun software -- I'm running 4.?BSD, not Sun
  17. OS].  There are lots and lots of interesting things in the data
  18. but the one thing that seems to have attracted people's
  19. attention is the big difference in performance between the two
  20. Ethernet chips.
  21.  
  22. The test measured task-to-task data throughput over a TCP
  23. connection from a source (e.g., chargen) to a sink (e.g.,
  24. discard).  The tests were done between 2am and 6am on a fairly
  25. quiet Ethernet (~100Kb/s average background traffic).  The
  26. packets were all maximum size (1538 bytes on the wire or 1460
  27. bytes of user data per packet).  The free parameters for the
  28. tests were the sender and receiver socket buffer sizes (which
  29. control the amount of 'pipelining' possible between the sender,
  30. wire and receiver).  Each buffer size was independently varied
  31. from 1 to 17 packets in 1 packet steps.  Four tests were done at
  32. each of the 289 combinations.  Each test transferred 8MB of data
  33. then recorded the total time for the transfer and the send and
  34. receive socket buffer sizes (8MB was chosen so that the worst
  35. case error due to the system clock resolution was ~.1% -- 10ms
  36. in 10sec).  The 1,156 tests per machine pair were done in random
  37. order to prevent any effects from fixed patterns of resource
  38. allocation.
  39.  
  40. In general, the maximum throughput was observed when the sender
  41. buffer equaled the receiver buffer (the reason why is complicated
  42. but has to do with collisions).  The following table gives the
  43. task-to-task data throughput (in KBytes/sec) and throughput on
  44. the wire (in MBits/sec) for (a) a 3/60 sending to a 3/60 and
  45. (b) a 3/280 sending to a 3/60.
  46.  
  47.     _________________________________________________
  48.     |              3/60 to 3/60   |  3/280 to 3/60   |
  49.     |            (LANCE to LANCE) | (Intel to LANCE) |
  50.     | socket                      |                  |
  51.     | buffer     task to          | task to          |
  52.     |  size       task      wire  |  task      wire  |
  53.     |(packets)   (KB/s)    (Mb/s) | (KB/s)    (Mb/s) |
  54.     |    1         384      3.4   |   337      3.0   |
  55.     |    2         606      5.4   |   575      5.1   |
  56.     |    3         690      6.1   |   595      5.3   |
  57.     |    4         784      6.9   |   709      6.3   |
  58.     |    5         866      7.7   |   712      6.3   |
  59.     |    6         904      8.0   |   708      6.3   |
  60.     |    7         946      8.4   |   710      6.3   |
  61.     |    8         954      8.4   |   718      6.4   |
  62.     |    9         974      8.6   |   715      6.3   |
  63.     |   10         983      8.7   |   712      6.3   |
  64.     |   11         995      8.8   |   714      6.3   |
  65.     |   12        1001      8.9   |   715      6.3   |
  66.     |_____________________________|__________________|
  67.  
  68. The theoretical maximum data throughput, after you take into
  69. account all the protocol overheads, is 1,104 KB/s (this
  70. task-to-task data rate would put 10Mb/s on the wire).  You can
  71. see that the 3/60s get 91% of the the theoretical max.  The
  72. 3/280, although a much faster processor (the CPU performance is
  73. really dominated by the speed of the memory system, not the
  74. processor clock rate, and the memory system in the 3/280 is
  75. almost twice the speed of the 3/60), gets only 65% of
  76. theoretical max.
  77.  
  78. The low throughput of the 3/280 seems to be entirely due to the
  79. Intel Ethernet chip: at around 6Mb/s, it saturates.  (I put the
  80. board on an extender and watched the bus handshake lines on the
  81. 82586 to see if the chip or the Sun interface logic was pooping
  82. out.  It was the chip -- it just stopped asking for data.  (The
  83. CPU was loafing along with at least 35% idle time during all
  84. these tests so it wasn't the limit).
  85.  
  86. [Just so you don't get confused:  Stuff above was measurements.
  87.  Stuff below includes opinions and interpretation and should
  88.  be viewed with appropriate suspicion.]
  89.  
  90. If you graph the above, you'll see a large notch in the Intel
  91. data at 3 packets.  This is probably a clue to why it's dying:
  92. TCP delivers one ack for every two data packets.  At a buffer
  93. size of three packets, the collision rate increases dramatically
  94. since the sender's third packet will collide with the receiver's
  95. ack for the previous two packets (for buffer sizes of 1 and 2,
  96. there are effectively no collisions).  My suspicion is that the
  97. Intel is taking a long time to recover from collisions (remember
  98. that you're 64 bytes into the packet when you find out you've
  99. collided so the chip bus logic has to back up 64 bytes -- Intel
  100. spent their silicon making the chip "programmable", I doubt they
  101. invested as much as AMD in the bus interface).  This may or may
  102. not be what's going on:  life is too short to spend debugging
  103. Intel parts so I really don't care to investigate further.
  104.  
  105. The one annoyance in all this is that Sun puts the fast Ethernet
  106. chip (the AMD LANCE) in their slow machines (3/50s and 3/60s)
  107. and the slow Ethernet chip (Intel 82586) in their fast machines
  108. (3/180s, 3/280s and Sun-4s, i.e., all their file servers).
  109. [I've had to put delay loops in the Ethernet driver on the 3/50s
  110. and 3/60s to slow them down enough for the 3/280 server to keep
  111. up.]  Sun's not to blame for anything here:  It costs a lot
  112. to design a new Ethernet interface; they had a design for the
  113. 3/180 board set (which was the basis of all the other VME
  114. machines--the [34]/280 and [34]/110); and no market pressure to
  115. change it.  If they hadn't ventured out in a new direction with
  116. the 3/[56]0 -- the LANCE -- I probably would have thought
  117. 700KB/s was great Ethernet throughput (at least until I saw
  118. Dave Boggs' DEC-Titan/Seeq-chip throughput data).
  119.  
  120. But I think Sun is overdue in offering a high-performance VME
  121. Ethernet interface.  That may change though -- VME controllers
  122. like the Interphase 4207 Eagle are starting to appear which
  123. should either put pressure on Sun and/or offer a high
  124. performance 3rd party alternative (I haven't actually tried an
  125. Eagle yet but from the documentation it looks like they did a
  126. lot of things right).  I'd sure like to take the delay loops out
  127. of my LANCE driver...
  128.  
  129.  - Van
  130.  
  131. ps: I have data for Intel-to-Intel and LANCE-to-Intel as well as
  132.     the Intel-to-LANCE I listed above.  Using an Intel chip on the
  133.     receiver, the results are MUCH worse -- 420KB/s max.  I chose
  134.     the data that put the 82586 in its very best light.
  135.  
  136.     I also have scope pictures taken at the transceivers during all
  137.     these tests.  I'm sure there'll be a chorus of "so-and-so violates
  138.     the Ethernet spec" but that's a lie -- NONE OF THESE CHIPS OR
  139.     SYSTEMS VIOLATED THE ETHERNET SPEC IN ANY WAY, SHAPE OR FORM.
  140.     I looked very carefully for violations and have the pictures to
  141.     prove there were none.
  142.  
  143.     Finally, all of the above is Copyright (c) 1988 by Van Jacobson.
  144.     If you want to reproduce any part of it in print, you damn well
  145.     better ask me first -- I'm getting tired of being misquoted in
  146.     trade rags.
  147.  
  148.