Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Windows servers - bare metal and virtual hosts #74

Closed
fradaham opened this issue Feb 25, 2021 · 5 comments · Fixed by #148 or #149
Closed

Support Windows servers - bare metal and virtual hosts #74

fradaham opened this issue Feb 25, 2021 · 5 comments · Fixed by #148 or #149
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@fradaham
Copy link

Problem

I have a backend, self developed API-platform, serving billions of requests each year, written in .net Framework and running on old windows 2012 servers (might be we need to migrate to never windows server versions soon). At the same time, we have built a new modern version of our platform, which we run in linux docker containers.

I have two interests. One is of course that I want to be able to generally measure the power consumption for our new platform, to be able to make it as power efficient as possible. Scaphandre seems really promising. I tried it out on a bare metal linux host, and it seems it could cover the docker-case. I will investigate that further.

But the second is that I would like to be able to measure the power consumption of our old platform, running on windows. This to be able to compare to the new platform and hopefully be able to say things like: "If you clients migrate to the new platform, we save X kwh or y tonnes of carbon dioxide - per request!"

To be able to do that, I need something to measure process power consumption on windows, and in my case, the servers are virtual. Scaphandre still doesn't support windows.

Solution

I want Scaphandre to be able to measure process power consumption on windows virtual servers.

Alternatives

Additional context

@fradaham fradaham added the enhancement New feature or request label Feb 25, 2021
@bpetit bpetit added the help wanted Extra attention is needed label Mar 3, 2021
@bpetit
Copy link
Contributor

bpetit commented Mar 3, 2021

Hi,

This is something we should go for at some point as there are many windows servers running out there.

I can't say exactly when I could work on that right now as I have have some other topics I'm working on first (Warp10, AMD Zen3, ...)
But I hope at least to give it a try and document the challenges to overcome in the following months.

This is great that you asked for it, now it's in the place and if someone wants to give it a try on his own it can be documented here.

@bpetit bpetit added this to the Release v0.5.0 milestone Sep 11, 2021
@bpetit
Copy link
Contributor

bpetit commented Dec 14, 2021

A short update on this topic. Thanks to @Vic063, we have a working windows driver that queries rapl metrics from MSRs. I'm currently refactoring scaphandre's sensors to make it multi-plaform (multi-os in fact) and integrate this driver.

We'll release the driver soon (in a dedicated repo) and hopefully a first (draft) version of scaphandre using it short after (in a branch on the regular scaphandre repo).

Here is a callgraph draft I'm working on, for the sensors part of scaphandre, that helps me towards the refactoring.
(I thought it may be of interest for people digging into that part). The red parts are Linux specific and have to be called conditionally.

scaphandre_callgraph drawio

@bpetit
Copy link
Contributor

bpetit commented May 2, 2022

In order to provide some materials for the to-be-made documentation, I attach a presentation we prepared to explain how we implemented the support of windows (in french, sorry) :
Boavizta - Scaphandre_RAPL_Windows.pdf

@bpetit
Copy link
Contributor

bpetit commented Jul 20, 2022

We are close to merge this #148 in dev, then in release 0.5.

In the mean time, here is the repo of the driver for reading MSRs on windows : /~https://github.com/hubblo-org/windows-rapl-driver (there is still documentation and cleaning to do)

A huge thanks to @Vic063 for his tremendous work on this.

@bpetit
Copy link
Contributor

bpetit commented Jan 30, 2023

About to be released in 0.5 (experimental, no packaging)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
Status: Previous releases
2 participants