Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright headers.
[simgrid.git] / examples / java / cloud / migration / Test.java
index 5eee62d..6f7686e 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (c) 2014, 2016. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2014-2018. 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<VM> vms = new ArrayList<VM>();
+    List<VM> 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,31 +100,14 @@ 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");