<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Hello everybody,<br>
<br>
This is a long message. I have done some performance testing of an
application built on top of Spread and I have discovered that, while
Spread has a pretty good latency which scales well with the amount of
data being transmitted, the number of retransmissions is pretty high
and the bandwidth utilization does not exceed 70%. I would like to know
if there are any optimizations that I could do -- in addition to the
ones described here -- to drive the end-to-end latency down by reducing
the number of retransmissions and by using more bandwidth. I am
presenting three examples, which are different runs of the same
application.. At the end of this message, I am summarizing the most
important (in my opinion) observations and I am drawing some
conclusions from them, so you can skip directly to that point if you
think the details are not very important. <br>
<br>
<br>
The difference between the three examples below is that the message
payloads are 4 KB, 16 KB and 64 KB. The application is sending other
messages as well, but their size is negligible when compared to the
"big" messages.&nbsp; Basically, with each new experiment I am sending 4
times more data. <br>
<br>
A simplified, but
correct description of the application is that only 3 hosts are sending
the "big" messages, after receiving requests
from one of the other 17 hosts. In the rest of this message, by
"round-trip time" I mean the time elapsed between sending such a
request and receiving the "big" message. The spmonitor screenshots
below are from one of the hosts sending "big" messages.<br>
<br>
<br>
I am running Spread on Emulab in a 100 Mbps LAN with 20 hosts. Each
host is a Pentium III @ 850 MHz (1697 bogomips), running Linux RedHat
9.0 with the TimeSys 3.1 kernel: <br>
<br>
<tt>-bash-2.05b$ uname -a<br>
Linux fourofnine.tsl25.pces.emulab.net 2.4.7-timesys-3.1.214 #1 Tue Oct
21 20:42:36 MDT 2003 i686 unknown</tt><br>
<br>
I should also note that we have tuned the parameters of Spread to get
the best performance in this setting. The timeouts are significantly
reduced, and <tt>MAX_SESSION_MESSAGES</tt> is about 30,000. The Spread
daemons
have a real-time FIFO scheduling policy, with priority 1. On each node,
the only other process that has a real-time scheduling policy is the
ssh daemon (with the same priority). Also, due to some particularities
of Emulab, the multicast address and the IP address of a host belong to
different network interfaces. The results for the three examples are
listed below. <br>
<br>
<br>
"4K" EXAMPLE<br>
<tt><br>
============================<br>
Status at fourofnine V 3.17. 3 (state 1, gstate 1) after 77 seconds :<br>
Membership&nbsp; :&nbsp; 20&nbsp; procs in 1 segments, leader is fourofnine<br>
<b>rounds&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 5304</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tok_hurry :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 36&nbsp;&nbsp;&nbsp;&nbsp; memb
change:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br>
sent pack:&nbsp;&nbsp; 48921&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recv pack :&nbsp; 189302&nbsp;&nbsp;&nbsp;&nbsp; retrans&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp; 471<br>
<b>u retrans:&nbsp;&nbsp;&nbsp;&nbsp; 244&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s retrans :&nbsp;&nbsp;&nbsp;&nbsp; 227</b>&nbsp;&nbsp;&nbsp;&nbsp; b retrans&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>
My_aru&nbsp;&nbsp; :&nbsp; 228644&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aru&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp; 228574&nbsp;&nbsp;&nbsp;&nbsp; Highest seq:&nbsp; 228644<br>
Sessions :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Groups&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19&nbsp;&nbsp;&nbsp;&nbsp; Window&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60<br>
Deliver M:&nbsp; 131667&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deliver Pk:&nbsp; 228662&nbsp;&nbsp;&nbsp;&nbsp; Pers Window:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15<br>
Delta Mes:&nbsp;&nbsp; 19619&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Delta Pack:&nbsp;&nbsp; 34180</b>&nbsp;&nbsp;&nbsp;&nbsp; Delta sec&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>
==================================<br>
<br>
Monitor&gt; Monitor: send status query<br>
<br>
============================<br>
Status at fourofnine V 3.17. 3 (state 1, gstate 1) after 87 seconds :<br>
Membership&nbsp; :&nbsp; 20&nbsp; procs in 1 segments, leader is fourofnine<br>
<b>rounds&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 6080</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tok_hurry :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 36&nbsp;&nbsp;&nbsp;&nbsp; memb
change:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br>
sent pack:&nbsp;&nbsp; 56158&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recv pack :&nbsp; 217299&nbsp;&nbsp;&nbsp;&nbsp; retrans&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp; 522<br>
<b>u retrans:&nbsp;&nbsp;&nbsp;&nbsp; 245&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s retrans :&nbsp;&nbsp;&nbsp;&nbsp; 277</b>&nbsp;&nbsp;&nbsp;&nbsp; b retrans&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>
My_aru&nbsp;&nbsp; :&nbsp; 262220&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aru&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp; 262130&nbsp;&nbsp;&nbsp;&nbsp; Highest seq:&nbsp; 262220<br>
Sessions :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Groups&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19&nbsp;&nbsp;&nbsp;&nbsp; Window&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60<br>
Deliver M:&nbsp; 150978&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deliver Pk:&nbsp; 262238&nbsp;&nbsp;&nbsp;&nbsp; Pers Window:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15<br>
Delta Mes:&nbsp;&nbsp; 19311&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Delta Pack:&nbsp;&nbsp; 33556</b>&nbsp;&nbsp;&nbsp;&nbsp; Delta sec&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>
==================================<br>
<br>
Monitor&gt; <br>
</tt><br>
In this case, the average round-trip time is 54 ms. Running iftop on
the network interface that has the multicast address shows that this
experiment uses roughly 30 Mb/s of bandwidth. The Spread daemons on my
20 machines utilize between 14% - 21% of the CPU time. In the 10
seconds between the two information displays, the token has rotated 776
times, which means that Spread does about 78 rounds / s. During this
time, about 34000 packets&nbsp; have been delivered, at a rate of 3400
packets / s. (Since the application messages have a variable size, I
believe the packet delivery rate is the right number to reason about
throughput). There have been 0.066 retransmissions per round and 5.1
retransmissions per second. <br>
<br>
<br>
"16K" EXAMPLE<br>
<br>
<tt>============================<br>
Status at fourofnine V 3.17. 3 (state 1, gstate 1) after 81 seconds :<br>
Membership&nbsp; :&nbsp; 20&nbsp; procs in 1 segments, leader is fourofnine<br>
<b>rounds&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 7837</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tok_hurry :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33&nbsp;&nbsp;&nbsp;&nbsp; memb
change:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br>
sent pack:&nbsp;&nbsp; 67319&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recv pack :&nbsp; 293244&nbsp;&nbsp;&nbsp;&nbsp; retrans&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 2970<br>
<b>u retrans:&nbsp;&nbsp;&nbsp;&nbsp; 114&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s retrans :&nbsp;&nbsp;&nbsp; 2856</b>&nbsp;&nbsp;&nbsp;&nbsp; b retrans&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>
My_aru&nbsp;&nbsp; :&nbsp; 268805&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aru&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp; 268685&nbsp;&nbsp;&nbsp;&nbsp; Highest seq:&nbsp; 268805<br>
Sessions :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Groups&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19&nbsp;&nbsp;&nbsp;&nbsp; Window&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60<br>
Deliver M:&nbsp;&nbsp; 54114&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deliver Pk:&nbsp; 268823&nbsp;&nbsp;&nbsp;&nbsp; Pers Window:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15<br>
Delta Mes:&nbsp;&nbsp;&nbsp; 7569&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Delta Pack:&nbsp;&nbsp; 37665</b>&nbsp;&nbsp;&nbsp;&nbsp; Delta sec&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>
==================================<br>
<br>
Monitor&gt; Monitor: send status query<br>
<br>
============================<br>
Status at fourofnine V 3.17. 3 (state 1, gstate 1) after 91 seconds :<br>
Membership&nbsp; :&nbsp; 20&nbsp; procs in 1 segments, leader is fourofnine<br>
<b>rounds&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 8925</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tok_hurry :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33&nbsp;&nbsp;&nbsp;&nbsp; memb
change:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br>
sent pack:&nbsp;&nbsp; 76765&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recv pack :&nbsp; 333725&nbsp;&nbsp;&nbsp;&nbsp; retrans&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 3275<br>
<b>u retrans:&nbsp;&nbsp;&nbsp;&nbsp; 119&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s retrans :&nbsp;&nbsp;&nbsp; 3156</b>&nbsp;&nbsp;&nbsp;&nbsp; b retrans&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>
My_aru&nbsp;&nbsp; :&nbsp; 306503&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aru&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp; 306442&nbsp;&nbsp;&nbsp;&nbsp; Highest seq:&nbsp; 306503<br>
Sessions :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Groups&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19&nbsp;&nbsp;&nbsp;&nbsp; Window&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60<br>
Deliver M:&nbsp;&nbsp; 61700&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deliver Pk:&nbsp; 306521&nbsp;&nbsp;&nbsp;&nbsp; Pers Window:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15<br>
Delta Mes:&nbsp;&nbsp;&nbsp; 7586&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Delta Pack:&nbsp;&nbsp; 37757</b>&nbsp;&nbsp;&nbsp;&nbsp; Delta sec&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>
==================================<br>
<br>
Monitor&gt; </tt><br>
<br>
Now, the average round-trip time is 116 ms. Iftop shows that in this
case I am using about 52 MB/s of bandwidth. The Spread daemons utilize
between 20% - 28% of the CPU time. In this case, Spread does about 109
rounds / s, and delivers about 37000 packets (3700 packets / s). There
have been 0.28 retransmissions per round and 30.5 retransmissions per
second. <br>
<br>
"64K" EXAMPLE<br>
<br>
<tt>============================<br>
Status at nineofnine V 3.17. 3 (state 1, gstate 1) after 88 seconds :<br>
Membership&nbsp; :&nbsp; 20&nbsp; procs in 1 segments, leader is nineofnine<br>
<b>rounds&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 9565</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tok_hurry :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 35&nbsp;&nbsp;&nbsp;&nbsp; memb
change:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br>
sent pack:&nbsp;&nbsp; 79248&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recv pack :&nbsp; 359068&nbsp;&nbsp;&nbsp;&nbsp; retrans&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 4892<br>
<b>u retrans:&nbsp;&nbsp;&nbsp;&nbsp; 124&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s retrans :&nbsp;&nbsp;&nbsp; 4768</b>&nbsp;&nbsp;&nbsp;&nbsp; b retrans&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>
My_aru&nbsp;&nbsp; :&nbsp; 283356&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aru&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp; 283268&nbsp;&nbsp;&nbsp;&nbsp; Highest seq:&nbsp; 283370<br>
Sessions :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Groups&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19&nbsp;&nbsp;&nbsp;&nbsp; Window&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60<br>
Deliver M:&nbsp;&nbsp; 16472&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deliver Pk:&nbsp; 283375&nbsp;&nbsp;&nbsp;&nbsp; Pers Window:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15<br>
Delta Mes:&nbsp;&nbsp;&nbsp; 2077&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Delta Pack:&nbsp;&nbsp; 36195</b>&nbsp;&nbsp;&nbsp;&nbsp; Delta sec&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>
==================================<br>
<br>
Monitor&gt; Monitor: send status query<br>
<br>
============================<br>
Status at nineofnine V 3.17. 3 (state 1, gstate 1) after 98 seconds :<br>
Membership&nbsp; :&nbsp; 20&nbsp; procs in 1 segments, leader is nineofnine<br>
<b>rounds&nbsp;&nbsp; :&nbsp;&nbsp; 10786</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tok_hurry :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 35&nbsp;&nbsp;&nbsp;&nbsp; memb
change:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br>
sent pack:&nbsp;&nbsp; 89484&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recv pack :&nbsp; 405229&nbsp;&nbsp;&nbsp;&nbsp; retrans&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 5514<br>
<b>u retrans:&nbsp;&nbsp;&nbsp;&nbsp; 139&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s retrans :&nbsp;&nbsp;&nbsp; 5375</b>&nbsp;&nbsp;&nbsp;&nbsp; b retrans&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>
My_aru&nbsp;&nbsp; :&nbsp; 319817&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aru&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp; 319618&nbsp;&nbsp;&nbsp;&nbsp; Highest seq:&nbsp; 319817<br>
Sessions :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Groups&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19&nbsp;&nbsp;&nbsp;&nbsp; Window&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60<br>
Deliver M:&nbsp;&nbsp; 18584&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deliver Pk:&nbsp; 319836&nbsp;&nbsp;&nbsp;&nbsp; Pers Window:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15<br>
Delta Mes:&nbsp;&nbsp;&nbsp; 2112&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Delta Pack:&nbsp;&nbsp; 36350</b>&nbsp;&nbsp;&nbsp;&nbsp; Delta sec&nbsp;
:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>
==================================<br>
</tt><tt><br>
Monitor&gt; </tt><br>
<br>
Round-trip delay is 585 ms, bandwidth is 64 Mb/s and CPU utilization is
between 25% - 35%. Spread does about 122 rounds / s and it delivers
3600 packets / s. There have been 5 retransmissions / round and 62
retransmissions / s.<br>
<br>
<br>
<br>
In summary:<br>
<tt>--------------------------------------------------------------<br>
</tt><tt>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "4K"&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "16K"</tt><tt>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
"64K"</tt><br>
<tt>--------------------------------------------------------------<br>
Rounds/s&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 78&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 109&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 122<br>
</tt><tt>Packets/s&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 3400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3700&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3600<br>
</tt><tt>Retransmissions/s&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 5.1 &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 30.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 62<br>
Bandwidth&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 30 Mb/s&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 52 Mb/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 64 Mb/s<br>
CPU&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 14% - 21%&nbsp;&nbsp;&nbsp;&nbsp; 20% - 28%&nbsp;&nbsp;&nbsp;&nbsp; 25% - 35%<br>
Average round-trip&nbsp;&nbsp; &nbsp;&nbsp; 54 ms&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 116 ms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 585 ms<br>
</tt><tt>--------------------------------------------------------------<br>
</tt><br>
>From these (not very rigorous) observations, I can derive the folowing
conclusions:<br>
* The round-trip latency scales sub-linearly with the amount of data
being transmitted<br>
* The throughput is roughly the same for these three examples<br>
* The token rotates faster if there is more data to send<br>
* The rate of retransmission increases if there is more data to send<br>
* Spread doesn't utilize more than 70% of the available bandwidth<br>
<br>
<br>
I believe these results speak well of the performance of the Spread
package. I am wondering if it couldn't do even better. Can you think of
any optimizations that I could do to reduce the retransmission rate and
to improve the bandwidth utilization, with the ultimate purpose of
reducing the end-to-end latency? What exactly causes the
retransmissions? (Since the token protocol enforces mutual exclusion
between Spread daemons, there shouldn't be any collisions in the
Ethernet LAN). What prevents Spread from using more bandwidth to make
sure that messages are delivered faster? Is it the size of the UDP
packets exchanged by the daemons? Can this size be tuned? <br>
<br>
Thank you in advance for your thoughts on this matter. <br>
<br>
<br>
Tudor<br>
<pre class="moz-signature" cols="72">-- 
______________________________________

Tudor A. Dumitras

ECE Department
Carnegie Mellon University
(412) 268-5005

<a class="moz-txt-link-freetext" href="http://www.ece.cmu.edu/~tdumitra">http://www.ece.cmu.edu/~tdumitra</a></pre>
</body>
</html>