Introduction
This is a project suggested by Bebo White to build a PingER monitoring host based on an inexpensive hardware called Raspberry Pi (see more about Raspberry Pi) using a linux distribution as OS (see more about Raspbian). If successful one could consider using these in production reducing the costs, power drain (they draw about 2W of 5V DC power compared to typically over 100W for a deskside computer or 20W for a laptop) and space (credit card size) assisting monitoring sites to be able to procure and support such monitoring hosts. This could be very valuable for sites in developing countries where cost, power utilization and to a lesser extent space may be crucial.
Raspberry Pi Model and Specifications
The Raspberry belongs to Bebo White and it is the version 1 of Raspberry Pi, model B. The cost is about $25/each + costs of the SD card. The Raspberry purchased each has 512MB RAM, on a 700Mhz ARM CPU and a 32GB SD Card ($18) was used. They have 2 USB and 1 100Mb/s Ethernet interfaces and 1 HDMI port. Keep in mind that is necessary to have a keyboard, a mouse and a HDMI monitor to do the installation process, but once that Pinger is working they are not necessary anymore. We measured the power (Wattage) during normal use and it is 2.7 Watts. When using the Dell mouse with an LED powered from the Raspberry Pi it crept up to 3.2Watts.
Operating System
The installed system is called Raspbian a Debian Linux variant. The OS had Perl, Make, dig, ping and mail installed. We accessed it through the graphic interface of Raspbian. We just had to install: Apache and XML::Simple.
Installation of PingER2
The first step, before start the installation process we had to change the hostname in Raspbian.
sudo nano /etc/hostname
sudo /etc/init.d/hostname.sh
Notice that the hostname here must include the domain. So, our hostname was pinger.raspberry.slac.stanford.edu.
Then, we followed the instructions in PingER End-to-end Reporting version 2. After installing the PingER2 monitoring code, we installed the ping_data gathering agent, the traceroute server and the pinger_trimmer following the instructions.
When we tested everything, we got a error message on the pingerCronStat.stderr file telling us that the ParserDetails.ini file was missing. We used this approach to fix this.
We entered the machines as monitors in the PingER meta data base of hosts.
Obs: Make sure to change the default password for Raspbian.
Analysis
Example target = pinger.unimas.my (~220 msec.)
For both 100Byte and 1000 Byte pings (not shown above) the round trip time series for RTTs have similar behaviour and there are similar losses 7:10 (pinger : pinger-raspberry for 100 Byte pings), note the different Y scales for losses. The losses are about double for 1000Byte pings.
Time Series | Frequency Distributions |
---|---|
Example target sitka.triumf.ca (~22msec.)
For 100Byte the round trip time series for RTTs did not have similar behaviour. We noticed a great change mainly in the maximum round trip time. The average em minimum RTT did not change that much. Another point about pinger-raspberry is that it increases significantly the RTT for near nodes (about ~1ms). The difference is greater than if we compare a node which is in a long distance.
Time series | Frequency distributions |
---|---|
Example between pinger.slac.stanford.edu and pinger-raspberry.slac.stanford.edu
Now, we compared the RTT between pinger and pinger-raspberry. They are located in the same network and the RTT should be very small. However, as noticed before pinger-raspberry has a greater maximum RTT than pinger. The average RTT also has some difference, but now as much as the maximum time has. Note that the second graph represents the third graph using the same scale as the first (pinger graph).
pinger to Pinger-raspberry | pinger-raspberry to pinger |
---|---|
Using full set of pings for RTT frequency distributions
The frequency plots above are for the frequencies of the minimum, average and maximum RTTs. Below we show the frequencies when we take the individual pings (usually 10 assuming little loss) for all the ping RTTs in each measurement set.
pinger to pinger-raspberry | pinger-raspberry to pinger |
---|---|
Frequency distribution for absolute interpacket delays.
The magnitude of the RTT is very dependent on the distance of the path between the source and destination. Many applications such as voice over IP, video streaming, or haptics are very dependent on the variability or jitter of the RTT. The jitter is often more dependent on the network edges. There are many ways to calculate the jitter (see for example http://www.slac.stanford.edu/comp/net/wan-mon/tutorial.html#variable). We calculate the absolute inter packet delay and display its frequency distribution.
To sitka.triumf.ca from SLAC
Time Series | Frequency distribution RTT | Frequency distribution Abs(IPD) | |
---|---|---|---|
pinger to sitka | |||
pinger-raspberry to sitka |
To CERN from SLAC
Time series | Frequency distribution RTT | Frequency distribution Abs (ipd) | |
---|---|---|---|
To www.cern/ch from pinger | |||
To www.cern.ch from pinger-raspberry |
Summary
Metric | pinger to pinger-raspberry | pinger-raspberry to pinger | pinger to sitka | pinger-raspberry to sitka | pinger to CERN | pinger-raspberry to CERN |
---|---|---|---|---|---|---|
Min RTT | 0.43 ms | 0.41 ms | 22 ms | 22.3 ms | 150 ms | 151 m2 |
Avg RTT | 0.542 ms | 0.529 ms | 23.9 ms | 23.827 ms | 150.307 ms | 151.024 ms |
Max RTT | 1.15 ms | 20.8 ms | 761 ms | 334 ms | 288 ms | 183 ms |
Median RTT | 0.542 ms | 0.51 ms | 22.3 ms | 22.7 ms | 150 ms | 151 ms |
25% | 0.514 ms | 0.48 ms | 22.2 ms | 22.69 ms | 149.99 ms | 150.99 ms |
75% | 0.564 ms | 0.532 ms | 22.4 ms | 22.8 ms | 151 ms | 151 ms |
IQR | 0.05 ms | 0.052 ms | 0.2 ms | 0.11 ms | 1.01 ms | 0.01 ms |
Min(abs(IPD)) | 0 ms | 0 ms | 0 ms | 0 ms | 0 ms | 0 ms |
Avg(abs(IPD)) | 0.041 ms | 0.066 ms | 0.424 ms | 0.406 ms | 0.386 ms | 0.046 ms |
Max(abs(IPD)) | 0.0628ms | 20.294 ms | 268 ms | 235.1 ms | 138 ms | 32 ms |
Median(abs(IPD)) | 0.03ms | 0.024 ms | 0.09 ms | 0.1 ms | 0 ms | 0 ms |
25%(abs(IPD)) | 0.01ms | 0.008 ms | 0.01 ms | 0.01 ms | 0.01 ms | 0.01 ms |
75%(abs(IPD)) | 0.058 ms | 0.05 ms | 0.1 ms | 0.19 ms | 1 ms | 0 ms |
IQR(abs(IPD) | 0.048 ms | 0.042 ms | 0.09 ms | 0.11 ms | 0.009 ms | 0.01 ms |
Kolmogorov-Smirnov Test
The Kolmogorov-Smirnov test (KS-test) tries to determine if two datasets differ significantly. The KS-test has the advantage of making no assumption about the distribution of data. In other words it is non-parametric and distribution free. The method is explained here and makes use of an Excel tool called "Real Statiscs". The tests were made using the raw data and distributions, both methods had similar results except for the 100Bytes Packet that had a great difference in the results. The results using raw data says both samples does not come from the same distribution with a significant difference, however if we use distributions the result says that only the 1000Bytes packet does not come from the same distribution. Bellow you will find the graphs for the distributions that were created and the cumulative frequency in both cases plotted one above other (in order to see the difference between the distributions).
Raw data - 100 Packets | Distribution - 100 Packets | Raw data - 1000 Packets | Distribution - 1000 Packets | |
---|---|---|---|---|
D-stat | 0.194674 | 0.039323 | 0.205525 | 0.194379 |
P-value | 4.57E-14 | 0.551089 | 2.07E-14 | 7.32E-14 |
D-crit | 0.0667 | 0.067051 | 0.0667 | 0.067051 |
Size of Raspberry | 816 | 816 | 816 | 816 |
Size of Pinger | 822 | 822 | 822 | 822 |
Alpha | 0.05 |
If D-stat is greater than D-crit the samples are not considerated from the same distribution with a (1-Alpha) of accuracy. Remember that D-stat is the maximum difference between the two cumulative frequency curves.
Source: http://www.real-statistics.com/non-parametric-tests/two-sample-kolmogorov-smirnov-test/