public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH proxmox-resource-scheduling] pve static: add one to avoid boosting tiny relative differences
@ 2023-03-21 16:44 Fiona Ebner
  2023-03-21 16:44 ` [pve-devel] [PATCH proxmox-perl-rs 1/2] pve: test: resource scheduling: add test where memory is secondary to CPU Fiona Ebner
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Fiona Ebner @ 2023-03-21 16:44 UTC (permalink / raw)
  To: pve-devel

Only the relative difference for values between different alternatives
is relevant, meaning 0.002 vs 0.004 and 0.2 vs 0.4 will influence the
scoring in the same way. This is not really desirable, because values
closer to 1.0 indicate higher load and thus should influence the
scoring more than differences that are actually tiny, but big when
viewed as a relative difference.

To avoid the issue, simply add 1.0 to all values. Like that, 1.002 vs
1.004 will also be small when viewed as a relative difference.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---
 src/pve_static.rs | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/pve_static.rs b/src/pve_static.rs
index 814d44f..d39614c 100644
--- a/src/pve_static.rs
+++ b/src/pve_static.rs
@@ -104,11 +104,13 @@ pub fn score_nodes_to_start_service(
                 squares_mem += new_mem.powi(2);
             }
 
+            // Add 1.0 to avoid boosting tiny differences: e.g. 0.004 is twice as much as 0.002, but
+            // 1.004 is only slightly more than 1.002.
             PveTopsisAlternative {
-                average_cpu: (squares_cpu / len as f64).sqrt(),
-                highest_cpu,
-                average_memory: (squares_mem / len as f64).sqrt(),
-                highest_memory: highest_mem,
+                average_cpu: 1.0 + (squares_cpu / len as f64).sqrt(),
+                highest_cpu: 1.0 + highest_cpu,
+                average_memory: 1.0 + (squares_mem / len as f64).sqrt(),
+                highest_memory: 1.0 + highest_mem,
             }
             .into()
         })
-- 
2.30.2





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-11-06 17:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-21 16:44 [pve-devel] [PATCH proxmox-resource-scheduling] pve static: add one to avoid boosting tiny relative differences Fiona Ebner
2023-03-21 16:44 ` [pve-devel] [PATCH proxmox-perl-rs 1/2] pve: test: resource scheduling: add test where memory is secondary to CPU Fiona Ebner
2023-03-21 16:44 ` [pve-devel] [PATCH proxmox-perl-rs 2/2] pve: test: resource scheduling: add another " Fiona Ebner
2023-03-22  8:32 ` [pve-devel] applied: [PATCH proxmox-resource-scheduling] pve static: add one to avoid boosting tiny relative differences Thomas Lamprecht
2023-10-05  9:50   ` Fiona Ebner
2023-11-06 17:21     ` [pve-devel] applied: " Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal