Fujitsu Futro S920 Thin Client as opnsense firewall

infojunky

New Member
Mar 14, 2022
21
20
3
I got CPU undervolting to work on opnsense/BSD. Skip halfway down if you just want to copy paste. So to undervolt this CPU you can actually just set up an undervolt in Linux and then copy the MSR values that changed.

Warning: If you copy paste my settings on anything but a GX-424CC bad things will probably happen.

You undervolt the GX-424CC with amdctl in Linux so you'd run:
modprobe msr
amdctl -g
this pulls up the stock voltages/VIDs.

Core 3 | P-State Limits (non-turbo): Highest: 4 ; Lowest 8 | Current P-State: 4
Pstate Status CpuFid CpuDid CpuVid CpuMult CpuFreq CpuVolt IddVal IddDiv CpuCurr CpuPower
0 1 8 0 24 12.00x 2400.00MHz 1250mV 56 10 5.60A 7.00W
1 1 6 0 36 11.00x 2200.00MHz 1100mV 44 10 4.40A 4.84W
2 1 4 0 54 10.00x 2000.00MHz 875mV 34 10 3.40A 2.97W
3 1 2 0 68 9.00x 1800.00MHz 700mV 28 10 2.80A 1.96W
4 1 0 0 82 8.00x 1600.00MHz 525mV 225 100 2.25A 1.18W
5 1 12 1 92 7.00x 1400.00MHz 400mV 185 100 1.85A 0.74W
6 1 8 1 102 6.00x 1200.00MHz 275mV 150 100 1.50A 0.41W
7 1 4 1 110 5.00x 1000.00MHz 175mV 122 100 1.22A 0.21W
current 1 2 0 68 9.00x 1800.00MHz 700mV

then you can modify them like so:
amdctl -m -p0 -v32
amdctl -m -p1 -v44
amdctl -m -p2 -v62
amdctl -m -p3 -v76
amdctl -m -p4 -v90
amdctl -m -p5 -v100
amdctl -m -p6 -v110
amdctl -m -p7 -v118
This corresponds to a 100mV undervolt in Linux for the GX-424CC and doesn't work on all my S920s.
Look at the msrs with amdctl
amdctl -g -i
Core 3 | P-State Limits (non-turbo): Highest: 1 ; Lowest 8 | Current P-State: 1
Pstate Status CpuFid CpuDid CpuVid CpuMult CpuFreq CpuVolt IddVal IddDiv CpuCurr CpuPower
0DEBUG: Reading data from CPU 3 at register c0010064
1 8 0 32 12.00x 2400.00MHz 1150mV 56 10 5.60A 6.44W
1DEBUG: Reading data from CPU 3 at register c0010065
1 6 0 44 11.00x 2200.00MHz 1000mV 44 10 4.40A 4.40W
2DEBUG: Reading data from CPU 3 at register c0010066
1 4 0 62 10.00x 2000.00MHz 775mV 34 10 3.40A 2.63W
3DEBUG: Reading data from CPU 3 at register c0010067
1 2 0 76 9.00x 1800.00MHz 600mV 28 10 2.80A 1.68W
4DEBUG: Reading data from CPU 3 at register c0010068
1 0 0 90 8.00x 1600.00MHz 425mV 225 100 2.25A 0.96W
5DEBUG: Reading data from CPU 3 at register c0010069
1 12 1 100 7.00x 1400.00MHz 300mV 185 100 1.85A 0.56W
6DEBUG: Reading data from CPU 3 at register c001006a
1 8 1 110 6.00x 1200.00MHz 175mV 150 100 1.50A 0.26W
7DEBUG: Reading data from CPU 3 at register c001006b
1 4 1 118 5.00x 1000.00MHz 75mV 122 100 1.22A 0.09W
Then you can install the msr-tools package and use it to examine the msrs. Let's look at p0 for any of our CPU cores:
rdmsr 0xc0010064
8000013800003008

And that's the msr value we need for all p0 in all 4 CPU cores in BSD. Tidy up the formatting a bit.

kldload cpuctl
cpucontrol -m 0xc0010064=0x8000013800003008 /dev/cpuctl0
cpucontrol -m 0xc0010064=0x8000013800003008 /dev/cpuctl1
cpucontrol -m 0xc0010064=0x8000013800003008 /dev/cpuctl2
cpucontrol -m 0xc0010064=0x8000013800003008 /dev/cpuctl3

