diff options
| author | Loic Guegan <manzerberdes@gmx.com> | 2019-05-16 14:32:18 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerberdes@gmx.com> | 2019-05-16 14:32:18 +0200 |
| commit | 026a84902cdc22f64b53aea3678d576bc29f479b (patch) | |
| tree | 5b0cb6540533337c6c331f1333ac37979ad49ae4 /g5k | |
| parent | 9305e544d3c3b3ad49a47587616f2bde1dd8d323 (diff) | |
Update simulators
Diffstat (limited to 'g5k')
| -rwxr-xr-x | g5k/clients.py | 6 | ||||
| -rwxr-xr-x | g5k/init-nodes.sh | 29 | ||||
| -rwxr-xr-x | g5k/run-sim.sh | 39 |
3 files changed, 60 insertions, 14 deletions
diff --git a/g5k/clients.py b/g5k/clients.py index 3f718e0..db40996 100755 --- a/g5k/clients.py +++ b/g5k/clients.py @@ -5,7 +5,7 @@ from subprocess import Popen # Check script argument if len(sys.argv) != 6: - print("Usage: "+sys.argv[0]+" <mysqlServerIp> <nbSensors> <nbSensorsFactor> <requestPerSensor> <sensorsRequestPerSec>") + print("Usage: "+sys.argv[0]+" <mysqlServerIp> <nbSensors> <nbSensorsFactor> <requestPerSensor> <sendInterval>") exit(1) # Init script parameters @@ -14,7 +14,7 @@ nbSensors=int(sys.argv[2]) nbSensorsFactor=int(sys.argv[3]) effectiveNbSensors=nbSensors*nbSensorsFactor requestPerSensor=int(sys.argv[4]) -frequency=int(sys.argv[5]) +sendInterval=int(sys.argv[5]) avgSiteTemp=list() for i in range(0,effectiveNbSensors): avgSiteTemp.append(random.randint(-10,30)) @@ -43,6 +43,6 @@ print(" - Number of request per sensor {:>7}".format(effectiveNbSensors)) # Send data for i in range(0, requestPerSensor): send() - time.sleep(1/frequency) # We assume send() take no time + time.sleep(sendInterval) # We assume send() take no time diff --git a/g5k/init-nodes.sh b/g5k/init-nodes.sh index 622e3d0..001a1e0 100755 --- a/g5k/init-nodes.sh +++ b/g5k/init-nodes.sh @@ -1,11 +1,18 @@ #!/bin/bash ##### Parameters ##### -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 -requestPerSensor=10 # Theorical simulation time is $requestPerSensor/$sensorsRequestPerSec -sensorsRequestPerSec=10 # Number of request per seconds +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 ###################### @@ -28,7 +35,7 @@ sshWait () { if [ "$1" = "subscribe" ] && [ $# -eq 1 ] then log "Subscribing..." - oarsub -l slash_22=1+{"virtual!='NO' AND cluster='nova'"}/nodes=2 'sleep "10d"' # On node send request to the other + 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 @@ -63,7 +70,7 @@ then # Launch vm log "Launch vm $node" - oarsh $node kvm -m 2048 -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 & + 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 @@ -95,12 +102,12 @@ then log "Simulation will start in ${delay}s" sleep $delay simStart=$(date "+%s") - echo "---------- Simulation start at $simStart" >> $logFile - $onNode python /tmp/clients.py $serverIp $nbSensors $nbSensorsFactor $requestPerSensor $sensorsRequestPerSec + 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" >> $logFile + 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} duration:$(( simEnd - simStart ))" >> $logFile echo "./recordEnergy.sh nova $serverNode $simStart $simEnd energy_${simStart}_${simEnd}.csv" >> $logFile - echo "---------- Simulation end at $simEnd" >> $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 ##### diff --git a/g5k/run-sim.sh b/g5k/run-sim.sh new file mode 100755 index 0000000..bcca92d --- /dev/null +++ b/g5k/run-sim.sh @@ -0,0 +1,39 @@ +#!/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.sh + +# Build a function using the script +initNodes () { + source "$simScript" +} + + +##### Test VM RAM ##### +simKey="vmSize" +for vmSize in $(echo 128 1024 2048) +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 + |
