Each instance has a specific quantity of Random-Access Memory (RAM) allocated to it. This means that each customer has a fixed quantity of RAM, and that they are charged a set fee by the cloud provider regardless of how much memory they utilize, up to the maximum allocated.
Tailpipe calculates the power requirements of RAM on an hourly basis using the following process:
First, Tailpipe fetches the customer’s utilization data to find their CPU utilization for each hour of usage.
Then, it matches the utilization level against power draw values per GB of RAM.
To find these power draw values, Tailpipe ran stress tests on a range of bare metal instances (where the customer has access to all the resources within the platform) running Ubuntu Linux in cloud service providers. Tailpipe varied the utilization of the CPUs using stress-ng and measured their precise power consumption using Turbostat. In this way, Tailpipe took measurements of the power consumption of the RAM at 5% CPU utilization increments.
By analyzing the results of 37 distinct bare metal platforms using various regression models, Tailpipe found the following relationship between CPU Utilization and Power Consumed by the RAM (W per GB):
CPU Utilization (%) | RAM Power Draw (W/GB) |
0 | 0.0480 |
5 | 0.0498 |
10 | 0.0515 |
15 | 0.0530 |
20 | 0.0544 |
25 | 0.0557 |
30 | 0.0568 |
35 | 0.0577 |
40 | 0.0586 |
45 | 0.0593 |
50 | 0.0598 |
55 | 0.0602 |
60 | 0.0605 |
65 | 0.0607 |
70 | 0.0607 |
75 | 0.0606 |
80 | 0.0603 |
85 | 0.0599 |
90 | 0.0593 |
95 | 0.0587 |
100 | 0.0578 |
Tailpipe then adds all the hourly utilization power draw values together.
Tailpipe then accounts for differences in efficiency between DDR3, DDR4, and DDR5 RAM types. The values above represent DDR4 RAM. DDR5 RAM is approximately 20% more efficient than DDR4, and DDR3 RAM is approximately 30% less efficient than DDR4.
RAM Type | Efficiency Factor |
DDR3 | 1.3 |
DDR4 | 1 |
DDR5 | 0.83 |
Finally, Tailpipe multiplies this total power draw value by the total quantity (GB) of RAM allocated to the virtual machine, to obtain the total power consumption of the virtual machine’s RAM during the usage period:
RAM Energy Consumption (Wh) = (Average Memory Power Draw at CPU Utilization per hour * DDR Efficiency Factor) * GB of total reserved RAM
For example, to calculate the RAM power consumption of an instance with 512 GB of DDR5 RAM with a CPU workload of 75%:
- Tailpipe finds the RAM power factor at 75% CPU utilization (60.6%, or 0.606)
- It multiplies this 0.606 power factor by the RAM allocated: 0.606 * 512 = 310.272
- Then factors in the DDR version: 310.272 * 0.83 = 257.526
These RAM components would therefore consume 287.526 W per hour.