Unfortunately the particular S920 I'm using for opnsense isn't good at undervolting so it can only do around -50 mV. I've attached some sample configurations for you to copy paste if you'd like to try. You need to load the cpuctl module first before you can use cpucontrol. Note that you have to power off your box completely to clear the MSR values. Soft reboots will not reset the voltages.

kldload cpuctl
#-50
#0
cpucontrol -m 0xc0010064=0x8000013800003808 /dev/cpuctl0
cpucontrol -m 0xc0010064=0x8000013800003808 /dev/cpuctl1
cpucontrol -m 0xc0010064=0x8000013800003808 /dev/cpuctl2
cpucontrol -m 0xc0010064=0x8000013800003808 /dev/cpuctl3
#1
cpucontrol -m 0xc0010065=0x8000012c00005006 /dev/cpuctl0
cpucontrol -m 0xc0010065=0x8000012c00005006 /dev/cpuctl1
cpucontrol -m 0xc0010065=0x8000012c00005006 /dev/cpuctl2
cpucontrol -m 0xc0010065=0x8000012c00005006 /dev/cpuctl3
#2
cpucontrol -m 0xc0010066=0x8000012200007404 /dev/cpuctl0
cpucontrol -m 0xc0010066=0x8000012200007404 /dev/cpuctl1
cpucontrol -m 0xc0010066=0x8000012200007404 /dev/cpuctl2
cpucontrol -m 0xc0010066=0x8000012200007404 /dev/cpuctl3
#3
cpucontrol -m 0xc0010067=0x8000011c00009002 /dev/cpuctl0
cpucontrol -m 0xc0010067=0x8000011c00009002 /dev/cpuctl1
cpucontrol -m 0xc0010067=0x8000011c00009002 /dev/cpuctl2
cpucontrol -m 0xc0010067=0x8000011c00009002 /dev/cpuctl3
#4
cpucontrol -m 0xc0010068=0x800002e10000ac00 /dev/cpuctl0
cpucontrol -m 0xc0010068=0x800002e10000ac00 /dev/cpuctl1
cpucontrol -m 0xc0010068=0x800002e10000ac00 /dev/cpuctl2
cpucontrol -m 0xc0010068=0x800002e10000ac00 /dev/cpuctl3
#5
cpucontrol -m 0xc0010069=0x800002b90000c04c /dev/cpuctl0
cpucontrol -m 0xc0010069=0x800002b90000c04c /dev/cpuctl1
cpucontrol -m 0xc0010069=0x800002b90000c04c /dev/cpuctl2
cpucontrol -m 0xc0010069=0x800002b90000c04c /dev/cpuctl3
#6
cpucontrol -m 0xc001006a=0x800002960000d448 /dev/cpuctl0
cpucontrol -m 0xc001006a=0x800002960000d448 /dev/cpuctl1
cpucontrol -m 0xc001006a=0x800002960000d448 /dev/cpuctl2
cpucontrol -m 0xc001006a=0x800002960000d448 /dev/cpuctl3
#7
cpucontrol -m 0xc001006b=0x8000027a0040e444 /dev/cpuctl0
cpucontrol -m 0xc001006b=0x8000027a0040e444 /dev/cpuctl1
cpucontrol -m 0xc001006b=0x8000027a0040e444 /dev/cpuctl2
cpucontrol -m 0xc001006b=0x8000027a0040e444 /dev/cpuctl3
kldload cpuctl
#-68
#0
cpucontrol -m 0xc0010064=0x8000013800003a08 /dev/cpuctl0
cpucontrol -m 0xc0010064=0x8000013800003a08 /dev/cpuctl1
cpucontrol -m 0xc0010064=0x8000013800003a08 /dev/cpuctl2
cpucontrol -m 0xc0010064=0x8000013800003a08 /dev/cpuctl3
#1
cpucontrol -m 0xc0010065=0x8000012c00005206 /dev/cpuctl0
cpucontrol -m 0xc0010065=0x8000012c00005206 /dev/cpuctl1
cpucontrol -m 0xc0010065=0x8000012c00005206 /dev/cpuctl2
cpucontrol -m 0xc0010065=0x8000012c00005206 /dev/cpuctl3
#2
cpucontrol -m 0xc0010066=0x8000012200007604 /dev/cpuctl0
cpucontrol -m 0xc0010066=0x8000012200007604 /dev/cpuctl1
cpucontrol -m 0xc0010066=0x8000012200007604 /dev/cpuctl2
cpucontrol -m 0xc0010066=0x8000012200007604 /dev/cpuctl3
#3
cpucontrol -m 0xc0010067=0x8000011c00009202 /dev/cpuctl0
cpucontrol -m 0xc0010067=0x8000011c00009202 /dev/cpuctl1
cpucontrol -m 0xc0010067=0x8000011c00009202 /dev/cpuctl2
cpucontrol -m 0xc0010067=0x8000011c00009202 /dev/cpuctl3
#4
cpucontrol -m 0xc0010068=0x800002e10000ae00 /dev/cpuctl0
cpucontrol -m 0xc0010068=0x800002e10000ae00 /dev/cpuctl1
cpucontrol -m 0xc0010068=0x800002e10000ae00 /dev/cpuctl2
cpucontrol -m 0xc0010068=0x800002e10000ae00 /dev/cpuctl3
#5
cpucontrol -m 0xc0010069=0x800002b90000c24c /dev/cpuctl0
cpucontrol -m 0xc0010069=0x800002b90000c24c /dev/cpuctl1
cpucontrol -m 0xc0010069=0x800002b90000c24c /dev/cpuctl2
cpucontrol -m 0xc0010069=0x800002b90000c24c /dev/cpuctl3
#6
cpucontrol -m 0xc001006a=0x800002960000d648 /dev/cpuctl0
cpucontrol -m 0xc001006a=0x800002960000d648 /dev/cpuctl1
cpucontrol -m 0xc001006a=0x800002960000d648 /dev/cpuctl2
cpucontrol -m 0xc001006a=0x800002960000d648 /dev/cpuctl3
#7
cpucontrol -m 0xc001006b=0x8000027a0040e644 /dev/cpuctl0
cpucontrol -m 0xc001006b=0x8000027a0040e644 /dev/cpuctl1
cpucontrol -m 0xc001006b=0x8000027a0040e644 /dev/cpuctl2
cpucontrol -m 0xc001006b=0x8000027a0040e644 /dev/cpuctl3
kldload cpuctl
#-75
#0
cpucontrol -m 0xc0010064=0x8000013800003c08 /dev/cpuctl0
cpucontrol -m 0xc0010064=0x8000013800003c08 /dev/cpuctl1
cpucontrol -m 0xc0010064=0x8000013800003c08 /dev/cpuctl2
cpucontrol -m 0xc0010064=0x8000013800003c08 /dev/cpuctl3
#1
cpucontrol -m 0xc0010065=0x8000012c00005406 /dev/cpuctl0
cpucontrol -m 0xc0010065=0x8000012c00005406 /dev/cpuctl1
cpucontrol -m 0xc0010065=0x8000012c00005406 /dev/cpuctl2
cpucontrol -m 0xc0010065=0x8000012c00005406 /dev/cpuctl3
#2
cpucontrol -m 0xc0010066=0x8000012200007804 /dev/cpuctl0
cpucontrol -m 0xc0010066=0x8000012200007804 /dev/cpuctl1
cpucontrol -m 0xc0010066=0x8000012200007804 /dev/cpuctl2
cpucontrol -m 0xc0010066=0x8000012200007804 /dev/cpuctl3
#3
cpucontrol -m 0xc0010067=0x8000011c00009402 /dev/cpuctl0
cpucontrol -m 0xc0010067=0x8000011c00009402 /dev/cpuctl1
cpucontrol -m 0xc0010067=0x8000011c00009402 /dev/cpuctl2
cpucontrol -m 0xc0010067=0x8000011c00009402 /dev/cpuctl3
#4
cpucontrol -m 0xc0010068=0x800002e10000ab00 /dev/cpuctl0
cpucontrol -m 0xc0010068=0x800002e10000ab00 /dev/cpuctl1
cpucontrol -m 0xc0010068=0x800002e10000ab00 /dev/cpuctl2
cpucontrol -m 0xc0010068=0x800002e10000ab00 /dev/cpuctl3
#5
cpucontrol -m 0xc0010069=0x800002b90000c44c /dev/cpuctl0
cpucontrol -m 0xc0010069=0x800002b90000c44c /dev/cpuctl1
cpucontrol -m 0xc0010069=0x800002b90000c44c /dev/cpuctl2
cpucontrol -m 0xc0010069=0x800002b90000c44c /dev/cpuctl3
#6
cpucontrol -m 0xc001006a=0x800002960000d848 /dev/cpuctl0
cpucontrol -m 0xc001006a=0x800002960000d848 /dev/cpuctl1
cpucontrol -m 0xc001006a=0x800002960000d848 /dev/cpuctl2
cpucontrol -m 0xc001006a=0x800002960000d848 /dev/cpuctl3
#7
cpucontrol -m 0xc001006b=0x8000027a0040e844 /dev/cpuctl0
cpucontrol -m 0xc001006b=0x8000027a0040e844 /dev/cpuctl1
cpucontrol -m 0xc001006b=0x8000027a0040e844 /dev/cpuctl2
cpucontrol -m 0xc001006b=0x8000027a0040e844 /dev/cpuctl3
The power savings are nothing to write home about but they're there. To make a oneshot to set this up on boot you should probably add a long sleep and then apply the undervolt. See this guide:
 
