Fix cpu average. Use the cpu number of host and vm.
This commit is contained in:
parent
d7ed9ab64e
commit
da0c1cec22
@ -208,6 +208,7 @@ function computeRessourcesAverage (objects, objectsStats, nPoints) {
|
|||||||
objectAverages.cpu = computeAverage(
|
objectAverages.cpu = computeAverage(
|
||||||
mapToArray(stats.cpus, cpu => computeAverage(cpu, nPoints))
|
mapToArray(stats.cpus, cpu => computeAverage(cpu, nPoints))
|
||||||
)
|
)
|
||||||
|
objectAverages.nCpus = stats.cpus.length
|
||||||
|
|
||||||
objectAverages.memoryFree = computeAverage(stats.memoryFree, nPoints)
|
objectAverages.memoryFree = computeAverage(stats.memoryFree, nPoints)
|
||||||
objectAverages.memory = computeAverage(stats.memory, nPoints)
|
objectAverages.memory = computeAverage(stats.memory, nPoints)
|
||||||
@ -230,9 +231,10 @@ function computeRessourcesAverageWithWeight (averages1, averages2, ratio) {
|
|||||||
return averages
|
return averages
|
||||||
}
|
}
|
||||||
|
|
||||||
function setRealCpuAverageOfVms (vms, vmsAverages) {
|
function setRealCpuAverageOfVms (vms, vmsAverages, nCpus) {
|
||||||
for (const vm of vms) {
|
for (const vm of vms) {
|
||||||
vmsAverages[vm.id].cpu /= vm.CPUs.number
|
const averages = vmsAverages[vm.id]
|
||||||
|
averages.cpu *= averages.nCpus / nCpus
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -390,7 +392,7 @@ class Plan {
|
|||||||
return vmsStats
|
return vmsStats
|
||||||
}
|
}
|
||||||
|
|
||||||
async _getVmsAverages (vms) {
|
async _getVmsAverages (vms, host) {
|
||||||
const vmsStats = await this._getVmsStats(vms, 'minutes')
|
const vmsStats = await this._getVmsStats(vms, 'minutes')
|
||||||
const vmsAverages = computeRessourcesAverageWithWeight(
|
const vmsAverages = computeRessourcesAverageWithWeight(
|
||||||
computeRessourcesAverage(vms, vmsStats, EXECUTION_DELAY),
|
computeRessourcesAverage(vms, vmsStats, EXECUTION_DELAY),
|
||||||
@ -399,7 +401,7 @@ class Plan {
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Compute real CPU usage. Virtuals cpus to reals cpus.
|
// Compute real CPU usage. Virtuals cpus to reals cpus.
|
||||||
setRealCpuAverageOfVms(vms, vmsAverages)
|
setRealCpuAverageOfVms(vms, vmsAverages, host.CPUs.cpu_count)
|
||||||
|
|
||||||
return vmsAverages
|
return vmsAverages
|
||||||
}
|
}
|
||||||
@ -453,7 +455,7 @@ class PerformancePlan extends Plan {
|
|||||||
|
|
||||||
async _optimize ({ exceededHost, hosts, hostsAverages }) {
|
async _optimize ({ exceededHost, hosts, hostsAverages }) {
|
||||||
const vms = await this._getVms(exceededHost.id)
|
const vms = await this._getVms(exceededHost.id)
|
||||||
const vmsAverages = await this._getVmsAverages(vms)
|
const vmsAverages = await this._getVmsAverages(vms, exceededHost)
|
||||||
|
|
||||||
// Sort vms by cpu usage. (higher to lower)
|
// Sort vms by cpu usage. (higher to lower)
|
||||||
vms.sort((a, b) =>
|
vms.sort((a, b) =>
|
||||||
|
Loading…
Reference in New Issue
Block a user