hubblo-org / scaphandre

⚡ Energy consumption metrology agent. Let "scaph" dive and bring back the metrics that will help you make your systems and applications more sustainable !
Apache License 2.0
1.64k stars 109 forks source link

Problems in estimating multithreaded virtualisation processes #335

Open malinvaudpaul opened 1 year ago

malinvaudpaul commented 1 year ago

Hello, I am using Scaphandre (v0.5.0) to estimate the power consumption of VMs. I'm wondering about the accuracy of the data returned for a multithreaded QEMU process.

Capture d’écran 2023-07-12 à 18 42 08

Here's the situation, I'm on a Kernel 5.15.50, on which I'm running a multithreaded QEMU virtualisation process (yellow line). The green line is the metric scaph_host_power_microwatts. I run the command stress-ng -c 1 (blue line), first on the host only (first period), then simultaneously on the host and the VM (second period) and finally on the VM only (third period). You'd expect to see symmetry in relation to the 16:33:30 point, but the same system stress on the host or the VM doesn't seem to be evaluated in the same way by Scaphandre at the level of the QEMU process, whereas it's estimated to be more or less of the same order of magnitude at host level.

Note that for the last period, the qemu-kvm process represented as much as the stress-ng-cpu process among the other processes in the system over the first period, something like 98% of the sum of all of them.

I therefore have the impression that Scaphandre has a blind spot when it comes to estimating multithreaded processes, which I can't yet explain.

bpetit commented 1 month ago

Hi, This behavior seems like something that led to other issues in the past, and has been fixed in 1.0. Could you upgrade and see how it goes ?

To clarify, this documentation page explains the global behavior of the process* and host metrics.

I'd be keen to read about further tests. Thank you.