Last edited:
  • Love
Reactions: Samir

yogi_en

New Member
Dec 18, 2019
19
10
3
I am planning to run ZFS ( mirroring with two SSD ) in this device with pfsense/OpenSense. Is there way to add one more SSD into this device?. I do see one more SATA port, but I don't see a way to power the second SSD. Any help is appreciated.
 
  • Like
Reactions: Samir

infojunky

New Member
Mar 14, 2022
21
20
3
Some more opnsense power saving tricks that probably don't do a lot.

enabling extra c-states
This is worth ~1W, my UPS doesn't have enough granularity to show much of a wattage change

run this to check the current opnsense c-state settings
sysctl dev.cpu | grep cx
dev.cpu.3.cx_method: C1/hlt C2/io
dev.cpu.3.cx_usage_counters: 36245454 0
dev.cpu.3.cx_usage: 100.00% 0.00% last 6793us
dev.cpu.3.cx_lowest: C1
dev.cpu.3.cx_supported: C1/1/0 C2/2/400
dev.cpu.2.cx_method: C1/hlt C2/io
dev.cpu.2.cx_usage_counters: 20179234 0
dev.cpu.2.cx_usage: 100.00% 0.00% last 3516us
dev.cpu.2.cx_lowest: C1
dev.cpu.2.cx_supported: C1/1/0 C2/2/400
dev.cpu.1.cx_method: C1/hlt C2/io
dev.cpu.1.cx_usage_counters: 63799082 0
dev.cpu.1.cx_usage: 100.00% 0.00% last 849us
dev.cpu.1.cx_lowest: C1
dev.cpu.1.cx_supported: C1/1/0 C2/2/400
dev.cpu.0.cx_method: C1/hlt C2/io
dev.cpu.0.cx_usage_counters: 14912058 0
dev.cpu.0.cx_usage: 100.00% 0.00% last 320us
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_supported: C1/1/0 C2/2/400
In opnsense the GX-424CC supports the C2 idle state pbut defaults to only using C1. You can enable C2 by setting those tunables in the terminal:
sysctl dev.cpu.0.cx_lowest=C2
sysctl dev.cpu.1.cx_lowest=C2
sysctl dev.cpu.2.cx_lowest=C2
sysctl dev.cpu.3.cx_lowest=C2
afterwards:
sysctl dev.cpu | grep cx
dev.cpu.3.cx_method: C1/hlt C2/io
dev.cpu.3.cx_usage_counters: 312834 657811
dev.cpu.3.cx_usage: 32.22% 67.77% last 659us
dev.cpu.3.cx_lowest: C2
dev.cpu.3.cx_supported: C1/1/0 C2/2/400
dev.cpu.2.cx_method: C1/hlt C2/io
dev.cpu.2.cx_usage_counters: 103578 283877
dev.cpu.2.cx_usage: 26.73% 73.26% last 1233us
dev.cpu.2.cx_lowest: C2
dev.cpu.2.cx_supported: C1/1/0 C2/2/400
dev.cpu.1.cx_method: C1/hlt C2/io
dev.cpu.1.cx_usage_counters: 526115 826174
dev.cpu.1.cx_usage: 38.90% 61.09% last 200us
dev.cpu.1.cx_lowest: C2
dev.cpu.1.cx_supported: C1/1/0 C2/2/400
dev.cpu.0.cx_method: C1/hlt C2/io
dev.cpu.0.cx_usage_counters: 79110 190829
dev.cpu.0.cx_usage: 29.30% 70.69% last 1326us
dev.cpu.0.cx_lowest: C2
dev.cpu.0.cx_supported: C1/1/0 C2/2/400
You can add these to system startup as a one-shot or add them as tunables in /system_advanced_sysctl.php.

