mirror of
https://gitlab.com/manzerbredes/paper-lowrate-iot.git
synced 2025-04-19 04:09:43 +00:00
Update paper
This commit is contained in:
parent
04b79f058e
commit
4045a41e02
24 changed files with 195153 additions and 1164 deletions
31
2019-Mascots.bbl
Normal file
31
2019-Mascots.bbl
Normal file
|
@ -0,0 +1,31 @@
|
|||
% Generated by IEEEtran.bst, version: 1.14 (2015/08/26)
|
||||
\begin{thebibliography}{1}
|
||||
\providecommand{\url}[1]{#1}
|
||||
\csname url@samestyle\endcsname
|
||||
\providecommand{\newblock}{\relax}
|
||||
\providecommand{\bibinfo}[2]{#2}
|
||||
\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}
|
||||
\providecommand{\BIBentryALTinterwordstretchfactor}{4}
|
||||
\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus
|
||||
\BIBentryALTinterwordstretchfactor\fontdimen3\font minus
|
||||
\fontdimen4\font\relax}
|
||||
\providecommand{\BIBforeignlanguage}[2]{{%
|
||||
\expandafter\ifx\csname l@#1\endcsname\relax
|
||||
\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%
|
||||
\typeout{** loaded for the language `#1'. Using the pattern for}%
|
||||
\typeout{** the default language instead.}%
|
||||
\else
|
||||
\language=\csname l@#1\endcsname
|
||||
\fi
|
||||
#2}}
|
||||
\providecommand{\BIBdecl}{\relax}
|
||||
\BIBdecl
|
||||
|
||||
\bibitem{orgerie_ecofen:_2011}
|
||||
A.~C. Orgerie, L.~Lefèvre, I.~Guérin-Lassous, and D.~M.~L. Pacheco,
|
||||
``{ECOFEN}: {An} {End}-to-end energy {Cost} {mOdel} and simulator {For}
|
||||
{Evaluating} power consumption in large-scale {Networks},'' in \emph{2011
|
||||
{IEEE} {International} {Symposium} on a {World} of {Wireless}, {Mobile} and
|
||||
{Multimedia} {Networks}}, Jun. 2011, pp. 1--6.
|
||||
|
||||
\end{thebibliography}
|
|
@ -30,14 +30,14 @@ component, formatting, style, styling, insert
|
|||
#+END_EXPORT
|
||||
|
||||
|
||||
* Introduction
|
||||
* Related Work
|
||||
* Use-Case
|
||||
* Introduction [2 col]
|
||||
* Related Work [1 col]
|
||||
* Use-Case [1 col]
|
||||
** Application Characteristic
|
||||
|
||||
The IoT part is composed of an Access Point (AP), connected to several sensors using WIFI. In the
|
||||
system, the IoT part is considered as the part where the system data are created. In fact, the
|
||||
data life cycle start when the sensors records their respectives local temperature at a frequency
|
||||
data life cycle start when the sensors records their respective local temperature at a frequency
|
||||
$f$ and the local timestamp. Then, these data are transmitted through the network along with an
|
||||
arbitrary sensor id of 128 bits. Finally, the AP is in charge to transmit the data to the cloud
|
||||
using the network part.
|
||||
|
@ -46,19 +46,28 @@ component, formatting, style, styling, insert
|
|||
of several network switches and router and it is considered to be a wired network.
|
||||
|
||||
** Cloud Infrastructure
|
||||
* System Model
|
||||
|
||||
* System Model [2 col]
|
||||
The system model is divided in two parts. First, the IoT and the Network part are models through
|
||||
simulations. Then, the Cloud part is model using real servers connected to wattmeters. In this way,
|
||||
simulations. Then, the Cloud part is model using real servers connected to watt-meters. In this way,
|
||||
it is possible to evaluate the end-to-end energy consumption of the system.
|
||||
|
||||
** IoT Part
|
||||
In the first place, the IoT part is composed of several sensors connected to an AP which forms a
|
||||
cell. It is model using the ns-3 network simulator. Thus, we setup between 5 and 20 sensors
|
||||
connected to the AP using WIFI 5GHz 802.11n. All the nodes of the cell are setup with the default
|
||||
WIFI energy model provided by ns-3. The different energy values used by the energy model come
|
||||
from the litterature and are provided on Table \ref{tab:wifi-energy}. Note that we suppose that the
|
||||
energy source of the cell nodes are unlimited and thus every nodes can communicate for all the
|
||||
simulation duration.
|
||||
connected to the AP using WIFI 5GHz 802.11n. The node are placed randomly in a square of 30
|
||||
meters around the AP which correspond to a typical real use case. All the nodes of the cell are
|
||||
setup with the default WIFI energy model provided by ns-3. The different energy values used by
|
||||
the energy model come from the literature and are provided on Table \ref{tab:wifi-energy}. Note
|
||||
that we suppose that the energy source of the cell nodes are unlimited and thus every nodes can
|
||||
communicate for all the simulation duration.
|
||||
|
||||
As a scenario, sensors send to the AP packets of 192 bits that include: \textbf{1)} A 128 bits
|
||||
sensors id \textbf{2)} A 32 bits integer representing the temperature \textbf{3)} An integer
|
||||
timestamp representing the temperature sensing time. The data are transmitted immediately at each
|
||||
sensing interval $I$ varied from 1s to 60s. Finally, the AP is in charge to relay data to the
|
||||
cloud using the network part.
|
||||
|
||||
|
||||
#+BEGIN_EXPORT latex
|
||||
\begin{table}[]
|
||||
|
@ -74,25 +83,51 @@ component, formatting, style, styling, insert
|
|||
Idle & 0.273A & TODO \\ \hline
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
#+END_EXPORT
|
||||
|
||||
|
||||
** Network Part
|
||||
The network part represents the network starting from the AP to the Cloud excluding the server.
|
||||
It is also model into ns-3. We consider the server to be 9 hops aways from the AP with a typical
|
||||
round-trip latency of 100ms from the AP to the server. ECOFEN \cite{orgerie_ecofen:_2011} is used
|
||||
to model the energy consumption of the network part. ECOFEN is a ns-3 network energy module for
|
||||
ns-3 dedicated to wired network energy estimation. The different energy values used in the
|
||||
network part are from the literature and shown in Table \ref{tab:net-energy}.
|
||||
|
||||
#+BEGIN_EXPORT latex
|
||||
\begin{table}[]
|
||||
\centering
|
||||
\caption{Network Part Energy Settings}
|
||||
\label{tab:net-energy}
|
||||
\begin{tabular}{|l|l|l|}
|
||||
\hline
|
||||
& Value & Reference(s) \\ \hline
|
||||
Idle & 1J & TODO \\ \hline
|
||||
Bytes (Tx/Rx) & 3.4nJ & TODO \\ \hline
|
||||
Pkt (Tx/Rx) & 192.0nJ & TODO \\ \hline
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
#+END_EXPORT
|
||||
|
||||
** Cloud Part
|
||||
* Evaluation
|
||||
Finally, to measure the energy consumption of the server, we used real server from the
|
||||
large-scale test-beds Grid5000 (G5K). In fact, G5K has a cluster called Nova composed of several
|
||||
nodes which are connected to watt-meters. In this way, we can benefit from real energy
|
||||
measurements. The server is configured to use KVM for virtualization. Virtual Machines (VM)
|
||||
|
||||
|
||||
* Evaluation [3 col]
|
||||
** IoT/Network Consumption
|
||||
** Cloud Energy Consumption
|
||||
** Virtual Machine Size Impact
|
||||
** Application Accuracy
|
||||
Refresh frequency etc...
|
||||
** End-To-End Consumption
|
||||
* Discussion
|
||||
* Conclusion
|
||||
|
||||
|
||||
* Discussion [1 col]
|
||||
* Conclusion [1 col]
|
||||
* References [1 col]
|
||||
\bibliographystyle{IEEEtran}
|
||||
\bibliography{references}
|
||||
|
||||
* Emacs settings :noexport:
|
||||
# Local Variables:
|
||||
|
|
BIN
2019-Mascots.pdf
BIN
2019-Mascots.pdf
Binary file not shown.
|
@ -37,3 +37,13 @@ do
|
|||
initNodes kill # Kill all vms
|
||||
done
|
||||
|
||||
|
||||
|
||||
simKey="SENDINTERVAL"
|
||||
nbSensors=100 # Now set nb sensors to 100
|
||||
##### Test number of sensors #####
|
||||
for sensorsSendInterval in $(echo 10 30 60)
|
||||
do
|
||||
initNodes deploy
|
||||
initNodes kill # Kill all vms
|
||||
done
|
||||
|
|
|
@ -19,6 +19,8 @@ do
|
|||
vmSize=$(getValue $cmd vmSize)
|
||||
nbSensors=$(getValue $cmd nbSensors)
|
||||
simKey=$(getValue $cmd simKey)
|
||||
delayStart=$(getValue $cmd delayStart)
|
||||
./recordEnergy.sh nova $nodeName $from $to "${simKey}_${vmSize}VMSIZE_${nbSensors}NBSENSORS_${from}${to}.csv"
|
||||
./recordEnergy.sh nova $nodeName $delayStart $from "${simKey}_${vmSize}VMSIZE_${nbSensors}NBSENSORS_${from}${to}_IDLE.csv"
|
||||
done
|
||||
|
||||
|
|
|
@ -83,12 +83,13 @@ then
|
|||
##### Start Simulation #####
|
||||
serverNodeName=$(echo $serverNode|grep -o ^.*[-][0-9]*|tr -d '\n') # For logging
|
||||
log "Simulation will start in ${delay}s"
|
||||
delayStart=$(date "+%s") # Used to compute the idle energy consumption
|
||||
sleep $delay
|
||||
simStart=$(date "+%s")
|
||||
echo "---------- Simulation (key=${simKey}) start at $simStart ($(date -d @${simStart}))" >> $logFile
|
||||
python ./clients.py $serverIp $nbSensors $nbSensorsFactor $requestPerSensor $sensorsSendInterval
|
||||
simEnd=$(date "+%s")
|
||||
echo "Simulation parameters: serverNode:$serverNode serverIp:$serverIp serverMac:$serverMac clientNode:$clientNode clientNode:$clientNode clientMac:$clientMac delay:$delay nbSensors:$nbSensors nbSensorsFactor:$nbSensorsFactor requestPerSensors:$requestPerSensor sensorsRequestPerSec:$sensorsRequestPerSec simKey:${simKey} simStart:${simStart} simEnd:${simEnd} duration:$(( simEnd - simStart )) serverNodeName:${serverNodeName} vmSize:${vmSize}" >> $logFile
|
||||
echo "Simulation parameters: serverNode:$serverNode serverIp:$serverIp serverMac:$serverMac clientNode:$clientNode clientNode:$clientNode clientMac:$clientMac delay:$delay delayStart:${delayStart} nbSensors:$nbSensors nbSensorsFactor:$nbSensorsFactor requestPerSensors:$requestPerSensor sensorsSendInterval:${sensorsSendInterval} simKey:${simKey} simStart:${simStart} simEnd:${simEnd} duration:$(( simEnd - simStart )) serverNodeName:${serverNodeName} vmSize:${vmSize}" >> $logFile
|
||||
echo "./recordEnergy.sh nova $serverNodeName $simStart $simEnd energy_${simKey}_${nbSensors}NS_${vmSize}vmSize_${simStart}_${simEnd}.csv" >> $logFile
|
||||
echo -e "---------- Simulation (key=${simKey}) end at ${simEnd} ($(date -d @${simEnd}))\n" >> $logFile
|
||||
log "Simulation end ! Please see $logFile for more infos"
|
||||
|
|
1
g5k/logs/.#analysis.org
Symbolic link
1
g5k/logs/.#analysis.org
Symbolic link
|
@ -0,0 +1 @@
|
|||
loic@lguegan.8702:1558336539
|
|
@ -5,17 +5,17 @@
|
|||
* Logs Analysis
|
||||
** R Scripts
|
||||
*** Generate all plots script
|
||||
#+BEGIN_SRC R :results graphics :file second-try/plot.png :noweb yes
|
||||
#+BEGIN_SRC R :results graphics :file third-try/plot.png :noweb yes
|
||||
<<RUtils>>
|
||||
data=loadData("./second-try/data.csv")
|
||||
data=loadData("./third-try/data.csv")
|
||||
|
||||
data=data%>%filter(simKey=="nbSensors")%>%filter(nbSensors==20)
|
||||
ggplot(data,aes(x=time,y=energy))+geom_point(position="jitter")+xlab(getLabel("time"))+expand_limits(y=0)#+geom_hline(aes(group=nbSensors,color=nbSensors,yintercept=mean(energy)))
|
||||
ggsave("./second-try/plot.png",dpi=80)
|
||||
data=data%>%filter(simKey=="nbSensors") %>% filter(nbSensors==200)
|
||||
ggplot(data,aes(x=time,y=energy,color=nbSensors))+geom_point(position="jitter")+xlab(getLabel("time"))+expand_limits(y=0)#+geom_hline(aes(group=nbSensors,color=nbSensors,yintercept=mean(energy)))
|
||||
ggsave("./third-try/plot.png",dpi=180)
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
[[file:second-try/plot.png]]
|
||||
[[file:third-try/plot.png]]
|
||||
|
||||
|
||||
*** R Utils
|
||||
|
@ -89,7 +89,7 @@
|
|||
#+BEGIN_SRC sh
|
||||
#!/bin/bash
|
||||
|
||||
whichLog="second-try"
|
||||
whichLog="third-try"
|
||||
|
||||
|
||||
logFile="$(dirname $(readlink -f $0))"/$whichLog/simLogs.txt
|
||||
|
|
96351
g5k/logs/third-try/data.csv
Normal file
96351
g5k/logs/third-try/data.csv
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
BIN
g5k/logs/third-try/plot.png
Normal file
BIN
g5k/logs/third-try/plot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 177 KiB |
30
g5k/logs/third-try/simLogs.txt
Normal file
30
g5k/logs/third-try/simLogs.txt
Normal file
|
@ -0,0 +1,30 @@
|
|||
---------- Simulation (key=vmSize) start at 1558336590 (Mon May 20 09:16:30 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-2.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-19.lyon.grid5000.fr clientNode:nova-19.lyon.grid5000.fr clientMac: delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558336590 simEnd:1558336892 duration:302 serverNodeName:nova-2 vmSize:1024
|
||||
./recordEnergy.sh nova nova-2 1558336590 1558336892 energy_vmSize_20NS_1024vmSize_1558336590_1558336892.csv
|
||||
---------- Simulation (key=vmSize) end at 1558336892 (Mon May 20 09:21:32 CEST 2019)
|
||||
|
||||
---------- Simulation (key=vmSize) start at 1558337031 (Mon May 20 09:23:51 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-2.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-19.lyon.grid5000.fr clientNode:nova-19.lyon.grid5000.fr clientMac: delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558337031 simEnd:1558337334 duration:303 serverNodeName:nova-2 vmSize:2048
|
||||
./recordEnergy.sh nova nova-2 1558337031 1558337334 energy_vmSize_20NS_2048vmSize_1558337031_1558337334.csv
|
||||
---------- Simulation (key=vmSize) end at 1558337334 (Mon May 20 09:28:54 CEST 2019)
|
||||
|
||||
---------- Simulation (key=vmSize) start at 1558337473 (Mon May 20 09:31:13 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-2.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-19.lyon.grid5000.fr clientNode:nova-19.lyon.grid5000.fr clientMac: delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558337473 simEnd:1558337776 duration:303 serverNodeName:nova-2 vmSize:4096
|
||||
./recordEnergy.sh nova nova-2 1558337473 1558337776 energy_vmSize_20NS_4096vmSize_1558337473_1558337776.csv
|
||||
---------- Simulation (key=vmSize) end at 1558337776 (Mon May 20 09:36:16 CEST 2019)
|
||||
|
||||
---------- Simulation (key=nbSensors) start at 1558337912 (Mon May 20 09:38:32 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-2.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-19.lyon.grid5000.fr clientNode:nova-19.lyon.grid5000.fr clientMac: delay:60 nbSensors:100 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558337912 simEnd:1558338224 duration:312 serverNodeName:nova-2 vmSize:2048
|
||||
./recordEnergy.sh nova nova-2 1558337912 1558338224 energy_nbSensors_100NS_2048vmSize_1558337912_1558338224.csv
|
||||
---------- Simulation (key=nbSensors) end at 1558338224 (Mon May 20 09:43:44 CEST 2019)
|
||||
|
||||
---------- Simulation (key=nbSensors) start at 1558338361 (Mon May 20 09:46:01 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-2.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-19.lyon.grid5000.fr clientNode:nova-19.lyon.grid5000.fr clientMac: delay:60 nbSensors:300 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558338361 simEnd:1558338695 duration:334 serverNodeName:nova-2 vmSize:2048
|
||||
./recordEnergy.sh nova nova-2 1558338361 1558338695 energy_nbSensors_300NS_2048vmSize_1558338361_1558338695.csv
|
||||
---------- Simulation (key=nbSensors) end at 1558338695 (Mon May 20 09:51:35 CEST 2019)
|
||||
|
||||
---------- Simulation (key=nbSensors) start at 1558338832 (Mon May 20 09:53:52 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-2.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-19.lyon.grid5000.fr clientNode:nova-19.lyon.grid5000.fr clientMac: delay:60 nbSensors:800 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558338832 simEnd:1558339221 duration:389 serverNodeName:nova-2 vmSize:2048
|
||||
./recordEnergy.sh nova nova-2 1558338832 1558339221 energy_nbSensors_800NS_2048vmSize_1558338832_1558339221.csv
|
||||
---------- Simulation (key=nbSensors) end at 1558339221 (Mon May 20 10:00:21 CEST 2019)
|
||||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,8 +0,0 @@
|
|||
nodeId,energy
|
||||
-1,8.9274
|
||||
-2,8.9274
|
||||
0,18.932
|
||||
1,20
|
||||
2,20
|
||||
3,20
|
||||
4,10
|
File diff suppressed because it is too large
Load diff
|
@ -12,7 +12,7 @@ NS_LOG_COMPONENT_DEFINE ("WIFISensorsSimulator");
|
|||
int main(int argc, char* argv[]){
|
||||
|
||||
uint32_t sensorsFrequency=1;
|
||||
uint32_t sensorsPktSize=150;
|
||||
uint32_t sensorsPktSize=192; // 128 bits for sensors id and 32 bit for the temperature (an arbitrary Integer) and a timestamp (32bits)
|
||||
uint32_t sensorsNumber=2;
|
||||
uint32_t nbHop=5;
|
||||
uint32_t linksBandwidth=5;
|
||||
|
|
|
@ -32,8 +32,8 @@
|
|||
#include <utility> // To use std::pair
|
||||
#include <iomanip> // To use std::setw
|
||||
|
||||
#define SIM_TIME 60 // 30mins simulations
|
||||
#define RECT_SIZE 10 // Sensors random rectangle position size
|
||||
#define SIM_TIME 1800 // 30mins simulations
|
||||
#define RECT_SIZE 30 // Sensors random rectangle position size
|
||||
#define MAX_PACKET_BY_SENSOR 900000 // Reasonable big number (in order that simulation end before sensors stop sending packets)
|
||||
|
||||
// ECOFEN
|
||||
|
|
Binary file not shown.
Binary file not shown.
2306
references.bib
Normal file
2306
references.bib
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue