X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a9919f554fd42fdb9a26defe86adbb1c3cfa59bd..b8df87e176f27b25534f27d7e240defa32ca35bc:/examples/java/cloud/migration/Test.java diff --git a/examples/java/cloud/migration/Test.java b/examples/java/cloud/migration/Test.java index c9ccc6e088..cbc51d4a91 100644 --- a/examples/java/cloud/migration/Test.java +++ b/examples/java/cloud/migration/Test.java @@ -1,5 +1,4 @@ -/* Copyright (c) 2014, 2016. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2014-2019. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -8,32 +7,34 @@ package cloud.migration; import java.util.ArrayList; import java.util.List; - -import org.simgrid.msg.*; +import org.simgrid.msg.Host; +import org.simgrid.msg.HostFailureException; +import org.simgrid.msg.HostNotFoundException; +import org.simgrid.msg.Msg; +import org.simgrid.msg.MsgException; import org.simgrid.msg.Process; +import org.simgrid.msg.VM; public class Test extends Process{ - Test(String hostname, String name) throws HostNotFoundException, NativeException { + Test(String hostname, String name) throws HostNotFoundException { super(hostname, name); } + public void doMigration(VM vm, Host src, Host dst) throws HostFailureException{ + Msg.info(" - Launch migration from "+ src.getName() +" to " + dst.getName()); + double startTime = Msg.getClock(); + vm.migrate(dst); + double endTime = Msg.getClock(); + Msg.info(" - End of Migration from "+ src.getName() +" to " + dst.getName()+ " (duration:" + + (endTime-startTime)+")"); + } + public void main(String[] strings) throws MsgException { - double startTime = 0; - double endTime = 0; - - /* get hosts 1 and 2*/ - Host host0 = null; - Host host1 = null; - - try { - host0 = Host.getByName("host0"); - host1 = Host.getByName("host1"); - }catch (HostNotFoundException e) { - e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. - } + Host host0 = Host.getByName("PM0"); + Host host1 = Host.getByName("PM1"); - List vms = new ArrayList(); + List vms = new ArrayList<>(); /* Create VM1 */ int dpRate = 70; @@ -47,13 +48,8 @@ public class Test extends Process{ Msg.info("Load of collocated VMs fluctuate between 0 and 90% in order to create a starvation issue and see " + "whether it impacts or not the migration time"); - XVM vm1 = null; - vm1 = new XVM(host0, "vm0", - 1, // Nb of vcpu + XVM vm1 = new XVM(host0, "vm0", 2048, // Ramsize, - 125, // Net Bandwidth - null, //VM disk image - -1, //size of disk image, 125, // Net bandwidth, dpRate // Memory intensity ); @@ -61,8 +57,7 @@ public class Test extends Process{ vm1.start(); /* Collocated VMs */ - int collocatedSrc = 6; - int vmSrcLoad[] = { + int[] vmSrcLoad = { 80, 0, 90, @@ -71,14 +66,10 @@ public class Test extends Process{ 90, }; - XVM tmp = null; - for (int i=1 ; i<= collocatedSrc ; i++){ + XVM tmp; + for (int i=1 ; i<= vmSrcLoad.length ; i++){ tmp = new XVM(host0, "vm"+i, - 1, // Nb of vcpu 2048, // Ramsize, - 125, // Net Bandwidth - null, //VM disk image - -1, //size of disk image, 125, // Net bandwidth, dpRate // Memory intensity ); @@ -87,8 +78,7 @@ public class Test extends Process{ tmp.setLoad(vmSrcLoad[i-1]); } - int collocatedDst = 6; - int vmDstLoad[] = { + int[] vmDstLoad = { 0, 40, 90, @@ -97,13 +87,9 @@ public class Test extends Process{ 80, }; - for (int i=1 ; i <= collocatedDst ; i++){ - tmp = new XVM(host1, "vm"+(i+collocatedSrc), - 1, // Nb of vcpu + for (int i=1 ; i <= vmDstLoad.length ; i++){ + tmp = new XVM(host1, "vm"+(i+vmSrcLoad.length), 2048, // Ramsize, - 125, // Net Bandwidth - null, //VM disk image - -1, //size of disk image, 125, // Net bandwidth, dpRate // Memory intensity ); @@ -114,35 +100,18 @@ public class Test extends Process{ Msg.info("Round trip of VM1 (load "+load1+"%)"); vm1.setLoad(load1); - Msg.info(" - Launch migration from host 0 to host 1"); - startTime = Msg.getClock(); - vm1.migrate(host1); - endTime = Msg.getClock(); - Msg.info(" - End of Migration from host 0 to host 1 (duration:"+(endTime-startTime)+")"); - Msg.info(" - Launch migration from host 1 to host 0"); - startTime = Msg.getClock(); - vm1.migrate(host0); - endTime = Msg.getClock(); - Msg.info(" - End of Migration from host 1 to host 0 (duration:"+(endTime-startTime)+")"); - + doMigration(vm1, host0, host1); + doMigration(vm1, host1, host0); Msg.info(""); Msg.info(""); Msg.info("Round trip of VM1 (load "+load2+"%)"); vm1.setLoad(load2); - Msg.info(" - Launch migration from host 0 to host 1"); - startTime = Msg.getClock(); - vm1.migrate(host1); - endTime = Msg.getClock(); - Msg.info(" - End of Migration from host 0 to host 1 (duration:"+(endTime-startTime)+")"); - Msg.info(" - Launch migration from host 1 to host 0"); - startTime = Msg.getClock(); - vm1.migrate(host0); - endTime = Msg.getClock(); - Msg.info(" - End of Migration from host 1 to host 0 (duration:"+(endTime-startTime)+")"); + doMigration(vm1, host0, host1); + doMigration(vm1, host1, host0); Main.setEndOfTest(); Msg.info("Forcefully destroy VMs"); for (VM vm: vms) - vm.finalize(); + vm.destroy(); } }