How much electricity does my home server use?
tl;dr
My home server idles at 70 watts.
Longer version
I started going deeper into the smart home rabbit hole, and one of the areas I want to investigate is the monitoring of power consumption. The smart home rabbit hole, which is something different than the smart rabbit home hole, which is the place where intelligent small mammals live. I’ve been reading a lot of Rubenerd lately and his writing style is getting etched in my brain. Anyway, for now the only use of measuring power consumption is my love of graphs and gathering data, but when at some point in the future I will have a house with a PV installation, having detailed power consumption, and production statistics will hopefully allow me to plan when to use power hungry devices.
But that is a bridge quite far downstream, for now I am focused on answering a relatively simple question: How much electricity is my home server using?
I specifically mention my home server, because the whole of my homelab consists of other devices as well, such as my Raspberry Pi Cluster. And there’s also another mystery device about which I will talk in the next blog post :)
Home Assistant custom dashboard showing my home server power usage stats.
How am I measuring the power usage?
I decided to go with the Zigbee ecosystem. I chose Zigbee as it is not using WiFi, and it is an open standard adopted by many companies. Zigbee devices are small, relatively cheap, and low power. And Zigbee has native support in Home Assistant.
To use Zigbee you need a Zigbee gate, usually in the form of a small USB dongle plugged into the computer that has HA running. I’m using the Sonoff ZBDongle-E.
To measure the power consumption you also need a smart socket to which you plug the device you want to monitor. I went with a TUYA Zigbee 3.0 Smart Socket. It’s a bit bulky, but I can live with that.
Setting up is very simple if you already know your way around Home Assistant. What needs to be done is to plug the Zigbee dongle, add the Zigbee Home Automation integration in HA settings, and then turn on pairing mode on the socket. It will be automatically detected and configured by ZHA. Then you can add it to the Energy dashboard, and le voila bonjour, energy stats on your screen.
My Home server
The full description of my home server can be found in the Story Of My Homelab subpage, but let’s recap what’s inside:
- Intel Xeon 1275L v3 CPU, 4C8T, 45W TDP
- Gigabyte Z97P-D3 Socket 1150 motherboard
- 32GB of DDR3 1600MT/s RAM in four sticks
- four 3.5” HDDs from Seagate, WD, and HGST
- single 2.5” SSD for boot
- NVIDIA RTX2060
- Seasonic 550W Bronze PSU
The GPU is power limited to 130W maximum, and idles at 25 watts according to nvidia-smi
. The power supply is only bronze, as I bought it for a small Netfllix box, and only later I did I move it into my homelab. I wonder how much of a difference moving to a Gold one would make.
I use my home server mostly as a NAS, to store and serve all my files. There’s a few Docker containers running on it, mostly services concerned with data, such as Immich or Pinchlat. The HDDs are using ZFS and are organized into two mirrors of two disks each. I also do occasionally some BOINC distributed computation, as for now it is my only PC capable of crunching BOINC tasks (I consider laptops not suitable for BOINC due to their poor cooling). BOINC uses CPU cores to their maximum all the time, so it is a good test of power usage under prolonged loads. It can also use the GPU in the same way.
How much power does it use?
After that rather long introduction, time for the data:
State | Power |
---|---|
idling | 70W |
BOINC with half CPU cores | 120W |
BOINC with all CPU cores | 120W |
BOINC with GPU | 220W |
BOINC with half CPU cores and GPU | 240W |
A few interesting things can be observed. First, there is no difference between crunching on all cores and half cores. I assume this is because the CPU is not able to reach boost speeds on all cores at the same time, and so it either boosts on half of the cores, or keeps lower clock speed at all cores. This is confirmed by the fact that BOINC tasks are crunched much faster per task when not all cores are used.
What is harder for me to explain is the little difference between crunching on GPU only, and on both GPU and CPU. I am suspecting some part of the PC is reducing power coming to both CPU and GPU to keep the overall power within a specific limit.
Bottom Line
In the next blog post I will talk more about my Home Assistant setup. I am also planning to add more power monitoring sockets to get a better understanding how much power do different devices use in my home. I wish I had one of those Zigbee power monitors that is hardwired in the fuze box to monitor the overall power of the whole house, but that is something for the far future.
Thanks for reading!
If you enjoyed this post, please consider helping me make new projects by supporting me on the following crowdfunding sites: