Clean repo, update paper

This commit is contained in:
Loic Guegan 2019-05-22 10:15:45 +02:00
parent 4045a41e02
commit 5a77b67d6b
965 changed files with 678 additions and 15644411 deletions

View file

@ -1,48 +0,0 @@
#!/usr/bin/python
from __future__ import division
import os,sys,random, time,datetime
from subprocess import Popen
# Check script argument
if len(sys.argv) != 6:
print("Usage: "+sys.argv[0]+" <mysqlServerIp> <nbSensors> <nbSensorsFactor> <requestPerSensor> <sendInterval>")
exit(1)
# Init script parameters
serverIp=sys.argv[1]
nbSensors=int(sys.argv[2])
nbSensorsFactor=int(sys.argv[3])
effectiveNbSensors=nbSensors*nbSensorsFactor
requestPerSensor=int(sys.argv[4])
sendInterval=int(sys.argv[5])
avgSiteTemp=list()
for i in range(0,effectiveNbSensors):
avgSiteTemp.append(random.randint(-10,30))
def insert(sensorId, value):
""" Send value of sensorId into the database """
stamp=int(time.mktime(datetime.datetime.today().timetuple()))
insertCMD = "mysql -u user --password=mysql --host="+serverIp+" experiment -e"
insertCMD=insertCMD.split()
insertCMD.append("INSERT INTO temperature (id,stamp,val) VALUES("+str(sensorId)+","+str(stamp)+","+str(value)+");")
Popen(insertCMD) # Run command asynchronously
def send():
""" Send temperature of each sensors into the database """
for i in range(0,effectiveNbSensors):
insert(i,random.gauss(avgSiteTemp[i], 3))
# Print infos
print("Launching clients with:")
print(" - Mysql Server IP {:>20}".format(serverIp))
print(" - Number of sensors {:>18}".format(effectiveNbSensors))
print(" - Number of request per sensor {:>7}".format(effectiveNbSensors))
# Send data
for i in range(0, requestPerSensor):
send()
time.sleep(sendInterval) # We assume send() take no time

View file

@ -1,26 +0,0 @@
#!/bin/bash
logFile="$(dirname $(readlink -f $0))"/simLogs.txt
getValue () {
line=$(echo "$1" | grep "Simulation para"|sed "s/Simulation parameters: //g")
key=$2
echo "$line"|awk 'BEGIN{RS=" ";FS=":"}"'$key'"==$1{gsub("\n","",$0);print $2}'
}
IFS=$'\n'
for cmd in $(cat $logFile|grep "Simulation parameters")
do
nodeName=$(getValue $cmd serverNodeName)
from=$(getValue $cmd simStart)
to=$(getValue $cmd simEnd)
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

View file

@ -1,24 +0,0 @@
#!/bin/bash
logFile="$(dirname $(readlink -f $0))"/simLogs.txt
getValue () {
line=$(echo "$1" | grep "Simulation para"|sed "s/Simulation parameters: //g")
key=$2
echo "$line"|awk 'BEGIN{RS=" ";FS=":"}"'$key'"==$1{gsub("\n","",$0);print $2}'
}
IFS=$'\n'
for cmd in $(cat $logFile|grep "Simulation parameters")
do
nodeName=$(getValue $cmd serverNodeName)
from=$(getValue $cmd startSim)
to=$(getValue $cmd endSim)
vmSize=$(getValue $cmd vmSize)
nbSensors=$(getValue $cmd nbSensors)
simKey=$(getValue $cmd simKey)
./recordEnergy.sh nova $nodeName $from $to "${simKey}_${vmSize}VMSIZE_${nbSensors}NBSENSORS_${from}${to}.csv"
done

View file

