mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
More logging changes for
Bug 7845 Productize DeploymentPlanner Bug 8317 Add better resource allocation failure messages
This commit is contained in:
parent
889827b63a
commit
6a67bb1edb
@ -206,7 +206,15 @@ public class CapacityManagerImpl implements CapacityManager , StateListener<Stat
|
|||||||
|
|
||||||
boolean success = false;
|
boolean success = false;
|
||||||
if (fromLastHost) {
|
if (fromLastHost) {
|
||||||
/*alloc from reserved*/
|
/*alloc from reserved*/
|
||||||
|
long freeCpu = reservedCpu;
|
||||||
|
long freeMem = reservedMem;
|
||||||
|
|
||||||
|
if (s_logger.isDebugEnabled()) {
|
||||||
|
s_logger.debug("We need to allocate to the last host again, so trying to allocate from reserved capacity");
|
||||||
|
s_logger.debug("Free CPU: "+freeCpu + " , Requested CPU: "+cpu);
|
||||||
|
s_logger.debug("Free RAM: "+freeMem + " , Requested RAM: "+ram);
|
||||||
|
}
|
||||||
if (reservedCpu >= cpu && reservedMem >= ram) {
|
if (reservedCpu >= cpu && reservedMem >= ram) {
|
||||||
capacityCpu.setReservedCapacity(reservedCpu - cpu);
|
capacityCpu.setReservedCapacity(reservedCpu - cpu);
|
||||||
capacityMem.setReservedCapacity(reservedMem - ram);
|
capacityMem.setReservedCapacity(reservedMem - ram);
|
||||||
@ -218,6 +226,13 @@ public class CapacityManagerImpl implements CapacityManager , StateListener<Stat
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/*alloc from free resource*/
|
/*alloc from free resource*/
|
||||||
|
long freeCpu = totalCpu - (reservedCpu + usedCpu);
|
||||||
|
long freeMem = totalMem - (reservedMem + usedMem);
|
||||||
|
|
||||||
|
if (s_logger.isDebugEnabled()) {
|
||||||
|
s_logger.debug("Free CPU: "+freeCpu + " , Requested CPU: "+cpu);
|
||||||
|
s_logger.debug("Free RAM: "+freeMem + " , Requested RAM: "+ram);
|
||||||
|
}
|
||||||
if ((reservedCpu + usedCpu + cpu <= totalCpu) && (reservedMem + usedMem + ram <= totalMem)) {
|
if ((reservedCpu + usedCpu + cpu <= totalCpu) && (reservedMem + usedMem + ram <= totalMem)) {
|
||||||
capacityCpu.setUsedCapacity(usedCpu + cpu);
|
capacityCpu.setUsedCapacity(usedCpu + cpu);
|
||||||
capacityMem.setUsedCapacity(usedMem + ram);
|
capacityMem.setUsedCapacity(usedMem + ram);
|
||||||
@ -226,12 +241,12 @@ public class CapacityManagerImpl implements CapacityManager , StateListener<Stat
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
s_logger.debug("alloc cpu from host: " + hostId + ", old used: " + usedCpu + ", old reserved: " +
|
s_logger.debug("Success in alloc cpu from host: " + hostId + ", old used: " + usedCpu + ", old reserved: " +
|
||||||
reservedCpu + ", old total: " + totalCpu +
|
reservedCpu + ", old total: " + totalCpu +
|
||||||
"; new used:" + capacityCpu.getUsedCapacity() + ", reserved:" + capacityCpu.getReservedCapacity() + ", total: " + capacityCpu.getTotalCapacity() +
|
"; new used:" + capacityCpu.getUsedCapacity() + ", reserved:" + capacityCpu.getReservedCapacity() + ", total: " + capacityCpu.getTotalCapacity() +
|
||||||
"; requested cpu:" + cpu + ",alloc_from_last:" + fromLastHost);
|
"; requested cpu:" + cpu + ",alloc_from_last:" + fromLastHost);
|
||||||
|
|
||||||
s_logger.debug("alloc mem from host: " + hostId + ", old used: " + usedMem + ", old reserved: " +
|
s_logger.debug("Success in alloc mem from host: " + hostId + ", old used: " + usedMem + ", old reserved: " +
|
||||||
reservedMem + ", old total: " + totalMem + "; new used: " + capacityMem.getUsedCapacity() + ", reserved: " +
|
reservedMem + ", old total: " + totalMem + "; new used: " + capacityMem.getUsedCapacity() + ", reserved: " +
|
||||||
capacityMem.getReservedCapacity() + ", total: " + capacityMem.getTotalCapacity() + "; requested mem: " + ram + ",alloc_from_last:" + fromLastHost);
|
capacityMem.getReservedCapacity() + ", total: " + capacityMem.getTotalCapacity() + "; requested mem: " + ram + ",alloc_from_last:" + fromLastHost);
|
||||||
|
|
||||||
@ -273,14 +288,18 @@ public class CapacityManagerImpl implements CapacityManager , StateListener<Stat
|
|||||||
long reservedMem = capacityMem.getReservedCapacity();
|
long reservedMem = capacityMem.getReservedCapacity();
|
||||||
long totalCpu = capacityCpu.getTotalCapacity();
|
long totalCpu = capacityCpu.getTotalCapacity();
|
||||||
long totalMem = capacityMem.getTotalCapacity();
|
long totalMem = capacityMem.getTotalCapacity();
|
||||||
long freeCpu = totalCpu - (reservedCpu + usedCpu);
|
|
||||||
long freeMem = totalMem - (reservedMem + usedMem);
|
|
||||||
|
|
||||||
String failureReason = "";
|
String failureReason = "";
|
||||||
if (checkFromReservedCapacity) {
|
if (checkFromReservedCapacity) {
|
||||||
|
long freeCpu = reservedCpu;
|
||||||
|
long freeMem = reservedMem;
|
||||||
|
|
||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
s_logger.debug("Checking from reserved capacity of the host, looks like allocating to last host");
|
s_logger.debug("We need to allocate to the last host again, so checking if there is enough reserved capacity");
|
||||||
}
|
s_logger.debug("Free CPU: "+freeCpu + " , Requested CPU: "+cpu);
|
||||||
|
s_logger.debug("Free RAM: "+freeMem + " , Requested RAM: "+ram);
|
||||||
|
}
|
||||||
/*alloc from reserved*/
|
/*alloc from reserved*/
|
||||||
if (reservedCpu >= cpu){
|
if (reservedCpu >= cpu){
|
||||||
if(reservedMem >= ram) {
|
if(reservedMem >= ram) {
|
||||||
@ -292,6 +311,13 @@ public class CapacityManagerImpl implements CapacityManager , StateListener<Stat
|
|||||||
failureReason = "Host does not have enough reserved CPU available";
|
failureReason = "Host does not have enough reserved CPU available";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
long freeCpu = totalCpu - (reservedCpu + usedCpu);
|
||||||
|
long freeMem = totalMem - (reservedMem + usedMem);
|
||||||
|
|
||||||
|
if (s_logger.isDebugEnabled()) {
|
||||||
|
s_logger.debug("Free CPU: "+freeCpu + " , Requested CPU: "+cpu);
|
||||||
|
s_logger.debug("Free RAM: "+freeMem + " , Requested RAM: "+ram);
|
||||||
|
}
|
||||||
/*alloc from free resource*/
|
/*alloc from free resource*/
|
||||||
if ((reservedCpu + usedCpu + cpu <= totalCpu)) {
|
if ((reservedCpu + usedCpu + cpu <= totalCpu)) {
|
||||||
if((reservedMem + usedMem + ram <= totalMem)){
|
if((reservedMem + usedMem + ram <= totalMem)){
|
||||||
@ -324,11 +350,6 @@ public class CapacityManagerImpl implements CapacityManager , StateListener<Stat
|
|||||||
s_logger.debug("STATS: Failed to alloc resource from host: " + hostId + " reservedCpu: " + reservedCpu + ", used cpu: " + usedCpu + ", requested cpu: " + cpu +
|
s_logger.debug("STATS: Failed to alloc resource from host: " + hostId + " reservedCpu: " + reservedCpu + ", used cpu: " + usedCpu + ", requested cpu: " + cpu +
|
||||||
", total cpu: " + totalCpu +
|
", total cpu: " + totalCpu +
|
||||||
", reservedMem: " + reservedMem + ", used Mem: " + usedMem + ", requested mem: " + ram + ", total Mem:" + totalMem);
|
", reservedMem: " + reservedMem + ", used Mem: " + usedMem + ", requested mem: " + ram + ", total Mem:" + totalMem);
|
||||||
|
|
||||||
if (s_logger.isDebugEnabled()) {
|
|
||||||
s_logger.debug("Free CPU: "+freeCpu + " , Requested CPU: "+cpu);
|
|
||||||
s_logger.debug("Free RAM: "+freeMem + " , Requested RAM: "+ram);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
|
|||||||
@ -166,7 +166,7 @@ public enum Config {
|
|||||||
ControlCidr("Advanced", ManagementServer.class, String.class, "control.cidr", "169.254.0.0/16", "Changes the cidr for the control network traffic. Defaults to using link local. Must be unique within pods", null),
|
ControlCidr("Advanced", ManagementServer.class, String.class, "control.cidr", "169.254.0.0/16", "Changes the cidr for the control network traffic. Defaults to using link local. Must be unique within pods", null),
|
||||||
ControlGateway("Advanced", ManagementServer.class, String.class, "control.gateway", "169.254.0.1", "gateway for the control network traffic", null),
|
ControlGateway("Advanced", ManagementServer.class, String.class, "control.gateway", "169.254.0.1", "gateway for the control network traffic", null),
|
||||||
UseUserConcentratedPodAllocation("Advanced", ManagementServer.class, Boolean.class, "use.user.concentrated.pod.allocation", "true", "If true, deployment planner applies the user concentration heuristic during VM resource allocation", "true,false"),
|
UseUserConcentratedPodAllocation("Advanced", ManagementServer.class, Boolean.class, "use.user.concentrated.pod.allocation", "true", "If true, deployment planner applies the user concentration heuristic during VM resource allocation", "true,false"),
|
||||||
HostCapacityTypeToOrderClusters("Advanced", ManagementServer.class, String.class, "host.capacityType.to.order.clusters", "CPU", "The host capacity type is used by deployment planner to order clusters during VM resource allocation", "CPU,RAM"),
|
HostCapacityTypeToOrderClusters("Advanced", ManagementServer.class, String.class, "host.capacityType.to.order.clusters", "CPU", "The host capacity type (CPU or RAM) is used by deployment planner to order clusters during VM resource allocation", "CPU,RAM"),
|
||||||
|
|
||||||
// XenServer
|
// XenServer
|
||||||
VmAllocationAlgorithm("Advanced", ManagementServer.class, String.class, "vm.allocation.algorithm", "random", "If 'random', hosts within a pod will be randomly considered for VM/volume allocation. If 'firstfit', they will be considered on a first-fit basis.", null),
|
VmAllocationAlgorithm("Advanced", ManagementServer.class, String.class, "vm.allocation.algorithm", "random", "If 'random', hosts within a pod will be randomly considered for VM/volume allocation. If 'firstfit', they will be considered on a first-fit basis.", null),
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
package com.cloud.storage.allocator;
|
package com.cloud.storage.allocator;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
@ -62,7 +63,7 @@ public class FirstFitStoragePoolAllocator extends AbstractStoragePoolAllocator {
|
|||||||
long clusterId = plan.getClusterId();
|
long clusterId = plan.getClusterId();
|
||||||
|
|
||||||
if(dskCh.getTags() != null && dskCh.getTags().length != 0){
|
if(dskCh.getTags() != null && dskCh.getTags().length != 0){
|
||||||
s_logger.debug("Looking for pools in dc: " + dcId + " pod:" + podId + " cluster:" + clusterId + " having tags:" + dskCh.getTags());
|
s_logger.debug("Looking for pools in dc: " + dcId + " pod:" + podId + " cluster:" + clusterId + " having tags:" + Arrays.toString(dskCh.getTags()));
|
||||||
}else{
|
}else{
|
||||||
s_logger.debug("Looking for pools in dc: " + dcId + " pod:" + podId + " cluster:" + clusterId);
|
s_logger.debug("Looking for pools in dc: " + dcId + " pod:" + podId + " cluster:" + clusterId);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user