From 4a70871225eb415c6c9686024ed8ec025cbe90e5 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Tue, 10 Oct 2023 16:05:18 +0200 Subject: [PATCH 01/20] new blog post : The road to Scaphandre v1.0 : Challenges and improvements to come on IT energy consumption evaluation --- ...ome-on-IT-energy-consumption-evaluation.md | 101 ++++++++++++++++++ .../linux_vs_windows.webp | Bin 0 -> 30026 bytes .../map_it_energy_evaluation.webp | Bin 0 -> 29380 bytes 3 files changed, 101 insertions(+) create mode 100644 website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md create mode 100644 website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp create mode 100644 website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md new file mode 100644 index 00000000..7a4165ef --- /dev/null +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -0,0 +1,101 @@ +# The road to Scaphandre v1.0 : Challenges and improvements to come on IT energy consumption evaluation + +[TOC] + +_Community guest post as part of the cloud native sustainability week_ + +This blog post is about sharing what thoughts and insights we got during developing [Scaphandre](https://github.com/hubblo-org/scaphandre/) with our contributors, discussing with researchers and IT practitioners, regarding ways currently available to evaluate an IT server energy consumption and the limits of each. From this we try to picture some of the challenges ahead and leads we identify to work with them. + +## State of IT server energy consumption evaluation + +### What’s final energy consumption’s share in Information and Communication Technology (ICT) environmental impacts? + +First things first, this blog post should not to be interpreted as any solution of any kind. There is no solution regarding what’s happening to us, not in the terms we usually use and think of. [6 of the 9 planetary boundaries](https://en.wikipedia.org/wiki/Planetary_boundaries) are passed, which basically means we have at least 6 reasons to think that current mankind’s activity on the planet has the potential to make human’s livability on earth uncertain. These 6 reasons are our impacts on: climate change, [ocean acidification](https://en.wikipedia.org/wiki/Ocean_acidification), [biogeochemical](https://en.wikipedia.org/wiki/Biogeochemical_cycle) flows in the[ nitrogen (N) cycle](https://en.wikipedia.org/wiki/Nitrogen_cycle) and[ phosphorus (P) cycle](https://en.wikipedia.org/wiki/Phosphorus_cycle), global freshwater use, land system change, the erosion of biosphere integrity, and [chemical pollution](https://en.wikipedia.org/wiki/Pollution). + +What is the weight of ICT in those impacts? Regarding greenhouse gasses emissions leading to climate change, it’s said to weigh between [2,1 and 3,9% of global emissions in 2020](https://www.cell.com/patterns/fulltext/S2666-3899%2821%2900188-4). What’s most important is the trend, as projections to 2025 spoke about 6 to 8% of global emissions. Moreover, IT contributes to the pressure on natural resources, especially abiotic/mining resources (which is linked to chemical pollution), fresh water use, etc. Usage phase and associated final energy consumption might be the most important part of the carbon footprint of a server or a network equipment, if the carbon intensity of the electricity consumed is high. However, this is not true for end user devices or even a server that would run on a low carbon electricity grid. In those contexts, manufacturing represents most of the impact (you could play with [Datavizta’s charts](https://datavizta.boavizta.org/manufacturerdata?lifetime=5®ion=belgium&subcategory=Server) to get an idea). This being said, we are only speaking here about direct environmental impacts, or “first-order effect”,[ “second” and “third” order effects](https://link.springer.com/chapter/10.1007/978-3-319-09228-7_1) are a complex story that are probably the hidden, biggest part, of the iceberg. + +With this introduction, better measurements of IT energy consumption is no solution, only a part of necessary research to improve our understanding of the pressure IT has on electricity grids and find insights on how to reduce it. It is far from being the only thing to do in IT. Electricity (final energy) consumption in the usage phase of ICT is not only a matter of direct environmental impacts, but also of pressure put on electricity grids in times we need to move fossil-fuel based usages to electricity-based usages. + +### A bit of history, measuring the energy consumption of IT resources + +For years, the only way to measure the energy used by an IT server was to plug it in a wattmeter, thus having a physical device dedicated to get the power of the machine. Things got a bit better in 1998 and the appearance of [IPMI](https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface) as we got a way to evaluate the energy consumed by the machine from a web interface or an API. [SmartPDUs](https://www.vertiv.com/en-emea/about/news-and-insights/articles/educational-articles/what-is-a-smart-pdu/) were a nice improvement as well, as it permitted them to get those metrics in monitoring tools, time series databases and reporting dashboards. + +Those 2 ways share a common issue, we only get the global consumption of a machine. How to decide what actions to take to reduce the power used, beyond hardware changes, UEFI/BIOS configuration and firmware updates? How to get metrics from the infrastructures that would be useful to product and development teams and, moreover, everyone who is not working in the datacenter? Another question we might ask would be : how do we know the share of each component on the machine’s power? Here comes software-based power evaluation. + +### Means and realms of evaluation + +Let’s start with a visual overview of the different ways to evaluate a machine’s components energy consumption and the realm they cover. + +

