/** * Gets the maximum vm migration time. * * @param host the host * @return the maximum vm migration time */ protected double getMaximumVmMigrationTime(PowerHost host) { int maxRam = Integer.MIN_VALUE; for (Vm vm : host.getVmList()) { int ram = vm.getRam(); if (ram > maxRam) { maxRam = ram; } } return maxRam / ((double) host.getBw() / (2 * 8000)); }
@Override public Vm getVmToMigrate(PowerHost host) { List<PowerVm> migratableVms = getMigratableVms(host); if (migratableVms.isEmpty()) { return null; } Vm vmToMigrate = null; double minMetric = Double.MAX_VALUE; for (Vm vm : migratableVms) { if (vm.isInMigration()) { continue; } double metric = vm.getRam(); if (metric < minMetric) { minMetric = metric; vmToMigrate = vm; } } return vmToMigrate; }
/** * Gets the RAM utilization of a host. * * @param host the host to be analyzed. * @since 1.0 */ protected static double getHostRamUtilization(PowerHost host) { double ramUtilization = host.getUtilizationOfRam(); //Disconsider the resources of vms migrating out for (Vm vm : host.getVmList()) { if (vm.isInMigration()) { ramUtilization -= vm.getRam(); } } //Include resources of vms migrating in for (Vm vm : host.getVmsMigratingIn()) { if (vm.isInMigration()) { ramUtilization += vm.getRam(); } } return ramUtilization; }
double vmTotalMips = vm.getNumberOfPes() * vm.getMips(); if ((hostResources.get(0) + vmTotalMips) / targetHost.getTotalMips() < upperUtilizationThreshold && (hostResources.get(1) + vm.getRam()) / targetHost.getRam() < upperUtilizationThreshold) { hostResources.set(1, hostResources.get(1) + vm.getRam()); ramUtilization -= vm.getRam(); cpuUtilization -= sourceHost.getTotalAllocatedMipsForVm(vm);
int vmId = vm.getId(); double ramUtilization = (vm.getCurrentAllocatedRam()/vm.getRam())*100; dataList.add(new ReportData(RAM, null, brokerName, null, vmId, currentTime, ramUtilization, currentSimulation)); overallRam += ramUtilization;
double vmTotalMips = vm.getNumberOfPes() * vm.getMips(); if ((hostResources.get(0) + vmTotalMips) / targetHost.getTotalMips() < upperUtilizationThreshold && (hostResources.get(1) + vm.getRam()) / targetHost.getRam() < upperUtilizationThreshold) { hostResources.set(1, hostResources.get(1) + vm.getRam()); ramUtilization -= vm.getRam(); cpuUtilization -= sourceHost.getTotalAllocatedMipsForVm(vm);
@Override public boolean allocateRamForVm(Vm vm, int ram) { int maxRam = vm.getRam(); /* If the requested amount of RAM to be allocated to the VM is greater than the amount of VM is in fact requiring, allocate only the amount defined in the Vm requirements.*/ if (ram >= maxRam) { ram = maxRam; } deallocateRamForVm(vm); if (getAvailableRam() >= ram) { setAvailableRam(getAvailableRam() - ram); getRamTable().put(vm.getUid(), ram); vm.setCurrentAllocatedRam(getAllocatedRamForVm(vm)); return true; } vm.setCurrentAllocatedRam(getAllocatedRamForVm(vm)); return false; }
vm.getRam() / ((double) targetHost.getBw() / (2 * 8000)), CloudSimTags.VM_MIGRATE, migrate);
vm.getRam() / ((double) vm.getBw() / 8000) + 10, CloudSimTags.VM_MIGRATE, migrate);
send(getId(), vm.getRam() / ((double) vm.getBw() / 8000) + 10, CloudSimTags.VM_MIGRATE, migration.getMigrationMap());