Changes between Version 17 and Version 18 of PhoebusExperimentGEMINI

03/20/13 18:23:55 (6 years ago)



  • PhoebusExperimentGEMINI

    v17 v18  
    183183For our experiment, we'd also like to measure the latency across all of our nodes.  We can use the active measurement configuration page to do so.
     185Click on the buttom labeled "Open PS Config".
    187 You may add new ping tests under "Schedul BLiPP Test".
     189You may add new ping tests under "Schedule BLiPP Test".
    191193== 8. Run experiments ==
     195We now want to configure some latency between the nodes in our experiment and generate some baseline performance numbers.
     197On gateway0 and gateway1, run:
     200$ sh /tmp/ <iface> 20 0
     203Substitute the interface names assocatiated with and  After running this script, 20ms of latency will be added to outgoing packets from each interface on the gateway nodes.  If you ping between client0 and client1, you should now see 40ms RTT.
     205Now lets see how a network benchmark peforms.  We will use IPerf, a common benchmarking tool for this purpose.  client1 will be our iperf server and client0 will be our traffic source, sending data from client0 to client1.
     207On client1, run:
     210$ iperf -s
     213On client0, run:
     216$ iperf -c -t 60 -i 2
     219You should see a transfer rate of close to 100Mb/s, which is the default link speed of our experiment nodes.
     221Now, let's make the network situation a little more complicated.  We will add some edge latency and a small amount of loss to the edge 0 side.
     223On client0, run:
     226$ sh /tmp/ <iface> 5 .01
     229This will add 5ms edge latency and .01% loss to packets leaving client0.  If you run the same iperf from above once more, you should see a significant impact on the achievable transfer performance.
     231It's time to see if Phoebus can help in this situation.  Let us start the Phoebus service on the two gateway nodes.
     233On each node, run (as root):
     236$ /etc/init.d/phoebus start
     237$ tail -f /var/log/phoebus
     240This will start the service and allow you to view the Phoebus log on each gateway node.
     242Now we need to make the client application (in this case iperf) use Phoebus during transfer tests.  To do so, we will make use of a trsnsparent wrapper mechanism known as a "shim" library.  This techique uses libray interposition via the Linux LD_PRELOAD mehcniasm to intercept socket() calls and allows them to establish connections to a series of Phoebus Gateways using a protocol known as XSP.  Let us give this a try and re-run our transfer tests, this time over Phoebus.
     244On client0, run:
     247export LD_PRELOAD=/usr/lib64/
     248export XSP_PATH=,
     251After running the above commands, any network application instantiated from that shell will make connections to the PGs specified in the XSP_PATH environment variable.  Try this with the same iperf test from above.  You should now see a much improved transfer performance, even approaching that of the non-loss case from earlier.
     253You may experiment with the scripts and try different latency and loss cases.  For repeated tests, or to do parameter sweeps, these scripts can be further integrated and looped to do a number of long-lived tests.