38 | | server's geni_status is: ready (am_status:ready) |
39 | | User example logs in to server using: |
40 | | ssh -p 32768 example@pc1.utah.geniracks.net |
41 | | User example logs in to client using: |
42 | | ssh -p 32769 example@pc1.utah.geniracks.net |
| 38 | rschr's geni_status is: ready (am_status:ready) |
| 39 | User example logs in to rschr using: |
| 40 | ssh -p 32768 -i /Users/example/.ssh/geni_key_portal example@pc1.utah.geniracks.net |
| 41 | User example logs in to collar using: |
| 42 | ssh -p 32769 -i /Users/example/.ssh/geni_key_portal example@pc1.utah.geniracks.net |
59 | | {{{ |
60 | | #!html |
61 | | <table> |
62 | | <tr><td> |
63 | | <ol type='a'> |
64 | | <li> |
65 | | Enter the hostname of the server node in your browser. It should bring up a webpage of statistics from your experiment similar to that shown in the figure. |
66 | | </li> |
67 | | </ol> |
68 | | </td> |
69 | | <td> |
70 | | <img |
71 | | src="http://groups.geni.net/geni/attachment/wiki/GENIEducation/SampleAssignments/UnderstandAMAPI/Graphics/webserver_v1.png?format=raw" |
72 | | alt="Enter the hostname in your browser to see statistics" width="300" |
73 | | title="Enter the hostname in your browser to see statistics" /> </a> |
74 | | <br/> |
75 | | <b>Figure 5-1</b> Enter the hostname of the <i>server</i> node in your browser to see statistics</i> |
76 | | </td> |
77 | | </tr> |
78 | | </table> |
79 | | <table> |
80 | | <tr> |
81 | | <td> |
82 | | <ol type='a' start='2'> |
83 | | <li>Find the <code>ssh</code> commands for your client in your <code>readyToLogin</code> output. Copy and paste those <code>ssh</code> commands directly into your terminal |
84 | | to log in. You should see a shell prompt |
85 | | from the remote end: |
86 | | <pre> |
87 | | [example@client ~]$ |
88 | | </pre> |
| 58 | Key features of the CCN protocol include: |
| 59 | * Data is accessed by name. In our case we use a program called client to get precipitation data by date range (e.g. precipitation between 1901/01/01 and 1901/01/02). |
| 60 | * All nodes cache data for a certain period of time. When a node receives a request for data, it checks its local cache. If the data is in it's cache, it returns that data. Otherwise, it forwards it on to its neighbor. |
90 | | <table id="Table_01" border="0" cellpadding="5" cellspacing="0"> |
91 | | <tr> |
92 | | <td> |
93 | | <img src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/Graphics/4NotesIcon_512x512.png" width="50" height="50" alt="Note"> |
94 | | </td> |
95 | | <td> |
96 | | While you're welcome to inspect either |
97 | | the client or server, for the purpose of this experiment the <tt>client</tt> host is the one |
98 | | running the <tt>iperf</tt> tests and collecting all the logs. |
99 | | </td> |
100 | | </tr> |
101 | | </table> |
102 | | </li> |
103 | | <li> |
| 62 | We verify this caching behavior by: |
| 63 | * Logging into the researcher node and using the client program to get precipitation data for a certain date range. The client displays how long it took to get the data. |
| 64 | * Retrieving the same data again and noting how we get it much faster since it comes out of a cache. |
| 65 | * Requesting data for different date range and see how long it took to retrieve the data. |
| 66 | * Requesting the data again and noting it is retrieved much faster. |
127 | | </li> |
128 | | </ol> |
129 | | </td> |
130 | | |
131 | | </tr> |
132 | | <tr><td> |
133 | | </td></tr> |
134 | | </table> |
135 | | }}} |
| 72 | === 5.1 Run the CCN application === |
| 73 | 1. Log into the node {{{rsrchr}}} using the {{{ssh}}} command returned by {{{readyToLogin}}}. |
| 74 | 2. Once you are logged in, ask for precipitation data from 1 Jan 1902 to 2 Jan 1902: |
| 75 | {{{ |
| 76 | /opt/ccnx-atmos/client.py |
| 77 | Start Date in YYYY/MM/DD? 1902/01/01 |
| 78 | End Date in YYYY/MM/DD? 1902/01/02 |
| 79 | }}} |
| 80 | 3. You should see output that looks like: |
| 81 | {{{ |
| 82 | Asking for /ndn/colostate.edu/netsec/pr_1902/01/01/00, Saving to pr_1902_01_01.tmp.nc |
| 83 | Time for pr_1902_01_01.tmp.nc 1.09802699089= |
| 84 | Asking for /ndn/colostate.edu/netsec/pr_1902/01/02/00, Saving to pr_1902_01_02.tmp.nc |
| 85 | Time for pr_1902_01_02.tmp.nc 4.65998315811= |
| 86 | Joining files.. |
| 87 | Concat + write time 0.0735998153687 |
| 88 | Wrote to pr_1902_1_1_1902_1_2.nc |
| 89 | }}} |
| 90 | Note that it took about 1.1 and 4.7 seconds respectively to retrieve data for Jan 1 and Jan 2 |
| 91 | 4. Run the client again and request the same data. This time your output should look like: |
| 92 | {{{ |
| 93 | Asking for /ndn/colostate.edu/netsec/pr_1902/01/01/00, Saving to pr_1902_01_01.tmp.nc |
| 94 | Time for pr_1902_01_01.tmp.nc 0.0423700809479= |
| 95 | Asking for /ndn/colostate.edu/netsec/pr_1902/01/02/00, Saving to pr_1902_01_02.tmp.nc |
| 96 | Time for pr_1902_01_02.tmp.nc 0.0388598442078= |
| 97 | Joining files.. |
| 98 | Concat + write time 0.0237510204315 |
| 99 | Wrote to pr_1902_1_1_1902_1_2.nc |
| 100 | }}} |
| 101 | Notice how much faster the data was retrieved this time. |
| 102 | 5. If time permits, log into the collaborator node {{{collar}}} and run queries from there. Notice different data retrieval times depending on whether the data came from the datasource, cache at {{{rsrchr}}} or the local cache. |
139 | | The client machine is saving all the test results in the `/tmp/iperf-logs` |
140 | | directory. Files with timestamps in the names will gradually appear |
141 | | there (there are 100 tests overall, and it may take 20 minutes for all |
142 | | of them to complete if you want to wait for them). |
143 | | |
144 | | Each log file corresponds to one test with some number of simultaneous |
145 | | TCP connections over the VLAN link you requested between the two hosts. |
146 | | Later tests gradually include more concurrent connections, so the |
147 | | throughput of each individual connection will decrease, but the |
148 | | aggregate throughput (the `[SUM]` line at the end of each file) |
149 | | should remain approximately consistent. |
150 | | |
151 | | |
152 | | |
153 | | == 6. Analyze Experiment == |
154 | | |
155 | | For a real experiment, of course, this step would be the most important |
156 | | and collection, analysis and archival of the results would be critical, |
157 | | but for now, play around as necessary to satisfy your curiosity and |
158 | | then continue. |