113 |
113 |
, pRem :: Double -- ^ Percent of reserved memory
|
114 |
114 |
, pCpu :: Double -- ^ Ratio of virtual to physical CPUs
|
115 |
115 |
, mDsk :: Double -- ^ Minimum free disk ratio
|
116 |
|
, mCpu :: Double -- ^ Max ratio of virt-to-phys CPUs
|
117 |
116 |
, loDsk :: Int -- ^ Autocomputed from mDsk low disk
|
118 |
117 |
-- threshold
|
119 |
118 |
, hiCpu :: Int -- ^ Autocomputed from mCpu high cpu
|
... | ... | |
214 |
213 |
, offline = offline_init
|
215 |
214 |
, xMem = 0
|
216 |
215 |
, mDsk = T.defReservedDiskRatio
|
217 |
|
, mCpu = T.defVcpuRatio
|
218 |
216 |
, loDsk = mDskToloDsk T.defReservedDiskRatio dsk_t_init
|
219 |
|
, hiCpu = mCpuTohiCpu T.defVcpuRatio cpu_t_init
|
|
217 |
, hiCpu = mCpuTohiCpu (T.iPolicyVcpuRatio T.defIPolicy) cpu_t_init
|
220 |
218 |
, utilPool = T.baseUtil
|
221 |
219 |
, utilLoad = T.zeroUtil
|
222 |
220 |
, pTags = Map.empty
|
... | ... | |
256 |
254 |
setMdsk :: Node -> Double -> Node
|
257 |
255 |
setMdsk t val = t { mDsk = val, loDsk = mDskToloDsk val (tDsk t) }
|
258 |
256 |
|
259 |
|
-- | Sets the max cpu usage ratio.
|
|
257 |
-- | Sets the max cpu usage ratio. This will update the node's
|
|
258 |
-- ipolicy, losing sharing (but it should be a seldomly done operation).
|
260 |
259 |
setMcpu :: Node -> Double -> Node
|
261 |
|
setMcpu t val = t { mCpu = val, hiCpu = mCpuTohiCpu val (tCpu t) }
|
|
260 |
setMcpu t val =
|
|
261 |
let new_ipol = (iPolicy t) { T.iPolicyVcpuRatio = val }
|
|
262 |
in t { hiCpu = mCpuTohiCpu val (tCpu t), iPolicy = new_ipol }
|
262 |
263 |
|
263 |
264 |
-- | Sets the policy.
|
264 |
265 |
setPolicy :: T.IPolicy -> Node -> Node
|
265 |
|
setPolicy pol node = node { iPolicy = pol }
|
|
266 |
setPolicy pol node =
|
|
267 |
node { iPolicy = pol
|
|
268 |
, hiCpu = mCpuTohiCpu (T.iPolicyVcpuRatio pol) (tCpu node) }
|
266 |
269 |
|
267 |
270 |
-- | Computes the maximum reserved memory for peers from a peer map.
|
268 |
271 |
computeMaxRes :: P.PeerMap -> P.Elem
|
... | ... | |
391 |
394 |
new_ucpu = Instance.applyIfOnline inst (+ Instance.vcpus inst) (uCpu t)
|
392 |
395 |
new_pcpu = fromIntegral new_ucpu / tCpu t
|
393 |
396 |
new_dp = fromIntegral new_dsk / tDsk t
|
394 |
|
l_cpu = mCpu t
|
|
397 |
l_cpu = T.iPolicyVcpuRatio $ iPolicy t
|
395 |
398 |
new_load = utilLoad t `T.addUtil` Instance.util inst
|
396 |
399 |
inst_tags = Instance.tags inst
|
397 |
400 |
old_tags = pTags t
|