/** * Gets the list of completed vms. * * @return the completed vms */ public List<Vm> getCompletedVms() { List<Vm> vmsToRemove = new ArrayList<Vm>(); for (Vm vm : getVmList()) { if (vm.isInMigration()) { continue; } if (vm.getCurrentRequestedTotalMips() == 0) { vmsToRemove.add(vm); } } return vmsToRemove; }
/** * Gets the max power consumption of a host after placement of a candidate VM. * The VM is not in fact placed at the host. * We assume that load is balanced between PEs. The only * restriction is: VM's max MIPS < PE's MIPS * * @param host the host * @param vm the vm * * @return the power after allocation */ protected double getMaxUtilizationAfterAllocation(PowerHost host, Vm vm) { double requestedTotalMips = vm.getCurrentRequestedTotalMips(); double hostUtilizationMips = getUtilizationOfCpuMips(host); double hostPotentialUtilizationMips = hostUtilizationMips + requestedTotalMips; double pePotentialUtilization = hostPotentialUtilizationMips / host.getTotalMips(); return pePotentialUtilization; }
overallRam += ramUtilization; double cpuUtilization = (vm.getCurrentRequestedTotalMips()/vm.getMips())*100; dataList.add(new ReportData(CPU, null, brokerName, null, vmId, currentTime, cpuUtilization, currentSimulation)); overallCpu += cpuUtilization;
/** * Checks if a host is over utilized, based on CPU usage. * * @param host the host * @return true, if the host is over utilized; false otherwise */ @Override 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(); }
/** * Gets the CPU utilization of a host. * * @param host the host to be analyzed. * @since 1.0 */ protected static double getHostCpuUtilization(PowerHost host) { double cpuUtilization = host.getUtilizationOfCpuMips(); //Disconsider the resources of vms migrating out for (Vm vm : host.getVmList()) { if (vm.isInMigration()) { cpuUtilization -= host.getTotalAllocatedMipsForVm(vm); } } //Include resources of vms migrating in for (Vm vm : host.getVmsMigratingIn()) { if (vm.isInMigration()) { cpuUtilization += vm.getCurrentRequestedTotalMips(); } } return cpuUtilization; }
/** * Checks if a host is over utilized. * * @param host the host * @return true, if the host is over utilized; false otherwise */ @Override protected boolean isHostOverUtilized(PowerHost host) { PowerHostUtilizationHistory _host = (PowerHostUtilizationHistory) host; double upperThreshold = 0; try { upperThreshold = 1 - getSafetyParameter() * getHostUtilizationMad(_host); } catch (IllegalArgumentException e) { return getFallbackVmAllocationPolicy().isHostOverUtilized(host); } addHistoryEntry(host, upperThreshold); double totalRequestedMips = 0; for (Vm vm : host.getVmList()) { totalRequestedMips += vm.getCurrentRequestedTotalMips(); } double utilization = totalRequestedMips / host.getTotalMips(); return utilization > upperThreshold; }
/** * Checks if the host is over utilized, based on CPU utilization. * * @param host the host * @return true, if the host is over utilized; false otherwise */ @Override protected boolean isHostOverUtilized(PowerHost host) { PowerHostUtilizationHistory _host = (PowerHostUtilizationHistory) host; double upperThreshold = 0; try { upperThreshold = 1 - getSafetyParameter() * getHostUtilizationIqr(_host); } catch (IllegalArgumentException e) { return getFallbackVmAllocationPolicy().isHostOverUtilized(host); } addHistoryEntry(host, upperThreshold); double totalRequestedMips = 0; for (Vm vm : host.getVmList()) { totalRequestedMips += vm.getCurrentRequestedTotalMips(); } double utilization = totalRequestedMips / host.getTotalMips(); return utilization > upperThreshold; }
/** * Checks if the host is suitable for vm. If it has enough resources * to attend the VM. * * @param vm the vm * @return true, if is suitable for vm */ public boolean isSuitableForVm(Vm vm) { return (getVmScheduler().getPeCapacity() >= vm.getCurrentRequestedMaxMips() && getVmScheduler().getAvailableMips() >= vm.getCurrentRequestedTotalMips() && getRamProvisioner().isSuitableForVm(vm, vm.getCurrentRequestedRam()) && getBwProvisioner() .isSuitableForVm(vm, vm.getCurrentRequestedBw())); }
double totalRequestedMips = vm.getCurrentRequestedTotalMips(); double totalAllocatedMips = getVmScheduler().getTotalAllocatedMipsForVm(vm);