@ -1,137 +0,0 @@
#!/bin/bash
##### Parameters #####
if [ -z ${nbSensors+x} ] # If nbSensors exists, so all parameters are already define
then
delay=60 # Delay before starting simulation (let CPU energy going down on the server)
nbSensors=30 # Number of sensors that will send request to de server
nbSensorsFactor=3 # nbSensors*nbSensorFactor
simulationTime=300 # Approximative
sensorsSendInterval=10 # Delay between sensors requests
vmSize=2048 # Number of alocated ram
simKey="NONE"
fi
nHours=3 # Reservation dutation
requestPerSensor=$(( simulationTime / sensorsSendInterval )) # Theorical simulation time is $requestPerSensor*$sensorsSendInterval
######################
logFile="./simLogs.txt"
log () {
echo -e "\033[0;34m$@\033[0m"
}
sshWait () {
log "Waiting for for an ssh connection to a vm ($1)"
error=255
until [ $error -eq 0 ]
do
ssh -q root@$1 echo "Connected to $(hostname)"
error=$?
sleep 4
done
}
if [ "$1" = "subscribe" ] && [ $# -eq 1 ]
then
log "Subscribing..."
oarsub -l slash_22=1+{"virtual!='NO' AND cluster='nova'"}/nodes=2,walltime=$nHours 'sleep "10d"' # On node send request to the other
# oarsub -l slash_22=1+{"virtual!='NO'"}/nodes=2,walltime=$nHours 'sleep "10d"' # On node send request to the other
elif [ "$1" = "deploy" ] && [ $# -eq 1 ]
then
# Get machine mac address
serverSubnet=$(g5k-subnets -im|sed "1q;d")
serverMac=$(echo "$serverSubnet"|sed "s/^.*\t//g")
serverIp=$(echo "$serverSubnet"|sed "s/\t.*$//g")
clientIp=$(hostname) # Not really a IP but :P
clientNode=$(hostname)
serverNode=$(cat $OAR_NODE_FILE|uniq|sed "s/$clientNode//g"|sed "s/ //g")
onS="oarsh $serverNode" # For convenience
# Init vm images
log "Create server vm image"
$onS cp -n /grid5000/virt-images/debian9-x64-base.qcow2 /tmp/
$onS qemu-img create -f qcow2 -o backing_file=/tmp/debian9-x64-base.qcow2 /tmp/img.qcow2
sleep 1 # Wait for fun
# Build cloud init iso (to have ssh access witouth password
log "Create server cloud-init image"
$onS cp /grid5000/virt-images/cloud-init-example.sh /tmp/
$onS "cd /tmp && export cloud_init_key=\$(cat ~/.ssh/id_rsa.pub) && ./cloud-init-example.sh"
$onS "cd /tmp && genisoimage -output cloud-init-data.iso -volid cidata -joliet -rock cloud-init-data/user-data cloud-init-data/meta-data"
# Launch vm
log "Launch server vm"
$onS kvm -m ${vmSize}M -hda /tmp/img.qcow2 -netdev bridge,id=br0 -device virtio-net-pci,netdev=br0,id=nic1,mac=$serverMac -cdrom /tmp/cloud-init-data.iso -display none -daemonize &
##### Server #####
onS="ssh root@$serverIp" # Don't forget to use vm
sshWait $serverIp
# One apt-get update seems to be not enought to get mysql-server
$onS "apt-get update && apt-get update"
$onS apt-get -y install mysql-server
# Enable mysql connection from outside
$onS sed -i "s/bind-address/#bind-address/g" /etc/mysql/mariadb.conf.d/50-server.cnf
$onS 'echo -e "[mysqld]\nmax_connections = 100000" >> /etc/mysql/my.cnf' # Otherwise you will have the error "TOO MANY CONNECTION"
$onS systemctl restart mysql
rsync -avh setup-mysql.sql root@$serverIp:/tmp/ # Send mysl setup script
$onS "mysql < /tmp/setup-mysql.sql" # Then execute it
##### 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 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"
##### End Simulation #####
##### Print some infos #####
log "Network Settings:"
log " - Server $serverNode, $serverIp, $serverMac"
log " - Client $clientNode, $clientIp, $clientMac"
log "Simulation Settings:"
log " - Simulation delay ${delay}s"
log " - Number of sensors $(( nbSensors * nbSensorsFactor))"
log " - Number of request per sensors $requestPerSensor"
log " - Number of request per seconds on eachsensors $sensorsRequestPerSec"
elif [ "$1" = "kill" ] && [ $# -eq 1 ]
then
##### Kill all kvm on the subscribed nodes #####
isServer=1
finished=0
for node in $(cat $OAR_NODE_FILE|uniq)
do
[ $isServer -eq 1 ] && { curMac=$serverMac; isServer=0; serverNode=$node; } || { curMac=$clientMac; finished=1; clientNode=$node; }
log "Killing vm on node $node"
oarsh $node pkill -9 qemu &
[ $finished -eq 1 ] && break
done
elif [ "$1" = "inspect" ] && [ $# -eq 2 ]
then
##### Show content of the database #####
mysql --host="$2" -u user --password="mysql" experiment -e "SELECT * FROM temperature;"
elif [ "$1" = "flush" ] && [ $# -eq 2 ]
then
##### Flush content of the temperature table #####
log "Cleaning database table..."
mysql --host="$2" -u user --password="mysql" experiment -e "TRUNCATE TABLE temperature;"
else
echo "Usage:"
echo " - $0 subscribe"
echo " - $0 deploy"
echo " - $0 kill"
echo " - $0 inspect <serverIP>"
echo " - $0 flush <serverIP>"
fi

View file

@ -1,154 +0,0 @@
#!/bin/bash
##### Parameters #####
if [ -z ${nbSensors+x} ] # If nbSensors exists, so all parameters are already define
then
delay=60 # Delay before starting simulation (let CPU energy going down on the server)
nbSensors=30 # Number of sensors that will send request to de server
nbSensorsFactor=3 # nbSensors*nbSensorFactor
simulationTime=300 # Approximative
sensorsSendInterval=10 # Delay between sensors requests
vmSize=2048 # Number of alocated ram
simKey="NONE"
fi
nHours=3 # Reservation dutation
requestPerSensor=$(( simulationTime / sensorsSendInterval )) # Theorical simulation time is $requestPerSensor*$sensorsSendInterval
######################
logFile="./simLogs.txt"
log () {
echo -e "\033[0;34m$@\033[0m"
}
sshWait () {
log "Waiting for for an ssh connection to a vm ($1)"
error=255
until [ $error -eq 0 ]
do
ssh -q root@$1 echo "Connected to $(hostname)"
error=$?
sleep 4
done
}
if [ "$1" = "subscribe" ] && [ $# -eq 1 ]
then
log "Subscribing..."
oarsub -l slash_22=1+{"virtual!='NO' AND cluster='nova'"}/nodes=2,walltime=$nHours 'sleep "10d"' # On node send request to the other
elif [ "$1" = "deploy" ] && [ $# -eq 1 ]
then
# Get machine mac address
serverSubnet=$(g5k-subnets -im|sed "1q;d")
clientSubnet=$(g5k-subnets -im|sed "2q;d")
serverMac=$(echo "$serverSubnet"|sed "s/^.*\t//g")
clientMac=$(echo "$clientSubnet"|sed "s/^.*\t//g")
serverIp=$(echo "$serverSubnet"|sed "s/\t.*$//g")
clientIp=$(echo "$clientSubnet"|sed "s/\t.*$//g")
serverNode=""
clientNode=""
# Run vms
log "Run vms..."
isServer=1
finished=0
for node in $(cat $OAR_NODE_FILE|uniq)
do
# Init vm images
log "Create $node vm image"
oarsh $node cp -n /grid5000/virt-images/debian9-x64-base.qcow2 /tmp/
oarsh $node qemu-img create -f qcow2 -o backing_file=/tmp/debian9-x64-base.qcow2 /tmp/img.qcow2
sleep 1 # Wait for fun
# Build cloud init iso (to have ssh access witouth password
log "Create $node cloud-init image"
oarsh $node cp /grid5000/virt-images/cloud-init-example.sh /tmp/
oarsh $node "cd /tmp && export cloud_init_key=\$(cat ~/.ssh/id_rsa.pub) && ./cloud-init-example.sh"
oarsh $node "cd /tmp && genisoimage -output cloud-init-data.iso -volid cidata -joliet -rock cloud-init-data/user-data cloud-init-data/meta-data"
# Refresh loop state
[ $isServer -eq 1 ] && { curMac=$serverMac; isServer=0; serverNode=$node; } || { curMac=$clientMac; finished=1; clientNode=$node; }
# Launch vm
log "Launch vm $node"
oarsh $node kvm -m ${vmSize}M -hda /tmp/img.qcow2 -netdev bridge,id=br0 -device virtio-net-pci,netdev=br0,id=nic1,mac=$curMac -cdrom /tmp/cloud-init-data.iso -display none -daemonize &
# Stop looping if we finish
[ $finished -eq 1 ] && break
done
log "Installing mysql on $serverIp"
serverNodeName=$(echo $serverNode|grep -o ^.*[-][0-9]*) # For logging
onNode="ssh -q root@$serverIp" # For convenience
##### Server #####
sshWait $serverIp
# One apt-get update seems to be not enought to get mysql-server
$onNode "apt-get update && apt-get update"
$onNode apt-get -y install mysql-server
# Enable mysql connection from outside
$onNode sed -i "s/bind-address/#bind-address/g" /etc/mysql/mariadb.conf.d/50-server.cnf
$onNode systemctl restart mysql
rsync -avh setup-mysql.sql root@$serverIp:/tmp/
# Then execute it
$onNode "mysql < /tmp/setup-mysql.sql"
##### Client #####
$sshWait $clientIp
onNode="ssh -q root@$clientIp"
$onNode "apt-get update && apt-get update"
$onNode apt-get -y install mysql-server
rsync -avh clients.py root@$clientIp:/tmp/
##### Start Simulation #####
log "Simulation will start in ${delay}s"
sleep $delay
simStart=$(date "+%s")
echo "---------- Simulation (key=${simKey}) start at $simStart ($(date -d @${simStart}))" >> $logFile
$onNode python /tmp/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 "./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"
##### End Simulation #####
##### Print some infos #####
log "Network Settings:"
log " - Server $serverNode, $serverIp, $serverMac"
log " - Client $clientNode, $clientIp, $clientMac"
log "Simulation Settings:"
log " - Simulation delay ${delay}s"
log " - Number of sensors $(( nbSensors * nbSensorsFactor))"
log " - Number of request per sensors $requestPerSensor"
log " - Number of request per seconds on eachsensors $sensorsRequestPerSec"
elif [ "$1" = "kill" ] && [ $# -eq 1 ]
then
##### Kill all kvm on the subscribed nodes #####
isServer=1
finished=0
for node in $(cat $OAR_NODE_FILE|uniq)
do
[ $isServer -eq 1 ] && { curMac=$serverMac; isServer=0; serverNode=$node; } || { curMac=$clientMac; finished=1; clientNode=$node; }
log "Killing vm on node $node"
oarsh $node pkill -9 qemu &
[ $finished -eq 1 ] && break
done
elif [ "$1" = "inspect" ] && [ $# -eq 2 ]
then
##### Show content of the database #####
mysql --host="$2" -u user --password="mysql" experiment -e "SELECT * FROM temperature;"
elif [ "$1" = "flush" ] && [ $# -eq 2 ]
then
##### Flush content of the temperature table #####
log "Cleaning database table..."
mysql --host="$2" -u user --password="mysql" experiment -e "TRUNCATE TABLE temperature;"
else
echo "Usage:"
echo " - $0 subscribe"
echo " - $0 deploy"
echo " - $0 kill"
echo " - $0 inspect <serverIP>"
echo " - $0 flush <serverIP>"
fi

View file

@ -1 +0,0 @@
loic@lguegan.8702:1558336539

Binary file not shown.

View file

@ -1,25 +0,0 @@
library("tidyverse")
read_csv("nbSensors_2048VMSIZE_100NBSENSORS_15580778521558078188.csv")
energy=read_csv("nbSensors_2048VMSIZE_100NBSENSORS_15580778521558078188.csv")
ggplot(energy, aes(x=ts,y=energy))+geom_line()
ggplot(energy, aes(x=ts,y=energy))+geom_point()
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(x=,y=)
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(x=0,y=0)
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0)
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0) + scale_x_datetime()
energy$ts
as.POSIXct(energy$ts)
as.POSIXct(energy$ts,origin="1970-01-01")
energy %>% mutate(ts=as.POSIXct(energy$ts,origin="1970-01-01"))
energy %>% mutate(ts=as.POSIXct(ts,origin="1970-01-01"))
energy=energy %>% mutate(ts=as.POSIXct(ts,origin="1970-01-01"))
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0) + scale_x_datetime()
energy=read_csv("nbSensors_2048VMSIZE_100NBSENSORS_15580778521558078188.csv")
energy
energy=energy%>%mutate(ts=ts-min(ts))
energy
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0)
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0)+geom_jitter
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0)+geom_jitter()
ggplot(energy, aes(x=ts,y=energy)) + expand_limits(y=0)+geom_jitter()
ggplot(energy, aes(x=ts,y=energy)) + expand_limits(y=0)+geom_jitter(position = position_jitter(width = 0.4))

View file

@ -4,20 +4,146 @@
* Logs Analysis
** R Scripts
*** Generate all plots script
#+BEGIN_SRC R :results graphics :file third-try/plot.png :noweb yes
*** Plots script
#+BEGIN_SRC R :results output :noweb yes :file second-final/plot.png
<<RUtils>>
data=loadData("./third-try/data.csv")
dataOrig=loadData("./second-final/data.csv")
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)
data=dataOrig%>%filter(simKey=="nbSensors")%>%filter(state=="sim",nbSensors==100)
dataIDLE=dataOrig%>%filter(simKey=="nbSensors")%>%filter(state!="sim",nbSensors==100)
data=data%>%mutate(meanEnergy=mean(energy))
dataIDLE=dataIDLE%>%mutate(meanEnergy=mean(energy))
data=rbind(data,dataIDLE)
ggplot(data,aes(x=time,y=energy))+geom_point(position="jitter")+xlab(getLabel("time"))+expand_limits(y=0)+facet_wrap(~state)+geom_hline(aes(color=state,yintercept=mean(meanEnergy)))
ggsave("./second-final/plot.png",dpi=180)
#+END_SRC
#+RESULTS:
[[file:third-try/plot.png]]
#+begin_example
# A tibble: 3,050 x 8
ts energy simKey vmSize nbSensors time state meanEnergy
<dbl> <dbl> <chr> <dbl> <dbl> <dbl> <chr> <dbl>
1 1558429001. 90.2 nbSensors 2048 100 0 IDLE 90.8
2 1558429001. 89 nbSensors 2048 100 0.0199 IDLE 90.8
3 1558429001. 89 nbSensors 2048 100 0.0399 IDLE 90.8
4 1558429001. 90.8 nbSensors 2048 100 0.0599 IDLE 90.8
5 1558429001. 91 nbSensors 2048 100 0.0799 IDLE 90.8
6 1558429001. 90.5 nbSensors 2048 100 0.1000 IDLE 90.8
7 1558429001. 89.9 nbSensors 2048 100 0.120 IDLE 90.8
8 1558429001. 88.6 nbSensors 2048 100 0.140 IDLE 90.8
9 1558429001. 88.6 nbSensors 2048 100 0.160 IDLE 90.8
10 1558429001. 90.5 nbSensors 2048 100 0.180 IDLE 90.8
# … with 3,040 more rows
#+end_example
**** Final plot
#+BEGIN_SRC R :results graphics :noweb yes :file second-final/plot-final.png :session *R*
<<RUtils>>
data=loadData("./second-final/data.csv")
data=data%>%filter(state=="sim",simKey=="nbSensors")
# Cloud
data10=data%>%filter(nbSensors==20)%>%mutate(meanEnergy=mean(energy)) %>% slice(1L)
data100=data%>%filter(nbSensors==100)%>%mutate(meanEnergy=mean(energy)) %>% slice(1L)
data300=data%>%filter(nbSensors==300)%>%mutate(meanEnergy=mean(energy)) %>% slice(1L)
dataCloud=rbind(data10,data100,data300)%>%mutate(nbSensors=as.character(nbSensors))
# Network
dataNet=loadData("../../ns3-simulations/logs/data.csv")
dataNet=dataNet%>%filter(simKey=="NBSENSORS")
data5=dataNet%>%filter(sensorsNumber==5)%>%select(networkEnergy,sensorsNumber)
data10=dataNet%>%filter(sensorsNumber==10)%>%select(networkEnergy,sensorsNumber)
print(data20)
ggplot(dataCloud)+geom_bar(aes(x=nbSensors,y=meanEnergy),stat="identity")+xlab("Sensors Number")+ylab("Power Consumption (W)")
ggsave("./second-final/plot-final.png",dpi=80)
#+END_SRC
#+RESULTS:
#+BEGIN_SRC R :noweb yes :results graphics :file final.png :session *R*
<<RUtils>>
data=loadData("./second-final/data.csv")
data=data%>%filter(state=="sim",simKey=="nbSensors")
# Cloud
data10=data%>%filter(nbSensors==20)%>%mutate(energy=mean(energy)) %>% slice(1L)
data100=data%>%filter(nbSensors==100)%>%mutate(energy=mean(energy)) %>% slice(1L)
data300=data%>%filter(nbSensors==300)%>%mutate(energy=mean(energy)) %>% slice(1L)
dataCloud=rbind(data10,data100,data300)%>%mutate(sensorsNumber=nbSensors)%>%mutate(type="Cloud")%>%select(sensorsNumber,energy,type)
approx=function(data1, data2,nbSensors){
x1=data1$sensorsNumber
y1=data1$energy
x2=data2$sensorsNumber
y2=data2$energy
a=((y2-y1)/(x2-x1))
b=y1-a*x1
return(a*nbSensors+b)
}
simTime=1800
# Network
data=read_csv("../../ns3-simulations/logs/data.csv")
data=data%>%filter(simKey=="NBSENSORS")
dataC5=data%>%filter(sensorsNumber==5)%>% mutate(energy=networkEnergy/simTime) %>%select(energy,sensorsNumber)
dataC10=data%>%filter(sensorsNumber==10)%>%mutate(energy=networkEnergy/simTime) %>%select(energy,sensorsNumber)
dataNet=rbind(dataC5,dataC10)%>%mutate(type="Network")
# Sensors
dataS5=data%>%filter(sensorsNumber==5)%>% mutate(energy=sensorsEnergy/simTime) %>%select(energy,sensorsNumber)
dataS10=data%>%filter(sensorsNumber==10)%>%mutate(energy=sensorsEnergy/simTime) %>%select(energy,sensorsNumber)
dataS=rbind(dataS5,dataS10)%>%mutate(type="Sensors")
fakeNetS=tibble(
sensorsNumber=c(20,100,300,20,100,300),
energy=c(dataC10$energy,approx(dataC5,dataC10,100),approx(dataC5,dataC10,300),dataS10$energy,approx(dataS5,dataS10,100),approx(dataS5,dataS10,300)),
type=c("Network","Network","Network","Sensors","Sensors","Sensors")
)
fakeNetS=fakeNetS%>%mutate(sensorsNumber=as.character(sensorsNumber))
dataCloud=dataCloud%>%mutate(sensorsNumber=as.character(sensorsNumber))
data=rbind(fakeNetS,dataCloud)%>%mutate(sensorsNumber=as.character(sensorsNumber))
data=data%>%mutate(sensorsNumber=fct_reorder(sensorsNumber,as.numeric(sensorsNumber)))
ggplot(data)+geom_bar(position="dodge2",colour="black",aes(x=sensorsNumber,y=energy,fill=type),stat="identity")+
xlab("Sensors Number")+ylab("Power Consumption (W)")+guides(fill=guide_legend(title="Part"))
ggsave("final.png",dpi=80)
#+END_SRC
#+RESULTS:
[[file:final.png]]
*** R Utils
RUtils is intended to load logs (data.csv) and providing
simple plot function for them.
@ -81,7 +207,7 @@
emacs $orgFile --batch -f org-latex-export-to-pdf --kill
#+END_SRC
** CSVs -> CSV
Merge all energy file into one (and add additional fields).
@ -89,7 +215,7 @@
#+BEGIN_SRC sh
#!/bin/bash
whichLog="third-try"
whichLog="second-final"
logFile="$(dirname $(readlink -f $0))"/$whichLog/simLogs.txt
@ -113,15 +239,18 @@
nbSensors=$(getValue $cmd nbSensors)
simKey=$(getValue $cmd simKey)
csvFile="$whichLog/${simKey}_${vmSize}VMSIZE_${nbSensors}NBSENSORS_${from}${to}.csv"
csvFileIDLE="$whichLog/${simKey}_${vmSize}VMSIZE_${nbSensors}NBSENSORS_${from}${to}_IDLE.csv"
tmpFile=${csvFile}_tmp
echo ts,energy,simKey,vmSize,nbSensors,time > $tmpFile
minEnergy=$(tail -n+2 $csvFile|awk -F"," 'BEGIN{min=0}$1<min||min==0{min=$1}END{print(min)}') # To compute ts field
tail -n+2 ${csvFile} | awk -F"," '{print $0",'$simKey','$vmSize','$nbSensors',"$1-'$minEnergy'}' >> $tmpFile
echo ts,energy,simKey,vmSize,nbSensors,time,state > $tmpFile
minTs=$(tail -n+2 $csvFile|awk -F"," 'BEGIN{min=0}$1<min||min==0{min=$1}END{print(min)}') # To compute ts field
minTsIDLE=$(tail -n+2 $csvFileIDLE|awk -F"," 'BEGIN{min=0}$1<min||min==0{min=$1}END{print(min)}') # To compute ts field
tail -n+2 ${csvFile} | awk -F"," '{print $0",'$simKey','$vmSize','$nbSensors',"$1-'$minTs'",sim"}' >> $tmpFile
tail -n+2 ${csvFileIDLE} | awk -F"," '{print $0",'$simKey','$vmSize','$nbSensors',"$1-'$minTsIDLE'",IDLE"}' >> $tmpFile
done
##### File dataFile #####
echo ts,energy,simKey,vmSize,nbSensors,time > $dataFile
##### Fill dataFile #####
echo ts,energy,simKey,vmSize,nbSensors,time,state > $dataFile
for tmpFile in $(find ${whichLog}/*_tmp -type f)
do
tail -n+2 $tmpFile >> $dataFile

File diff suppressed because it is too large Load diff

View file

@ -1,30 +0,0 @@
---------- Simulation (key=vmSize) start at 1558075866 (Fri May 17 08:51:06 CEST 2019)
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558075866 simEnd:1558076173 duration:307 serverNodeName:nova-20 vmSize:1024
./recordEnergy.sh nova nova-20 1558075866 1558076173 energy_vmSize_20NS_1024vmSize_1558075866_1558076173.csv
---------- Simulation (key=vmSize) end at 1558076173 (Fri May 17 08:56:13 CEST 2019)
---------- Simulation (key=vmSize) start at 1558076362 (Fri May 17 08:59:22 CEST 2019)
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558076362 simEnd:1558076670 duration:308 serverNodeName:nova-20 vmSize:2048
./recordEnergy.sh nova nova-20 1558076362 1558076670 energy_vmSize_20NS_2048vmSize_1558076362_1558076670.csv
---------- Simulation (key=vmSize) end at 1558076670 (Fri May 17 09:04:30 CEST 2019)
---------- Simulation (key=vmSize) start at 1558076859 (Fri May 17 09:07:39 CEST 2019)
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558076859 simEnd:1558077167 duration:308 serverNodeName:nova-20 vmSize:4096
./recordEnergy.sh nova nova-20 1558076859 1558077167 energy_vmSize_20NS_4096vmSize_1558076859_1558077167.csv
---------- Simulation (key=vmSize) end at 1558077167 (Fri May 17 09:12:47 CEST 2019)
---------- Simulation (key=nbSensors) start at 1558077356 (Fri May 17 09:15:56 CEST 2019)
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558077356 simEnd:1558077664 duration:308 serverNodeName:nova-20 vmSize:2048
./recordEnergy.sh nova nova-20 1558077356 1558077664 energy_nbSensors_20NS_2048vmSize_1558077356_1558077664.csv
---------- Simulation (key=nbSensors) end at 1558077664 (Fri May 17 09:21:04 CEST 2019)
---------- Simulation (key=nbSensors) start at 1558077852 (Fri May 17 09:24:12 CEST 2019)
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:100 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558077852 simEnd:1558078188 duration:336 serverNodeName:nova-20 vmSize:2048
./recordEnergy.sh nova nova-20 1558077852 1558078188 energy_nbSensors_100NS_2048vmSize_1558077852_1558078188.csv
---------- Simulation (key=nbSensors) end at 1558078188 (Fri May 17 09:29:48 CEST 2019)
---------- Simulation (key=nbSensors) start at 1558078377 (Fri May 17 09:32:57 CEST 2019)
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:300 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558078377 simEnd:1558078782 duration:405 serverNodeName:nova-20 vmSize:2048
./recordEnergy.sh nova nova-20 1558078377 1558078782 energy_nbSensors_300NS_2048vmSize_1558078377_1558078782.csv
---------- Simulation (key=nbSensors) end at 1558078782 (Fri May 17 09:39:42 CEST 2019)

View file

@ -1,19 +0,0 @@
ts,energy
1 ts energy

View file

@ -1,4 +0,0 @@
Some energies values are missing for the file:
nbSensors_2048VMSIZE_20NBSENSORS_15581087311558109034.csv
I don't know whether G5K add somes bugs or whatever.

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View file

@ -1,30 +0,0 @@
---------- Simulation (key=vmSize) start at 1558107414 (Fri May 17 17:36:54 CEST 2019)
Simulation parameters: serverNode:nova-15.lyon.grid5000.fr serverIp:10.140.16.1 serverMac:00:16:3E:8C:10:01 clientNode:nova-10.lyon.grid5000.fr clientNode:nova-10.lyon.grid5000.fr clientMac: delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558107414 simEnd:1558107717 duration:303 serverNodeName:nova-15 vmSize:1024
./recordEnergy.sh nova nova-15 1558107414 1558107717 energy_vmSize_20NS_1024vmSize_1558107414_1558107717.csv
---------- Simulation (key=vmSize) end at 1558107717 (Fri May 17 17:41:57 CEST 2019)
---------- Simulation (key=vmSize) start at 1558107853 (Fri May 17 17:44:13 CEST 2019)
Simulation parameters: serverNode:nova-15.lyon.grid5000.fr serverIp:10.140.16.1 serverMac:00:16:3E:8C:10:01 clientNode:nova-10.lyon.grid5000.fr clientNode:nova-10.lyon.grid5000.fr clientMac: delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558107853 simEnd:1558108156 duration:303 serverNodeName:nova-15 vmSize:2048
./recordEnergy.sh nova nova-15 1558107853 1558108156 energy_vmSize_20NS_2048vmSize_1558107853_1558108156.csv
---------- Simulation (key=vmSize) end at 1558108156 (Fri May 17 17:49:16 CEST 2019)
---------- Simulation (key=vmSize) start at 1558108293 (Fri May 17 17:51:33 CEST 2019)
Simulation parameters: serverNode:nova-15.lyon.grid5000.fr serverIp:10.140.16.1 serverMac:00:16:3E:8C:10:01 clientNode:nova-10.lyon.grid5000.fr clientNode:nova-10.lyon.grid5000.fr clientMac: delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558108293 simEnd:1558108595 duration:302 serverNodeName:nova-15 vmSize:4096
./recordEnergy.sh nova nova-15 1558108293 1558108595 energy_vmSize_20NS_4096vmSize_1558108293_1558108595.csv
---------- Simulation (key=vmSize) end at 1558108595 (Fri May 17 17:56:35 CEST 2019)
---------- Simulation (key=nbSensors) start at 1558108731 (Fri May 17 17:58:51 CEST 2019)
Simulation parameters: serverNode:nova-15.lyon.grid5000.fr serverIp:10.140.16.1 serverMac:00:16:3E:8C:10:01 clientNode:nova-10.lyon.grid5000.fr clientNode:nova-10.lyon.grid5000.fr clientMac: delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558108731 simEnd:1558109034 duration:303 serverNodeName:nova-15 vmSize:2048
./recordEnergy.sh nova nova-15 1558108731 1558109034 energy_nbSensors_20NS_2048vmSize_1558108731_1558109034.csv
---------- Simulation (key=nbSensors) end at 1558109034 (Fri May 17 18:03:54 CEST 2019)
---------- Simulation (key=nbSensors) start at 1558109171 (Fri May 17 18:06:11 CEST 2019)
Simulation parameters: serverNode:nova-15.lyon.grid5000.fr serverIp:10.140.16.1 serverMac:00:16:3E:8C:10:01 clientNode:nova-10.lyon.grid5000.fr clientNode:nova-10.lyon.grid5000.fr clientMac: delay:60 nbSensors:100 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558109171 simEnd:1558109482 duration:311 serverNodeName:nova-15 vmSize:2048
./recordEnergy.sh nova nova-15 1558109171 1558109482 energy_nbSensors_100NS_2048vmSize_1558109171_1558109482.csv
---------- Simulation (key=nbSensors) end at 1558109482 (Fri May 17 18:11:22 CEST 2019)
---------- Simulation (key=nbSensors) start at 1558109621 (Fri May 17 18:13:41 CEST 2019)
Simulation parameters: serverNode:nova-15.lyon.grid5000.fr serverIp:10.140.16.1 serverMac:00:16:3E:8C:10:01 clientNode:nova-10.lyon.grid5000.fr clientNode:nova-10.lyon.grid5000.fr clientMac: delay:60 nbSensors:300 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558109621 simEnd:1558109955 duration:334 serverNodeName:nova-15 vmSize:2048
./recordEnergy.sh nova nova-15 1558109621 1558109955 energy_nbSensors_300NS_2048vmSize_1558109621_1558109955.csv
---------- Simulation (key=nbSensors) end at 1558109955 (Fri May 17 18:19:15 CEST 2019)

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

View file

@ -1,30 +0,0 @@
---------- 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)

View file

@ -1,42 +0,0 @@
#!/bin/bash
# Parse argument
[ $# != 5 ] && { echo "Usage: $0 <cluster-name> <node-name> <from> <to> <output-file>"; exit 1; }
# Init arguments
clusterName="$1"
nodeName="$2"
outputFile="$5"
wattmeter=$(curl -s https://api.grid5000.fr/stable/sites/lyon/clusters/${clusterName}/nodes/${nodeName}.json | jq -r '.sensors.power.via.pdu[0].uid')
port=$(curl -s https://api.grid5000.fr/stable/sites/lyon/pdus/${wattmeter}.json | jq -r '.ports|to_entries|map(select(.value=="'${nodeName}'"))[0].key')
energyEntry=$(( 5 + port )) # Define the entry in the CSV that correspond to the correct energy value
if [ -z $wattmeter ] || [ -z $port ]
then
echo -ne "\nCannot find energy informations (wattmeter/port) for node $nodeName\n"
echo -ne "\nCheck the node name (do not use hostname! only node name ex: nova-7)\n"
exit 1
fi
echo "Node ${nodeName} is connected on wattmeter ${wattmeter} on port ${port}"
# Fetching energy and save in csv format
from=$(date -d "@$3" "+%s")
to=$(date -d "@$4" "+%s")
echo "ts,energy" > $outputFile # Write CSV header
for time in $(seq $from 3600 $to)
do
# We need gz extension if it is not the current hour
[ $(date -d "@$time" "+%Y-%m-%dT%H") != $(date "+%Y-%m-%dT%H") ] && ext='.gz' || ext=''
powerFilename=$(date -d "@$time" "+power.csv.%Y-%m-%dT%H${ext}")
url="http://wattmetre.lyon.grid5000.fr/data/${wattmeter}-log/${powerFilename}"
echo "- Fetching logs from ${url}"
# Fetch logs data
[ ! -z $ext ] && csvContent=$(curl -s "${url}" | zcat) || csvContent=$(curl -s "${url}")
# Parse data and extract the right values in csv format
toSave=$(echo "$csvContent" | awk -F, 'int($3)>='$from'&& int($3)<='$to'{printf "%s,%s\n",$3,$5+'$port'};')
echo "$toSave" >> $outputFile # Save data in csv
done
echo "Done"

View file

@ -1,39 +0,0 @@
#!/bin/bash
# Parameters
delay=60 # Delay before starting simulation (let CPU energy going down on the server)
nbSensors=20 # Number of sensors that will send request to de server
nbSensorsFactor=3 # nbSensors*nbSensorFactor
simulationTime=300 # Approximative
sensorsSendInterval=10 # Delay between sensors requests
# requestPerSensor dynamically computed inside init-nodes
vmSize=2048 # Number of alocated ram
simKey="NONE"
# Where script is located
simScript=$(dirname $(readlink -f "$0"))/init-nodes-opt.sh
# Build a function using the script
initNodes () {
source "$simScript"
}
##### Test VM RAM #####
simKey="vmSize"
for vmSize in $(echo 1024 2048 4096)
do
initNodes deploy
initNodes kill # Kill all vms (do not forget :D)
done
vmSize=2048 # Reset vmSize
simKey="nbSensors"
##### Test number of sensors #####
for nbSensors in $(echo 20 100 300)
do
initNodes deploy
initNodes kill # Kill all vms
done

View file

@ -1,8 +0,0 @@
create DATABASE IF NOT EXISTS experiment;
use experiment;
create TABLE IF NOT EXISTS temperature (id INTEGER,stamp INTEGER, val INTEGER);
use mysql;
CREATE USER 'user'@'%' IDENTIFIED BY 'mysql';
GRANT ALL ON experiment.* TO 'user'@'%';