Changes between Version 5 and Version 6 of PlasticSlices/Experiments


Ignore:
Timestamp:
05/18/11 13:40:38 (13 years ago)
Author:
Josh Smift
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PlasticSlices/Experiments

    v5 v6  
    1111== Setup ==
    1212
    13 Divide the hosts that you want to use into pairs. The client is the one that you'll run the 'ping' command on; the server is the one that you'll ping from the client.
     13Divide the hosts that you want to use into pairs. In each pair, the client is the one that you'll run the 'ping' command on, and the server is the one that you'll ping from the client.
    1414
    1515Identify 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.
    1616
    1717|| '''client'''                   || '''server'''                   || '''server address''' ||
    18 || ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.101.105 ||
    19 || planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.101.73  ||
    20 || of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.101.96  ||
     18|| ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.17.105 ||
     19|| planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.17.73   ||
     20|| of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.17.96   ||
    2121
    2222You'll use the "server=<ipaddr>" parts when you run the experiment.
     
    6767== Setup ==
    6868
    69 Divide 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.
     69Divide the hosts that you want to use into pairs. In each pair, you'll run a netcat listener on the server, and make a netcat connection to it from the client.
    7070
    7171Identify 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.
    7272
    7373|| '''client'''                   || '''server'''                   || '''server address''' ||
    74 || ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.101.105 ||
    75 || planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.101.73  ||
    76 || of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.101.96  ||
     74|| ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.17.105 ||
     75|| planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.17.73   ||
     76|| of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.17.96   ||
    7777
    7878You'll use the "server=<ipaddr>" parts when you run the experiment.
     
    164164== Setup ==
    165165
    166 Divide the hosts that you want to use into pairs. You'll run an HTTPS server on the server, and run wget on the client to fetch files from it.
     166Divide the hosts that you want to use into pairs. In each pair, you'll run an HTTPS server on the server, and run wget on the client to fetch files from it.
    167167
    168168Identify 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.
    169169
    170170|| '''client'''                   || '''server'''                   || '''server address''' ||
    171 || ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.101.105 ||
    172 || planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.101.73  ||
    173 || of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.101.96  ||
     171|| ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.17.105 ||
     172|| planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.17.73   ||
     173|| of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.17.96   ||
    174174
    175175You'll use the "server=<ipaddr>" parts when you run the experiment.
     
    293293This experiment uses the iperf command to send 1 GB of data via TCP, measuring performance throughout the transfer.
    294294
     295== Setup ==
     296
     297Divide the hosts that you want to use into pairs. In each pair, you'll run an iperf listener on the server, and make an iperf connection to it from the client.
     298
     299Identify 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.
     300
     301|| '''client'''                   || '''server'''                   || '''server address''' ||
     302|| ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.17.105  ||
     303|| planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.17.73   ||
     304|| of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.17.96   ||
     305
     306You'll use the "server=<ipaddr>" parts when you run the experiment.
     307
     308Identify a port that you'd like to use for the connection; call it <port>, and use it below when you run the iperf server and client commands.
     309
     310Divide 1000 by the number of host pairs you have (the number of rows in your table); call this number <size>, and use it below when you run the iperf client command. (This is how much data (in megabytes) each client will send to the server.)
     311
     312On each client and server, install iperf:
     313
     314{{{
     315sudo yum -y install iperf
     316}}}
     317
     318== Execution ==
     319
     320On each server, run
     321
     322{{{
     323server=<ipaddr>
     324nice -n 19 iperf -B $server -p <port> -s -i 1
     325}}}
     326
     327using the "server=<ipaddr>" line from your table, and the <port> value you identified earlier. That should print a few lines on your terminal immediately, including ones like
     328
     329{{{
     330Server listening on TCP port <port>
     331Binding to local address <ipaddr>
     332}}}
     333
     334and then more lines once a client connects.
     335
     336On each client, run
     337
     338{{{
     339nice -n 19 iperf -c $server -p <port> -n <size>M
     340}}}
     341
     342using the "server=<ipaddr>" line from your table, and the <port> value you identified earlier. That should print a few lines on your terminal immediately, including ones like
     343
     344{{{
     345Client connecting to <ipaddr>, TCP port <port>
     346------------------------------------------------------------
     347[  3] local 10.42.17.51 port 40997 connected with <ipaddr> port <port>
     348}}}
     349
     350The client IP address and port will be different, of course.
     351
     352The server will then start to print lines like
     353
     354{{{
     355[  4] local <ipaddr> port <port> connected with 10.42.17.51 port 40997
     356[  4]  0.0- 1.0 sec    359 KBytes  2.94 Mbits/sec
     357[  4]  1.0- 2.0 sec    498 KBytes  4.08 Mbits/sec
     358}}}
     359
     360When the transfer finishes, the client will print lines like
     361
     362{{{
     363[ ID] Interval       Transfer     Bandwidth
     364[  3]  0.0- 2.2 sec  1.00 MBytes  3.79 Mbits/sec
     365}}}
     366
     367Copy that final block for your results.
     368
     369When the transfer finishes, on the server, hit ctrl-c to kill the iperf server process.
     370
     371''FIXME: It would be better if this piped to 'tee', so that you get log files for free.''
     372
     373== Results ==
     374
     375The results of the experiment are the three-line statistics summary at the end of the output on the client.
     376
     377''FIXME: Do we also want to capture the output from the server.''
     378
     379== Cleanup ==
     380
     381No special cleanup is needed.
     382
    295383= GigaPerfUDP =
    296384
    297385This experiment uses the iperf command to send 1 GB of data via UDP, measuring performance throughout the transfer.
     386
     387== Setup ==
     388
     389Divide the hosts that you want to use into pairs. In each pair, you'll run an iperf listener on the server, and make an iperf connection to it from the client.
     390
     391Identify 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.
     392
     393|| '''client'''                   || '''server'''                   || '''server address''' ||
     394|| ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.17.105  ||
     395|| planetlab4.clemson.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.17.73   ||
     396|| of-planet1.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.17.96   ||
     397
     398You'll use the "server=<ipaddr>" parts when you run the experiment.
     399
     400Identify a port that you'd like to use for the connection; call it <port>, and use it below when you run the iperf server and client commands.
     401
     402Divide 1000 by the number of host pairs you have (the number of rows in your table); call this number <size>, and use it below when you run the iperf client command. (This is how much data (in megabytes) each client will send to the server.)
     403
     404Decide how fast you'd like to send data (in megabits per second); call this number <rate>, and use it below when you run the iperf client command.
     405
     406On each client and server, install iperf:
     407
     408{{{
     409sudo yum -y install iperf
     410}}}
     411
     412== Execution ==
     413
     414On each server, run
     415
     416{{{
     417server=<ipaddr>
     418nice -n 19 iperf -u -B $server -p <port> -s -i 1
     419}}}
     420
     421using the "server=<ipaddr>" line from your table, and the <port> value you identified earlier. That should print a few lines on your terminal immediately, including ones like
     422
     423{{{
     424Server listening on UDP port <port>
     425Binding to local address <ipaddr>
     426}}}
     427
     428and then more lines once a client connects.
     429
     430On each client, run
     431
     432{{{
     433nice -n 19 iperf -u -c $server -p <port> -n <size>M -b <rate>M
     434}}}
     435
     436using the "server=<ipaddr>" line from your table, and the <port>, <size>, and <rate> values you identified earlier. That should print a few lines on your terminal immediately, including ones like
     437
     438{{{
     439Client connecting to <ipaddr>, UDP port <port>
     440------------------------------------------------------------
     441[  3] local 10.42.17.51 port 40997 connected with <ipaddr> port <port>
     442}}}
     443
     444The client IP address and port will be different, of course.
     445
     446The server will then start to print lines like
     447
     448{{{
     449[  4] local <ipaddr> port <port> connected with 10.42.17.51 port 40997
     450[  4]  0.0- 1.0 sec    359 KBytes  2.94 Mbits/sec
     451[  4]  1.0- 2.0 sec    498 KBytes  4.08 Mbits/sec
     452}}}
     453
     454When the transfer finishes, the client will print lines like
     455
     456{{{
     457[ ID] Interval       Transfer     Bandwidth
     458[  3]  0.0-79.8 sec   954 MBytes   100 Mbits/sec
     459[  3] Sent 680273 datagrams
     460[  3] Server Report:
     461[  3]  0.0-79.1 sec   881 MBytes  93.4 Mbits/sec   0.040 ms 52088/680272 (7.7%)
     462[  3]  0.0-79.1 sec  256 datagrams received out-of-order
     463}}}
     464
     465Copy that final block for your results.
     466
     467When the transfer finishes, on the server, hit ctrl-c to kill the iperf server process.
     468
     469''FIXME: It would be better if this piped to 'tee', so that you get log files for free.''
     470
     471== Results ==
     472
     473The results of the experiment are the three-line statistics summary at the end of the output on the client.
     474
     475''FIXME: Do we also want to capture the output from the server.''
     476
     477== Cleanup ==
     478
     479No special cleanup is needed.