all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH proxmox-resource-scheduling] pve static: add one to avoid boosting tiny relative differences
Date: Tue, 21 Mar 2023 17:44:50 +0100	[thread overview]
Message-ID: <20230321164452.268358-1-f.ebner@proxmox.com> (raw)

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





             reply	other threads:[~2023-03-21 16:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-21 16:44 Fiona Ebner [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230321164452.268358-1-f.ebner@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal