[pve-devel] [PATCH proxmox-resource-scheduling 1/3] initial commit

Fiona Ebner f.ebner at proxmox.com
Wed Nov 16 10:09:45 CET 2022


Am 15.11.22 um 16:39 schrieb DERUMIER, Alexandre:
> Thanks Fiona for your hard work on this !
> 
> I'm going to review/test them this week.
> 
> I'm  not an expert in Rust, but I think I'll be able to read the code
> 

Thank you for pushing the idea in the first place! Let's hope we can
re-use this infrastructure to get to a real dynamic balancer down the
line :)

> 
> Just a question, how do you choose the weight of different criteria ?
> 
> I think in the second patch, I see:
> 
> +    static ref PVE_HA_TOPSIS_CRITERIA: TopsisCriteria<N_CRITERIA> =
> TopsisCriteria::new([
> +        TopsisCriterion::new("average CPU".to_string(), -1.0),
> +        TopsisCriterion::new("highest CPU".to_string(), -2.0),
> +        TopsisCriterion::new("average memory".to_string(), -5.0),
> +        TopsisCriterion::new("highest memory".to_string(), -10.0),
> +    ])
> 
> 
> Is is arbitrary values ?

Yes, it's arbitrary. Thomas suggested that memory should be much more
important, because it's "hard" limited compared to CPU time. Average
will mostly be relevant when there is already a highly-commited node.
Not overcommitting nodes in the first place should take precedence over
that of course, so highest is more important than average.

> 
> if you look at my previous patch series,
> https://lists.proxmox.com/pipermail/pve-devel/2022-April/052779.html
> 
> I have also implement the AHP algo. (from AHP-TOPSIS), which is really
> usefull to find weights for criteria, when you begin to have a lot of
> criterias, giving priority in a matrix between each criterias.
> 
> here a youtube video about the math:
> https://www.youtube.com/watch?v=J4T70o8gjlk&t=456s
> 
> 
> (I had implemented AHP to dynamic find the weights on service start, we
> the weight could be compute once, and set statically)

Yes, I mention this in the cover letter. We can still implement it later
if we want to. It's true that with AHP you only have to choose pairwise
weights, but in a way it doesn't make the task fundamentally easier,
because you have to guess n(n-1)/2 arbitrary values rather than n
arbitrary values ;)





More information about the pve-devel mailing list