Quick explanation here:

enabling energy efficient ethernet (eee) on i350 cards
miniscule power savings, potential to cause issues

go to the tunables page at /system_advanced_sysctl.php and set hw.em.eee_setting to 0, then restart

If you have a Linux client connected to your firewall you can use ethtool to confirm eee is enabled.
ethtool --show-eee eth1
EEE settings for eth1:
EEE status: enabled - active
Tx LPI: disabled
Supported EEE link modes: 100baseT/Full
1000baseT/Full
Advertised EEE link modes: Not reported
Link partner advertised EEE link modes: 100baseT/Full
1000baseT/Full
 
Last edited:

yogi_en

New Member
Dec 18, 2019
19
10
3
@infojunky Can you please let me the typical power usage ( as openSense Firewall ) after all these savings?. I am using the same device for pfsense firewall and it uses 16 to 18 watt for my usage. I am using quad port i340 as NIC
 

infojunky

New Member
Mar 14, 2022
21
20
3
Mine idles at about 16-17 watts before the CPU one-shots and 15-16 afterwards so basically not a big difference according to my UPS wattage readout.
 
  • Like
Reactions: yogi_en

yogi_en

New Member
Dec 18, 2019
19
10
3
The S920 which I have got AMD GX-424CC which is consumes more power than GX 415-GA. This website says that ( https://www.cpu-world.com/Compare/301/AMD_G-Series_GX-415GA_vs_AMD_G-Series_GX-424CC.html ) GX-415 GA is 40% more power efficient. I am planning to replace the S920 CPU with GX-415 GA. I plan to get 415-GA from an old HP 620 thin client. Any thoughts on this approach?. Do you think I can some power with CPU swap?

EDIT: Looks like I cannot remove the CPU and seems to fixed permanently!
 
  • Like
Reactions: neuralreticulator

OldPal1912

New Member
Sep 18, 2022
6
0
1
May I ask a question: what is the opinion here about virtualising or not on S920/S930?

Pro (Proxmox): easier patching and rollback.
Against: higher complexity of installation and requirements to disk space/performance.

RAM should not be a limiting factor - I have some spare 4GB planks - but size of mSATA would be, as S920 (GX-222GC) came with only 8GB and S930 (GX-424CC) is coming with 16GB.

I've already run some tests on S920 and AMD GX-222GC performing pretty good - able to get about 930-940 MBps on either builtin NIC or on Intel i340-T2.

So far the expected list of services on the same appliance: pfSense CE, OMV and Pi-Hole.

PS: I've bought for EUR 75 the highest available model (S930), but my second/backup installation would use S920, so prefer them to have a similar software setup. This is why some concerns if I should go with Proxmox or not.

PPS: I've seen the STH YouTube video on the subject, but, sorry, not that useful.
 
Last edited:

OldPal1912

New Member
Sep 18, 2022
6
0
1
...
OPNsense 22.1.10-amd64
FreeBSD 13.0-STABLE
OpenSSL 1.1.1q 5 Jul 2022
Receive side scaling enabled in tunables, adaptive PowerD profile
Hardware CRC, TSO and VLAN Hardware Filtering are enabled

If you have a GX-424CC you'll route gigabit as long as you don't use IDS/IPS.
...
So, this is direct install on mSATA?
Have you considered/tried Proxmox by any chance, if not then why?
 

OldPal1912

New Member
Sep 18, 2022
6
0
1
fyi:
the internal SATA bus is good, but other connections are not bad either on S920 (GX-222GC).

This is what hdparm is reporting on Debian 11 (latest):
/dev/sda: internal SATA (Kingston SV300S3 - old cheap): about 400 MB/s
/dev/sdb: mSATA (16GB) - 103 MB/s
/dev/sdc: USB3-SATA adapter (on a fast SSD): 240 MB/s

So, from performance point of view it should not be any issue with Proxmox, even via USB3.

PS: Thanks to this forum I've got the proper documentation and found some old power supply cables with floppy connector to power SSD ;-) Not even an angled SATA cable was needed, as I've found one to pass thru radiator holes.
 

OldPal1912

New Member
Sep 18, 2022
6
0
1
the internal SATA bus is good, but other connections are not bad either on S920 (GX-222GC).

This is what hdparm is reporting on Debian 11 (latest):
/dev/sda: internal SATA (Kingston SV300S3 - old cheap): about 400 MB/s
/dev/sdb: mSATA (16GB) - 103 MB/s
Another SSD was a bit faster:
/dev/sda: internal SATA (Crucial BX500): about 458 MB/s

Interestingly enough speeds of same devices are with about 10% better on S930(GX-424CC):
/dev/sda: internal SATA (Crucial BX500): about 480 MB/s
/dev/sdb: mSATA (16GB) - 124 MB/s
/dev/nvme0n1: (Samsung 980 500GB) - 560 MB/s

Meaning there is a value to get a better/faster CPU.
 
Last edited:

monotux

Member
Oct 23, 2019
34
15
8
Kiruna, Sweden
www.monotux.tech
PS: For people in Europe: the EBay seller "piospartslap' I've got S920 from has a 10% discount (till EUR 35,99 without power supply): Fujitsu Futro S920 ThinClient AMD 2.20GHz 4GB 8GB SSD ohne Netzteil ohne Fuß. But be aware of EUR 19,99 shipping costs.
Note that these units are the dual-core variation, not quad core (the quad core runs at 1,5 GHz, the dual-core at 2,2 GHz). But they come with 8 gigs of storage and PSU, so you don't have to buy anything more to make a really basic system. I was initially not happy with them being dual core and not quad core (I should probably complain since the specs stats that it's the quad core in the post details) but it won't matter and the price was decent.

