Revision b7743258
b/htools/Ganeti/HTools/Node.hs | ||
---|---|---|
225 | 225 |
, peers = P.empty |
226 | 226 |
, rMem = 0 |
227 | 227 |
, pMem = fromIntegral mem_f_init / mem_t_init |
228 |
, pDsk = fromIntegral dsk_f_init / dsk_t_init
|
|
228 |
, pDsk = computePDsk dsk_f_init dsk_t_init
|
|
229 | 229 |
, pRem = 0 |
230 | 230 |
, pCpu = 0 |
231 | 231 |
, offline = offline_init |
... | ... | |
341 | 341 |
new_spindles = instSpindles t + if Instance.usesLocalStorage inst |
342 | 342 |
then 1 else 0 |
343 | 343 |
|
344 |
-- | Computes the new 'pDsk' value, handling nodes without local disk |
|
345 |
-- storage (we consider all their disk used). |
|
346 |
computePDsk :: Int -> Double -> Double |
|
347 |
computePDsk _ 0 = 1 |
|
348 |
computePDsk used total = fromIntegral used / total |
|
349 |
|
|
344 | 350 |
-- * Update functions |
345 | 351 |
|
346 | 352 |
-- | Sets the free memory. |
... | ... | |
361 | 367 |
new_dsk = incIf uses_disk (fDsk t) (Instance.dsk inst) |
362 | 368 |
new_spindles = decIf uses_disk (instSpindles t) 1 |
363 | 369 |
new_mp = fromIntegral new_mem / tMem t |
364 |
new_dp = fromIntegral new_dsk / tDsk t
|
|
370 |
new_dp = computePDsk new_dsk (tDsk t)
|
|
365 | 371 |
new_failn1 = new_mem <= rMem t |
366 | 372 |
new_ucpu = decIf i_online (uCpu t) (Instance.vcpus inst) |
367 | 373 |
new_rcpu = fromIntegral new_ucpu / tCpu t |
... | ... | |
395 | 401 |
else computeMaxRes new_peers |
396 | 402 |
new_prem = fromIntegral new_rmem / tMem t |
397 | 403 |
new_failn1 = fMem t <= new_rmem |
398 |
new_dp = fromIntegral new_dsk / tDsk t
|
|
404 |
new_dp = computePDsk new_dsk (tDsk t)
|
|
399 | 405 |
old_load = utilLoad t |
400 | 406 |
new_load = old_load { T.dskWeight = T.dskWeight old_load - |
401 | 407 |
T.dskWeight (Instance.util inst) } |
... | ... | |
430 | 436 |
new_failn1 = new_mem <= rMem t |
431 | 437 |
new_ucpu = incIf i_online (uCpu t) (Instance.vcpus inst) |
432 | 438 |
new_pcpu = fromIntegral new_ucpu / tCpu t |
433 |
new_dp = fromIntegral new_dsk / tDsk t
|
|
439 |
new_dp = computePDsk new_dsk (tDsk t)
|
|
434 | 440 |
l_cpu = T.iPolicyVcpuRatio $ iPolicy t |
435 | 441 |
new_load = utilLoad t `T.addUtil` Instance.util inst |
436 | 442 |
inst_tags = Instance.tags inst |
... | ... | |
477 | 483 |
new_rmem = max (rMem t) new_peem |
478 | 484 |
new_prem = fromIntegral new_rmem / tMem t |
479 | 485 |
new_failn1 = old_mem <= new_rmem |
480 |
new_dp = fromIntegral new_dsk / tDsk t
|
|
486 |
new_dp = computePDsk new_dsk (tDsk t)
|
|
481 | 487 |
old_load = utilLoad t |
482 | 488 |
new_load = old_load { T.dskWeight = T.dskWeight old_load + |
483 | 489 |
T.dskWeight (Instance.util inst) } |
Also available in: Unified diff