>>>>> gd2md-html alert: inline image link here (to images/image1.jpg). Store image on your image server and adjust path/filename/extension if necessary.
(Back to top)(Next alert)
>>>>>

+ + +![A map of ways to evaluate energy consumption of a server and its components](images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp "image_tooltip") + +*A map of ways to evaluate energy consumption of a server and its components* + +It’s important to distinguish the metrics coming from low-level sensors provided by hardware manufacturers, or coming from a measurement dedicated device like a wattmeter/smartPDU. We will call those metrics “bottom-up” or “primary”. The metrics that are actually generated through a model. To be clear, a model means a formula or an algorithm that will speculate on the actual metrics based on some primary information it has access to. We will call those metrics “estimations” or “models”. Some high-level/userland tools provide both “primary” and “estimation” metrics. + +To evaluate the energy consumed by a **full server**, you might either use **a model**, or a **physical wattmeter/SmartPDU**. A model’s accuracy will depend on many parameters, as you have guessed, this is in the realm of pure estimation. A physical wattmeter, or a SmartPDU, will be (most probably) very accurate providing the whole machine power. It will also be great for evaluating the global energy consumption of a whole IT room or rack, maybe of a group of machines working for the same service, but it won’t be actionable to identify what components, applications or processes are responsible for the major part of this consumption, or to isolate the consumption of a given service differentiated from the other services running on the machines. + +Another way to evaluate the energy consumed by a whole machine, on middle-end to high-end servers, are IPMI/[DCMI](https://en.wikipedia.org/wiki/Data_Center_Manageability_Interface) compatible administration cards (they are called IDRAC at Dell or ILO at HPE for example). Those cards make metrics available on the network, either through a Web user interface, an HTTP API, and sometimes through a CLI tool accessible from the Host’s operating system. Depending on the implementation, you might have enough detail to know if the DC supply loss is accounted for in the “total” power measured. I couldn’t personally find or build a review of the different vendors' administration cards power evaluation methods. It seems they are all based on primary data at a first look, but more tests seem to indicate this is not the case for all vendors... + +Going deeper to get per-components power will feel a bit trickier. CPUs of x86 (x86_64) architectures, from Intel and AMD, built after 2012 (later for AMD), will most probably provide a feature called RAPL, for Running Average Power Limit. This feature enables softwares from the userland to set power limits on the CPU, the RAM and the integrated/packaged GPU. As it enables power capping, it enables power monitoring, for those components. We will see in the dedicated section that this is true for the “historic” version of RAPL and the realm it covers will vary with newer CPUs, in the dedicated session “a RAPL survival guide”. + +ARM CPU’s don’t provide a feature like RAPL, until recently. I’ve read documentation that seem to indicate very recent ARM boards to have something similar, but couldn't test this theory yet. Nvidia GPUs power can be measured with [nvidia SMI](https://developer.nvidia.com/nvidia-system-management-interface). At the time of writing, I’m not aware of the equivalent feature for AMD GPUs (but if you do, please contact me !). + + +## Software evaluation biases and improvements to come + +While software evaluation tools are a great addition to the conscious IT practitioner toolbox, none of them is a perfect solution that covers all use cases. A combined approach is certainly necessary to have both a complete and a precise view of an infrastructure power usage. + + +### Powercap is nice, no equivalent on windows ? + +Having access to the right sensor is necessary, but not enough. We have experienced that, building Windows support in Scaphandre. On GNU/Linux, having access to RAPL metrics from userland is easy, thanks to the Powercap framework and kernel module. Interesting metrics are available in the /sys/class/powercap folder, one folder per CPU socket (physical CPU package) containing the energy consumed by PKG, another per RAPL Domain (Core, Uncore, or Dram) for each socket. In the case of PSYS and MMIO domains, they have a dedicated folder. Everything is a file, the Unix way, so everything is simple. + +In the Windows world, each solution we have found that reads RAPL metrics (Intel Power Gadget and CPU-Z) have their own drivers. It’s needed to have a driver in kernel mode (which powercap and sysfs abstract us from, in the Linux world), as the __readmsr instruction is in kernel mode, so we wrote [one](https://github.com/hubblo-org/windows-rapl-driver/). For the record, MSR stands for Model Specific Register, those are the CPU registers storing RAPL metrics. + +Once you get metrics from the driver, you also need to ensure you query those metrics for the right CPU-socket, cpu core-pinning is required if you want to address bi-socket or quad-socket machines. + +![Comparison between GNU/Linux and Windows implementations of Scaphandre](images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp) + +*Comparison between GNU/Linux and Windows implementations of [Scaphandre](https://github.com/hubblo-org/scaphandre/)* + +### A RAPL survival guide + +As it is an interface used by many power evaluation pieces of software, RAPL became famous in some IT and ESG circles. It seems to me that it is still sometimes misunderstood. The accuracy of RAPL and the perimeter it covers are two different topics. + +According to my review of the literature, RAPL **is accurate**, starting from it’s **second generation** (post-Broadwell), but it is **not** covering a **complete** perimeter. As you have seen in the schema, “Package”, or “Pkg”, only includes the CPU (Core), the Ram (DRAM) and integrated GPU (Uncore) power. Comparing Pkg to an IPMI/DCMI-based or a SmartPDU-based evaluation will be likely disappointing if you look at energy consumed on a decent time-period. They are supposed to be closer as you look for times where the CPU is most active, and more different as the machine is close to idle. + +RAPL gets a bit more **complete** regarding power measurements coming from its PSYS (or “Platform”) domain, which is available on post-Skylake CPUs and provides the whole motherboard or System On Chip (and connected components) power, according to the documentation. We are still experimenting with those metrics as it will be implemented in [Scaphandre](https://github.com/hubblo-org/scaphandre/) 1.0. Part of our future work is to document its behavior better, depending on the hardware available on the board. + +As PSYS concerns pretty recent machines, this is not likely to be a perfect solution for a full infrastructure. In addition, please keep in mind that, despite usual sayings, it is usually **not** a sustainable strategy to replace existing IT servers by new ones. While newer machines could be more power-efficient, the impact of their manufacturing (regarding, GHG emissions, Abiotic Resources Depletion, …) certainly hinders the expected impact “savings” (this is debatable depending on the context, exact hardware configuration and service location). In this regard, realizing that new machines have better measurement capacities could tempt one to have a more modern infrastructure, I strongly encourage you to **not** do such a thing. + +What about the MMIO domain ? This seems to be related to memory input and output activity. We are experimenting with it these days, will make it available (as a specific label) in [Scaphandre](https://github.com/hubblo-org/scaphandre/) 1.0 and hope to document it better in a near future. + +In addition, you might also discover that depending on the userland tool you rely on to get those metrics, the way those metrics are provided may change. There is also a lot to say here, but that should be the topic of another blog post on [hubblo.org](https://hubblo.org/blog). For Scaphandre, we are now feeding a [compatibility page](https://hubblo-org.github.io/scaphandre-documentation/compatibility.html). You might find generic RAPL-related useful information there as well. + +Last but not least, while using RAPL metrics could feel empowering as you have a pretty precise view on your machine’s components energy consumption, there is a catch. It should be said that this consumption profile will likely to be very specific to your hardware **and** configuration. The runtime context of a given software or service is also essential if you want to assess its energy consumption. Depending on its runtime, whether it's running natively, in a virtual machine (hypervisor configuration will also be important then), or in a container and depending on the other services running on the physical host and their behavior, the evaluation may be more or less impacted. Moreover, from one machine to another, even if the hardware is the same, you may have a closer look to (at least): hyper threading, turbo boost, energy efficiency mode, … + + +## Conclusion + +As you may have understood, we are far from having everything we need to get both a precise and complete understanding of a server’s energy consumption, thus to optimize everything we could to reduce it. So what could we do? How could we match the gap between accurate, global energy consumption metrics coming from SmartPDUs and smaller-grain, incomplete, evaluations of per-component or per-process power usage? + +As you might have guessed, we will need to build and use power estimation models in addition to primary data measurements. Even if manufacturers provide a more and more complete set of sensors, older IT equipment is not likely to disappear, and I don’t think relying on hardware innovation only is the key (it has proved not to be). + +The road to get more generic, complete but accurate-enough models to get a machine's power without any physical device or sensor available is, to our knowledge, first composed of a better understanding and documentation of the existing ways to evaluate power. Second, we’ll need detailed, hardware-specific data, to then provide models that allow power evaluation in different or more difficult contexts, including but not limited to : IoT, old hardware, Public Cloud IaaS (this one will need more complementary work already started in [Boavizta](https://datavizta.boavizta.org/cloudimpact)). + +To get those metrics, we need you. We need to get more data, from more diverse machines and hardware configurations, either running benchmarks on them or collecting those metrics as passively as possible while they operate as usual. You could help us with that through the [Energizta project](https://boavizta.github.io/Energizta/intro.html). + +In addition to helping us with the Energizta project, do not hesitate to contact us about any imprecisions or suggestions you might find relevant, regarding this post. This is open and collaborative knowledge building. We know we might understand things wrong, that this is a biased presentation of the topic, that there is a lot more to do, and we want to do it with every person who wants to help. + + +## Bio + +Benoit Petit, co-founder of [Hubblo](https://hubblo.org), a consultancy and open-source editor company for ICT environmental impacts evaluation and reduction. In this regard, I’m also a maintainer of [Scaphandre](https://github.com/hubblo-org/scaphandre/), the open-source energy monitoring agent described in this post. I’m also a contributor to [Boavizta](https://boavizta.org/en), a non-profit organization encouraging collaboration of private and public organizations through digital commons, for making ICT compatible with planetary boundaries. + + +## Thanks + +I’d like to thank Victorien Molle for his great contribution to the Windows driver Scaphandre relies on, Guillaume Subiron for his amazing work on Energizta, the great Scaphandre contributors community, David Ekchajzer, Leonard Pahlke and Guillaume Subiron again for their reviews of this blog post. diff --git a/website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp b/website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp new file mode 100644 index 0000000000000000000000000000000000000000..a60fb2217cbe63a43060f2b9bc903d2061ecfcf7 GIT binary patch literal 30026 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 literal 0 HcmV?d00001 diff --git a/website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp b/website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp new file mode 100644 index 0000000000000000000000000000000000000000..77a20bb96f70f5af1952fd90f6914ed7facce6b5 GIT binary patch literal 29380 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 E0O7N}h5!Hn literal 0 HcmV?d00001 From 0012f9bb6615cfa6974b24b0407a71af595dcf89 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Tue, 10 Oct 2023 16:09:04 +0200 Subject: [PATCH 02/20] chore: added metadata for blog post --- ...nts-to-come-on-IT-energy-consumption-evaluation.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 7a4165ef..f69203af 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -1,6 +1,13 @@ -# The road to Scaphandre v1.0 : Challenges and improvements to come on IT energy consumption evaluation +--- +title: The road to Scaphandre v1.0 : Challenges and improvements to come on IT energy consumption evaluation +description: This blog post is about sharing what thoughts and insights we got during developing Scaphandre with our contributors, discussing with researchers and IT practitioners, regarding ways currently available to evaluate an IT server energy consumption and the limits of each. From this we try to picture some of the challenges ahead and leads we identify to work with them. +slug: 2023-the-road-to-scaphandre-v1-0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation +weight: 1 +date: 2023-10-12 00:00:00 +0000 +author: Benoit Petit +--- -[TOC] +# The road to Scaphandre v1.0 : Challenges and improvements to come on IT energy consumption evaluation _Community guest post as part of the cloud native sustainability week_ From 23c00f062d174e3e9e81e6218ca615190d005879 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Tue, 10 Oct 2023 16:11:36 +0200 Subject: [PATCH 03/20] clean: removing markdown converstion markup --- ...improvements-to-come-on-IT-energy-consumption-evaluation.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index f69203af..a0584264 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -33,9 +33,6 @@ Those 2 ways share a common issue, we only get the global consumption of a machi Let’s start with a visual overview of the different ways to evaluate a machine’s components energy consumption and the realm they cover. -

>>>>> gd2md-html alert: inline image link here (to images/image1.jpg). Store image on your image server and adjust path/filename/extension if necessary.
(Back to top)(Next alert)
>>>>>

- - ![A map of ways to evaluate energy consumption of a server and its components](images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp "image_tooltip") *A map of ways to evaluate energy consumption of a server and its components* From ed0f2cbf0f74ee7343ae61781db41e0e43008f5f Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Tue, 10 Oct 2023 16:13:20 +0200 Subject: [PATCH 04/20] fix: moved images --- .../linux_vs_windows.webp | Bin .../map_it_energy_evaluation.webp | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename website/{ => content/blog}/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp (100%) rename website/{ => content/blog}/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp (100%) diff --git a/website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp b/website/content/blog/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp similarity index 100% rename from website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp rename to website/content/blog/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp diff --git a/website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp b/website/content/blog/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp similarity index 100% rename from website/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp rename to website/content/blog/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp From 44649f77a21919544064d22e98d05e856aa8bf49 Mon Sep 17 00:00:00 2001 From: bpetit Date: Fri, 13 Oct 2023 11:09:43 +0200 Subject: [PATCH 05/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Leonard Vincent Simon Pahlke <58054077+leonardpahlke@users.noreply.github.com> Signed-off-by: bpetit --- ...-improvements-to-come-on-IT-energy-consumption-evaluation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index a0584264..bdd30184 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -3,7 +3,7 @@ title: The road to Scaphandre v1.0 : Challenges and improvements to come on IT e description: This blog post is about sharing what thoughts and insights we got during developing Scaphandre with our contributors, discussing with researchers and IT practitioners, regarding ways currently available to evaluate an IT server energy consumption and the limits of each. From this we try to picture some of the challenges ahead and leads we identify to work with them. slug: 2023-the-road-to-scaphandre-v1-0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation weight: 1 -date: 2023-10-12 00:00:00 +0000 +date: 2023-10-13 00:00:00 +0000 author: Benoit Petit --- From 1d943582ca71b3606bb125b0e622016838c237c1 Mon Sep 17 00:00:00 2001 From: bpetit Date: Fri, 13 Oct 2023 11:09:50 +0200 Subject: [PATCH 06/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Leonard Vincent Simon Pahlke <58054077+leonardpahlke@users.noreply.github.com> Signed-off-by: bpetit --- ...d-improvements-to-come-on-IT-energy-consumption-evaluation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index bdd30184..8df0b46f 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -7,7 +7,6 @@ date: 2023-10-13 00:00:00 +0000 author: Benoit Petit --- -# The road to Scaphandre v1.0 : Challenges and improvements to come on IT energy consumption evaluation _Community guest post as part of the cloud native sustainability week_ From 7179826ea2d845a76dddc2845b2ca203dcb8223b Mon Sep 17 00:00:00 2001 From: bpetit Date: Fri, 13 Oct 2023 11:09:57 +0200 Subject: [PATCH 07/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Leonard Vincent Simon Pahlke <58054077+leonardpahlke@users.noreply.github.com> Signed-off-by: bpetit --- ...-improvements-to-come-on-IT-energy-consumption-evaluation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 8df0b46f..ef285e7e 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -32,7 +32,7 @@ Those 2 ways share a common issue, we only get the global consumption of a machi Let’s start with a visual overview of the different ways to evaluate a machine’s components energy consumption and the realm they cover. -![A map of ways to evaluate energy consumption of a server and its components](images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp "image_tooltip") +

A map of ways to evaluate energy consumption of a server and its components

*A map of ways to evaluate energy consumption of a server and its components* From 2761c375d516c314beac52f527266d26f55746a2 Mon Sep 17 00:00:00 2001 From: bpetit Date: Fri, 13 Oct 2023 11:10:35 +0200 Subject: [PATCH 08/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Leonard Vincent Simon Pahlke <58054077+leonardpahlke@users.noreply.github.com> Signed-off-by: bpetit --- ...-improvements-to-come-on-IT-energy-consumption-evaluation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index ef285e7e..3890f73d 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -60,7 +60,7 @@ In the Windows world, each solution we have found that reads RAPL metrics (Intel Once you get metrics from the driver, you also need to ensure you query those metrics for the right CPU-socket, cpu core-pinning is required if you want to address bi-socket or quad-socket machines. -![Comparison between GNU/Linux and Windows implementations of Scaphandre](images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp) +

Comparison between GNU/Linux and Windows implementations of Scaphandre

*Comparison between GNU/Linux and Windows implementations of [Scaphandre](https://github.com/hubblo-org/scaphandre/)* From 571ccdfba6be23531f66e80398c720489b148b7d Mon Sep 17 00:00:00 2001 From: bpetit Date: Fri, 13 Oct 2023 18:11:16 +0200 Subject: [PATCH 09/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Leonard Vincent Simon Pahlke <58054077+leonardpahlke@users.noreply.github.com> Signed-off-by: bpetit --- ...-improvements-to-come-on-IT-energy-consumption-evaluation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 3890f73d..68a40583 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -1,5 +1,5 @@ --- -title: The road to Scaphandre v1.0 : Challenges and improvements to come on IT energy consumption evaluation +title: The road to Scaphandre v1.0 - Challenges and improvements to come on IT energy consumption evaluation description: This blog post is about sharing what thoughts and insights we got during developing Scaphandre with our contributors, discussing with researchers and IT practitioners, regarding ways currently available to evaluate an IT server energy consumption and the limits of each. From this we try to picture some of the challenges ahead and leads we identify to work with them. slug: 2023-the-road-to-scaphandre-v1-0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation weight: 1 From 0dce1f2cea51d046f86520feff966b91943a1550 Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:06:19 +0200 Subject: [PATCH 10/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...d-improvements-to-come-on-IT-energy-consumption-evaluation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 68a40583..a3369948 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -98,7 +98,6 @@ In addition to helping us with the Energizta project, do not hesitate to contact Benoit Petit, co-founder of [Hubblo](https://hubblo.org), a consultancy and open-source editor company for ICT environmental impacts evaluation and reduction. In this regard, I’m also a maintainer of [Scaphandre](https://github.com/hubblo-org/scaphandre/), the open-source energy monitoring agent described in this post. I’m also a contributor to [Boavizta](https://boavizta.org/en), a non-profit organization encouraging collaboration of private and public organizations through digital commons, for making ICT compatible with planetary boundaries. - ## Thanks I’d like to thank Victorien Molle for his great contribution to the Windows driver Scaphandre relies on, Guillaume Subiron for his amazing work on Energizta, the great Scaphandre contributors community, David Ekchajzer, Leonard Pahlke and Guillaume Subiron again for their reviews of this blog post. From 96738aedf1ea37c74bda385b29fedd541027f4dd Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:06:39 +0200 Subject: [PATCH 11/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...d-improvements-to-come-on-IT-energy-consumption-evaluation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index a3369948..0b1b839a 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -93,7 +93,6 @@ To get those metrics, we need you. We need to get more data, from more diverse m In addition to helping us with the Energizta project, do not hesitate to contact us about any imprecisions or suggestions you might find relevant, regarding this post. This is open and collaborative knowledge building. We know we might understand things wrong, that this is a biased presentation of the topic, that there is a lot more to do, and we want to do it with every person who wants to help. - ## Bio Benoit Petit, co-founder of [Hubblo](https://hubblo.org), a consultancy and open-source editor company for ICT environmental impacts evaluation and reduction. In this regard, I’m also a maintainer of [Scaphandre](https://github.com/hubblo-org/scaphandre/), the open-source energy monitoring agent described in this post. I’m also a contributor to [Boavizta](https://boavizta.org/en), a non-profit organization encouraging collaboration of private and public organizations through digital commons, for making ICT compatible with planetary boundaries. From cf4f64f81349e1f3351567dcf214498161ba457f Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:06:51 +0200 Subject: [PATCH 12/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...d-improvements-to-come-on-IT-energy-consumption-evaluation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 0b1b839a..23b594a4 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -80,7 +80,6 @@ In addition, you might also discover that depending on the userland tool you rel Last but not least, while using RAPL metrics could feel empowering as you have a pretty precise view on your machine’s components energy consumption, there is a catch. It should be said that this consumption profile will likely to be very specific to your hardware **and** configuration. The runtime context of a given software or service is also essential if you want to assess its energy consumption. Depending on its runtime, whether it's running natively, in a virtual machine (hypervisor configuration will also be important then), or in a container and depending on the other services running on the physical host and their behavior, the evaluation may be more or less impacted. Moreover, from one machine to another, even if the hardware is the same, you may have a closer look to (at least): hyper threading, turbo boost, energy efficiency mode, … - ## Conclusion As you may have understood, we are far from having everything we need to get both a precise and complete understanding of a server’s energy consumption, thus to optimize everything we could to reduce it. So what could we do? How could we match the gap between accurate, global energy consumption metrics coming from SmartPDUs and smaller-grain, incomplete, evaluations of per-component or per-process power usage? From a93bee802bed93a05eaa9379129197dce89fd719 Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:07:08 +0200 Subject: [PATCH 13/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...d-improvements-to-come-on-IT-energy-consumption-evaluation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 23b594a4..4b86654b 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -51,7 +51,6 @@ ARM CPU’s don’t provide a feature like RAPL, until recently. I’ve read doc While software evaluation tools are a great addition to the conscious IT practitioner toolbox, none of them is a perfect solution that covers all use cases. A combined approach is certainly necessary to have both a complete and a precise view of an infrastructure power usage. - ### Powercap is nice, no equivalent on windows ? Having access to the right sensor is necessary, but not enough. We have experienced that, building Windows support in Scaphandre. On GNU/Linux, having access to RAPL metrics from userland is easy, thanks to the Powercap framework and kernel module. Interesting metrics are available in the /sys/class/powercap folder, one folder per CPU socket (physical CPU package) containing the energy consumed by PKG, another per RAPL Domain (Core, Uncore, or Dram) for each socket. In the case of PSYS and MMIO domains, they have a dedicated folder. Everything is a file, the Unix way, so everything is simple. From c6e84550c1b0d5995d8e0b354fbf7b0b78985ac5 Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:07:24 +0200 Subject: [PATCH 14/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...mprovements-to-come-on-IT-energy-consumption-evaluation.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 4b86654b..0ae9448f 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -32,9 +32,7 @@ Those 2 ways share a common issue, we only get the global consumption of a machi Let’s start with a visual overview of the different ways to evaluate a machine’s components energy consumption and the realm they cover. -

A map of ways to evaluate energy consumption of a server and its components

- -*A map of ways to evaluate energy consumption of a server and its components* +

A map of ways to evaluate energy consumption of a server and its componentsA map of ways to evaluate energy consumption of a server and its components

It’s important to distinguish the metrics coming from low-level sensors provided by hardware manufacturers, or coming from a measurement dedicated device like a wattmeter/smartPDU. We will call those metrics “bottom-up” or “primary”. The metrics that are actually generated through a model. To be clear, a model means a formula or an algorithm that will speculate on the actual metrics based on some primary information it has access to. We will call those metrics “estimations” or “models”. Some high-level/userland tools provide both “primary” and “estimation” metrics. From c2002323efdb300259bc0e4b7184574b9aef482f Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:07:59 +0200 Subject: [PATCH 15/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...d-improvements-to-come-on-IT-energy-consumption-evaluation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 0ae9448f..63784af3 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -44,7 +44,6 @@ Going deeper to get per-components power will feel a bit trickier. CPUs of x86 ( ARM CPU’s don’t provide a feature like RAPL, until recently. I’ve read documentation that seem to indicate very recent ARM boards to have something similar, but couldn't test this theory yet. Nvidia GPUs power can be measured with [nvidia SMI](https://developer.nvidia.com/nvidia-system-management-interface). At the time of writing, I’m not aware of the equivalent feature for AMD GPUs (but if you do, please contact me !). - ## Software evaluation biases and improvements to come While software evaluation tools are a great addition to the conscious IT practitioner toolbox, none of them is a perfect solution that covers all use cases. A combined approach is certainly necessary to have both a complete and a precise view of an infrastructure power usage. From 84d87ec5d67ef16e9649fb7843ccc2108237532e Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:08:40 +0200 Subject: [PATCH 16/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...-improvements-to-come-on-IT-energy-consumption-evaluation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 63784af3..aa9c1a8a 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -18,7 +18,7 @@ This blog post is about sharing what thoughts and insights we got during develop First things first, this blog post should not to be interpreted as any solution of any kind. There is no solution regarding what’s happening to us, not in the terms we usually use and think of. [6 of the 9 planetary boundaries](https://en.wikipedia.org/wiki/Planetary_boundaries) are passed, which basically means we have at least 6 reasons to think that current mankind’s activity on the planet has the potential to make human’s livability on earth uncertain. These 6 reasons are our impacts on: climate change, [ocean acidification](https://en.wikipedia.org/wiki/Ocean_acidification), [biogeochemical](https://en.wikipedia.org/wiki/Biogeochemical_cycle) flows in the[ nitrogen (N) cycle](https://en.wikipedia.org/wiki/Nitrogen_cycle) and[ phosphorus (P) cycle](https://en.wikipedia.org/wiki/Phosphorus_cycle), global freshwater use, land system change, the erosion of biosphere integrity, and [chemical pollution](https://en.wikipedia.org/wiki/Pollution). -What is the weight of ICT in those impacts? Regarding greenhouse gasses emissions leading to climate change, it’s said to weigh between [2,1 and 3,9% of global emissions in 2020](https://www.cell.com/patterns/fulltext/S2666-3899%2821%2900188-4). What’s most important is the trend, as projections to 2025 spoke about 6 to 8% of global emissions. Moreover, IT contributes to the pressure on natural resources, especially abiotic/mining resources (which is linked to chemical pollution), fresh water use, etc. Usage phase and associated final energy consumption might be the most important part of the carbon footprint of a server or a network equipment, if the carbon intensity of the electricity consumed is high. However, this is not true for end user devices or even a server that would run on a low carbon electricity grid. In those contexts, manufacturing represents most of the impact (you could play with [Datavizta’s charts](https://datavizta.boavizta.org/manufacturerdata?lifetime=5®ion=belgium&subcategory=Server) to get an idea). This being said, we are only speaking here about direct environmental impacts, or “first-order effect”,[ “second” and “third” order effects](https://link.springer.com/chapter/10.1007/978-3-319-09228-7_1) are a complex story that are probably the hidden, biggest part, of the iceberg. +What is the weight of ICT in those impacts? Regarding greenhouse gasses emissions leading to climate change, it’s said to weigh between [2,1 and 3,9% of global emissions in 2020](https://www.cell.com/patterns/fulltext/S2666-3899%2821%2900188-4). What’s most important is the trend, as projections to 2025 spoke about 6 to 8% of global emissions. Moreover, IT contributes to the pressure on natural resources, especially abiotic/mining resources (which is linked to chemical pollution), fresh water use, etc. Usage phase and associated final energy consumption might be the most important part of the carbon footprint of a server or a network equipment, if the carbon intensity of the electricity consumed is high. However, this is not true for end user devices or even a server that would run on a low carbon electricity grid. In those contexts, manufacturing represents most of the impact (you could play with [Datavizta’s charts](https://datavizta.boavizta.org/manufacturerdata?lifetime=5®ion=belgium&subcategory=Server) to get an idea). This being said, we are only speaking here about direct environmental impacts, or “first-order effect”,[“second” and “third” order effects](https://link.springer.com/chapter/10.1007/978-3-319-09228-7_1) are a complex story that are probably the hidden, biggest part, of the iceberg. With this introduction, better measurements of IT energy consumption is no solution, only a part of necessary research to improve our understanding of the pressure IT has on electricity grids and find insights on how to reduce it. It is far from being the only thing to do in IT. Electricity (final energy) consumption in the usage phase of ICT is not only a matter of direct environmental impacts, but also of pressure put on electricity grids in times we need to move fossil-fuel based usages to electricity-based usages. From ef79df83b4b042e077751d74c1b903704219b028 Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:08:55 +0200 Subject: [PATCH 17/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...-improvements-to-come-on-IT-energy-consumption-evaluation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index aa9c1a8a..dc11362a 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -16,7 +16,7 @@ This blog post is about sharing what thoughts and insights we got during develop ### What’s final energy consumption’s share in Information and Communication Technology (ICT) environmental impacts? -First things first, this blog post should not to be interpreted as any solution of any kind. There is no solution regarding what’s happening to us, not in the terms we usually use and think of. [6 of the 9 planetary boundaries](https://en.wikipedia.org/wiki/Planetary_boundaries) are passed, which basically means we have at least 6 reasons to think that current mankind’s activity on the planet has the potential to make human’s livability on earth uncertain. These 6 reasons are our impacts on: climate change, [ocean acidification](https://en.wikipedia.org/wiki/Ocean_acidification), [biogeochemical](https://en.wikipedia.org/wiki/Biogeochemical_cycle) flows in the[ nitrogen (N) cycle](https://en.wikipedia.org/wiki/Nitrogen_cycle) and[ phosphorus (P) cycle](https://en.wikipedia.org/wiki/Phosphorus_cycle), global freshwater use, land system change, the erosion of biosphere integrity, and [chemical pollution](https://en.wikipedia.org/wiki/Pollution). +First things first, this blog post should not to be interpreted as any solution of any kind. There is no solution regarding what’s happening to us, not in the terms we usually use and think of. [6 of the 9 planetary boundaries](https://en.wikipedia.org/wiki/Planetary_boundaries) are passed, which basically means we have at least 6 reasons to think that current mankind’s activity on the planet has the potential to make human’s livability on earth uncertain. These 6 reasons are our impacts on: climate change, [ocean acidification](https://en.wikipedia.org/wiki/Ocean_acidification), [biogeochemical](https://en.wikipedia.org/wiki/Biogeochemical_cycle) flows in the[nitrogen (N) cycle](https://en.wikipedia.org/wiki/Nitrogen_cycle) and[phosphorus (P) cycle](https://en.wikipedia.org/wiki/Phosphorus_cycle), global freshwater use, land system change, the erosion of biosphere integrity, and [chemical pollution](https://en.wikipedia.org/wiki/Pollution). What is the weight of ICT in those impacts? Regarding greenhouse gasses emissions leading to climate change, it’s said to weigh between [2,1 and 3,9% of global emissions in 2020](https://www.cell.com/patterns/fulltext/S2666-3899%2821%2900188-4). What’s most important is the trend, as projections to 2025 spoke about 6 to 8% of global emissions. Moreover, IT contributes to the pressure on natural resources, especially abiotic/mining resources (which is linked to chemical pollution), fresh water use, etc. Usage phase and associated final energy consumption might be the most important part of the carbon footprint of a server or a network equipment, if the carbon intensity of the electricity consumed is high. However, this is not true for end user devices or even a server that would run on a low carbon electricity grid. In those contexts, manufacturing represents most of the impact (you could play with [Datavizta’s charts](https://datavizta.boavizta.org/manufacturerdata?lifetime=5®ion=belgium&subcategory=Server) to get an idea). This being said, we are only speaking here about direct environmental impacts, or “first-order effect”,[“second” and “third” order effects](https://link.springer.com/chapter/10.1007/978-3-319-09228-7_1) are a complex story that are probably the hidden, biggest part, of the iceberg. From f1110b3686a9ee9a1d189280e6f050a993c3a3cd Mon Sep 17 00:00:00 2001 From: bpetit Date: Sat, 14 Oct 2023 15:09:08 +0200 Subject: [PATCH 18/20] Update website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md Co-authored-by: Kristina Devochko <47773700+guidemetothemoon@users.noreply.github.com> Signed-off-by: bpetit --- ...improvements-to-come-on-IT-energy-consumption-evaluation.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index dc11362a..0ee647eb 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -7,8 +7,7 @@ date: 2023-10-13 00:00:00 +0000 author: Benoit Petit --- - -_Community guest post as part of the cloud native sustainability week_ +*Community guest post as part of the [cloud native sustainability week](https://tag-env-sustainability.cncf.io/cloud-native-sustainability-week)* This blog post is about sharing what thoughts and insights we got during developing [Scaphandre](https://github.com/hubblo-org/scaphandre/) with our contributors, discussing with researchers and IT practitioners, regarding ways currently available to evaluate an IT server energy consumption and the limits of each. From this we try to picture some of the challenges ahead and leads we identify to work with them. From 4194de6a3e8a382f808e81110e52e45f748bfc18 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 14 Oct 2023 19:35:00 +0200 Subject: [PATCH 19/20] fix: mive images to static --- .../linux_vs_windows.webp | Bin .../map_it_energy_evaluation.webp | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename website/{content/blog => static}/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp (100%) rename website/{content/blog => static}/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp (100%) diff --git a/website/content/blog/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp b/website/static/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp similarity index 100% rename from website/content/blog/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp rename to website/static/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/linux_vs_windows.webp diff --git a/website/content/blog/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp b/website/static/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp similarity index 100% rename from website/content/blog/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp rename to website/static/images/blogs/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation/map_it_energy_evaluation.webp From bad2de300d3c90b89c1dc0ecce95092fa2680fd9 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 14 Oct 2023 19:40:43 +0200 Subject: [PATCH 20/20] fix: images --- ...mprovements-to-come-on-IT-energy-consumption-evaluation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md index 0ee647eb..c890304f 100644 --- a/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md +++ b/website/content/blog/2023-10-the-road-to-scaphandre-v1.0-challenges-and-improvements-to-come-on-IT-energy-consumption-evaluation.md @@ -31,7 +31,7 @@ Those 2 ways share a common issue, we only get the global consumption of a machi Let’s start with a visual overview of the different ways to evaluate a machine’s components energy consumption and the realm they cover. -

A map of ways to evaluate energy consumption of a server and its componentsA map of ways to evaluate energy consumption of a server and its components

+

A map of ways to evaluate energy consumption of a server and its componentsA map of ways to evaluate energy consumption of a server and its components

It’s important to distinguish the metrics coming from low-level sensors provided by hardware manufacturers, or coming from a measurement dedicated device like a wattmeter/smartPDU. We will call those metrics “bottom-up” or “primary”. The metrics that are actually generated through a model. To be clear, a model means a formula or an algorithm that will speculate on the actual metrics based on some primary information it has access to. We will call those metrics “estimations” or “models”. Some high-level/userland tools provide both “primary” and “estimation” metrics. @@ -55,7 +55,7 @@ In the Windows world, each solution we have found that reads RAPL metrics (Intel Once you get metrics from the driver, you also need to ensure you query those metrics for the right CPU-socket, cpu core-pinning is required if you want to address bi-socket or quad-socket machines. -

Comparison between GNU/Linux and Windows implementations of Scaphandre

+

Comparison between GNU/Linux and Windows implementations of Scaphandre

*Comparison between GNU/Linux and Windows implementations of [Scaphandre](https://github.com/hubblo-org/scaphandre/)*