I bought 10 of them @ 25 euro each. They are slowly (due to family and work) becoming a k3s cluster.
 

ilf

New Member
Aug 28, 2022
3
2
3
I managed to get a very good deal on ebay for 4 banks of Kingston ECC ram, for a total of 32GB, my reasoning was, it's almost the same price as 16GB and if it works, I'll order another Futro 930. I just attempted to boot the machine with various placement of the RAM modules to a dreaded long beep, after a long beep, after a long beep from the speaker. Initial finding is that ECC ram doesn't work, something that at least for me, makes the Fujitsu more of a toy, than an useful machine, but I digress. I'll try to play around with the firmware a bit tomorrow as I really need to get some sleep, but I'm not overly optimistic. Any ideas from anyone? Firmware upgrade, firmware modding, or anything else you could think of, is always welcome. When I have the time to play with it more, I'll report any findings.
 
Last edited:

OldPal1912

New Member
Sep 18, 2022
6
0
1
I was initially not happy with them being dual core
It would all depend on what you need it for.
My idea is to: (1) replace Synology NAS ; (2) a new cheap testbed for unknown new hardware or USB sticks and (3) for playing with a network appliance like router or firewall. In every case I would need a higher burst rate, but lower idle consumption. So, higher clock would be nice, while less cores are best for TDP.
If you are trying to make a computing cluster, you might think about another metric, like performance per Watt. Although 28nm AMD CPU's could not compete with Intel 14nm Celerons on computing power per Watt, only on cost ;-)
PS: I've also got one S930 with 4x cores on 2.4 GHz, but this would be, likely, a Proxmox test machine when I find a reasonable 8GB RAM.
 

monotux

Member
Oct 23, 2019
34
15
8
Kiruna, Sweden
www.monotux.tech
It would all depend on what you need it for.
My idea is to: (1) replace Synology NAS ; (2) a new cheap testbed for unknown new hardware or USB sticks and (3) for playing with a network appliance like router or firewall. In every case I would need a higher burst rate, but lower idle consumption. So, higher clock would be nice, while less cores are best for TDP.
If you are trying to make a computing cluster, you might think about another metric, like performance per Watt. Although 28nm AMD CPU's could not compete with Intel 14nm Celerons on computing power per Watt, only on cost ;-)
PS: I've also got one S930 with 4x cores on 2.4 GHz, but this would be, likely, a Proxmox test machine when I find a reasonable 8GB RAM.
Yes, I might not even run this cluster 24/7 as I initially intended due to power costs (even though I happen to live in the right place for relatively cheap power, at least compared to the rest of Europe). But it will be a lot of fun to setup the k3s (or later k8s) and I might be able to sell them on for a significantly lower price.