Changes between Version 2 and Version 3 of PlasticSlices/Experiments


Ignore:
Timestamp:
05/17/11 14:12:50 (13 years ago)
Author:
Josh Smift
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PlasticSlices/Experiments

    v2 v3  
    1313Identify the precise IP address on each server that you'll want to ping. Make a table to keep track of which server you'll want to ping from each client, e.g.
    1414
    15 || '''client'''            || '''server address''' ||
    16 || ganel.gpolab.bbn.com    || server=10.42.101.104 ||
    17 || of-planet1.stanford.edu || server=10.42.101.73  ||
     15|| '''client'''                   || '''server'''                   || '''server address''' ||
     16|| ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.101.105 ||
     17|| planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.101.73  ||
     18|| of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.101.96  ||
    1819
    19 You'll use the "server=<ipaddr>" parts when you go to execute the experiment.
     20You'll use the "server=<ipaddr>" parts when you run the experiment.
    2021
    21 To send 1 GB of data, you'll need to send a total of 666,667 1.5 KB packets. Rounding up for simplicity, divide 700,000 by the number of host pairs you have; call this number <count>, and use it below when you run the 'ping' commands.
     22To send 1 GB of data, you'll need to send a total of 666,667 1.5 KB packets. Rounding up for simplicity, divide 700,000 by the number of host pairs you have (the number of rows in your table); call this number <count>, and use it below when you run the 'ping' commands.
    2223
    2324== Execution ==
     
    2728{{{
    2829server=<ipaddr>
    29 count=<count>
    30 sudo ping -i .001 -s $((1500-8-20)) -c $count $server
     30sudo ping -i .001 -s $((1500-8-20)) -c <count> $server
    3131}}}
    3232
     
    5151Copy that final block for your results.
    5252
     53== Results ==
     54
     55The results of the experiment are the three-line statistics summary at the end of the output on the client.
     56
    5357== Cleanup ==
    5458
     
    5862
    5963This experiment uses the 'netcat' command to send 1 GB of data via unencrypted TCP.
     64
     65== Setup ==
     66
     67Divide the hosts that you want to use into pairs. You'll run a netcat listener on the server, and make a netcat connection to it from the client.
     68
     69Identify the precise IP address on each server that you'll want to connect to. Make a table to keep track of which server you'll want to connect to from each client, e.g.
     70
     71|| '''client'''                   || '''server'''                   || '''server address''' ||
     72|| ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.101.105 ||
     73|| planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.101.73  ||
     74|| of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.101.96  ||
     75
     76You'll use the "server=<ipaddr>" parts when you run the experiment.
     77
     78Identify a port that you'd like to use for the connection; call it <port>, and use it below when you run the netcat server and client commands.
     79
     80Identify a file that you'd like to transfer from the servers to the clients; call it <file>. Find out how many times you'll need to copy it to get more than 1 GB:
     81
     82{{{
     83echo $((10**9/$(du -b <file> | awk '{print $1;}')+1))
     84}}}
     85
     86Divide that number by the number of host pairs you have (the number of rows in your table); call this number <count>, and use it below when you run the netcat client command.
     87
     88Copy the file to each of the servers. (When you run the experiment, you'll download it repeatedly from each of the clients.)
     89
     90On each client and server, install netcat:
     91
     92{{{
     93sudo yum install nc
     94}}}
     95
     96== Execution ==
     97
     98On each server, run
     99
     100{{{
     101server=<ipaddr>
     102for i in {1..<count>} ; do nc -l $server <port> < <file> ; echo "completed transfer #$i" ; md5sum <file> ; done
     103}}}
     104
     105using the "server=<ipaddr>" line from your table, and the <count>, <port>, and <file> values you identified earlier.
     106
     107You won't seen any output immediately, but when you start running clients, as each transfer completes, you should see lines on your terminal that look like
     108
     109{{{
     110completed transfer #1
     111}}}
     112
     113and the md5sum checksum of the file.
     114
     115On each client, run
     116
     117{{{
     118server=<ipaddr>
     119rm -rf ~/giganetcat
     120mkdir ~/giganetcat
     121cd ~/giganetcat
     122for i in {1..<count>} ; do nc $server <port> > <file> ; echo "completed transfer #$i" ; md5sum <file> ; mv <file> <file>.$i ; done
     123}}}
     124
     125You won't seen any output immediately, but as each transfer completes, you should see lines on your terminal that look like
     126
     127{{{
     128completed transfer #1
     129}}}
     130
     131and the md5sum checksum of the file (and the filename).
     132
     133''FIXME: It would be better if this piped to 'tee', to make it easier to compare the output between client and server later.''
     134
     135== Results ==
     136
     137In each client-server pair, compare the output on the client and the server. They should be identical: Each should list the same set of transfers completed, and all of the md5sum lines should be identical on both.
     138
     139On each client, check the total size of the data transfered:
     140
     141{{{
     142du -sb .
     143}}}
     144
     145Add up the results for all the clients; they should add up to 1 GB (or more).
     146
     147''FIXME: If we had the output from both client and server in a file, we could diff them, and grep for anomalous md5sum lines.''
     148
     149== Cleanup ==
     150
     151On each client, remove the giganetcat directory:
     152
     153{{{
     154cd
     155rm -rf ~/giganetcat
     156}}}
    60157
    61158= !GigaWeb =