diff --git a/Zhou2021AFED-EF_Sourcecode/Five_function_definition.txt b/Zhou2021AFED-EF_Sourcecode/Five_function_definition.txt new file mode 100644 index 0000000000000000000000000000000000000000..d4e3c50a9b7bcf10fc9ec89fc89657fcb61b6300 --- /dev/null +++ b/Zhou2021AFED-EF_Sourcecode/Five_function_definition.txt @@ -0,0 +1,63 @@ +protected boolean isHostOverUtilized(PowerHost host) { + addHistoryEntry(host, getUtilizationThreshold()); + double totalRequestedMips = 0; + for (Vm vm : host.getVmList()) { + totalRequestedMips += vm.getCurrentRequestedTotalMips(); + } + double utilization = totalRequestedMips / host.getTotalMips(); + return utilization > getUtilizationThreshold(); + } + + //new adding + + + protected boolean isHostLowUtilized(PowerHost host) { + //addHistoryEntry(host, getUtilizationThreshold()); + double totalRequestedMips = 0; + for (Vm vm : host.getVmList()) { + totalRequestedMips += vm.getCurrentRequestedTotalMips(); + } + double utilization = totalRequestedMips / host.getTotalMips(); + return utilization < getLowUtilizationThreshold(); + } + + + + + protected boolean isHostLightUtilized(PowerHost host) { + //addHistoryEntry(host, getUtilizationThreshold()); + double totalRequestedMips = 0; + for (Vm vm : host.getVmList()) { + totalRequestedMips += vm.getCurrentRequestedTotalMips(); + } + double utilization = totalRequestedMips / host.getTotalMips(); + return ((utilization < getMiddleUtilizationThreshold()) && utilization < getLowUtilizationThreshold())); + } + //new adding + + + + protected boolean isHostMiddleUtilized(PowerHost host) { + //addHistoryEntry(host, getUtilizationThreshold()); + double totalRequestedMips = 0; + for (Vm vm : host.getVmList()) { + totalRequestedMips += vm.getCurrentRequestedTotalMips(); + } + double utilization = totalRequestedMips / host.getTotalMips(); + return utilization > getMiddleUtilizationThreshold(); + } + //new adding + + + protected boolean isHostMediumUtilized(PowerHost host) { + //addHistoryEntry(host, getUtilizationThreshold()); + double totalRequestedMips = 0; + for (Vm vm : host.getVmList()) { + totalRequestedMips += vm.getCurrentRequestedTotalMips(); + } + double utilization = totalRequestedMips / host.getTotalMips(); + return utilization > getMediumUtilizationThreshold(); + } + + //new adding + \ No newline at end of file diff --git a/Zhou2021AFED-EF_Sourcecode/KMIR.java b/Zhou2021AFED-EF_Sourcecode/KMIR.java new file mode 100644 index 0000000000000000000000000000000000000000..96558cb4e0905f481bd975748a9afc0c00f21ee2 --- /dev/null +++ b/Zhou2021AFED-EF_Sourcecode/KMIR.java @@ -0,0 +1,34 @@ +package org.cloudbus.cloudsim.examples.power.planetlab; + +import java.io.IOException; + + +public class KMIR { + + /** + * The main method. + * + * @param args the arguments + * @throws IOException Signals that an I/O exception has occurred. + */ + public static void main(String[] args) throws IOException { + boolean enableOutput = true; + boolean outputToFile = false; + String inputFolder = KMIR.class.getClassLoader().getResource("workload/planetlab").getPath(); + String outputFolder = "output"; + String workload = "20110303"; // PlanetLab workload//计算密集型任务 + String vmAllocationPolicy = "KMeansMadIQR"; + String vmSelectionPolicy = "mmt"; // Minimum Migration Time (MMT) VM selection policy + String parameter = "1.0"; // the safety parameter of the MAD policy + new PlanetLabRunner( + enableOutput, + outputToFile, + inputFolder, + outputFolder, + workload, + vmAllocationPolicy, + vmSelectionPolicy, + parameter); + } + +} \ No newline at end of file