# Decrease power usage Xeon CPU



## dndlnx (Apr 11, 2018)

I got a nice deal on a Xeon processor. It's the lowest power one compatible with my motherboard, that had the built in graphics:  E3-1260L

45 watts is still a lot though, for a personal file server. I bought it partly in hopes I could chop this in half, at least, by tuning some variables or something? I tried:


```
sysctl dev.cpu.0.freq
```


To chop over 1 Ghz off. Didn't notice any change, the Kill-A-Watt still says about 45W. What's the best way to do this, do I need to disable some cores? Is what I'm trying to accomplish possible, or even recommended? Should I just get one of those Atom boards that support ECC?


----------



## Phishfry (Apr 11, 2018)

Try going into the BIOS and disable hyperthreading for start.

Also fiddle some with powerd.


----------



## Phishfry (Apr 11, 2018)

Make sure EIST(Speedstep) is enabled in the BIOS too.
https://wiki.freebsd.org/TuningPowerConsumption


----------



## k.jacker (Apr 11, 2018)

dndlnx said:


> To chop over 1 Ghz off. Didn't notice any change, the Kill-A-Watt still says about 45W.


You get some things wrong. The fact that your whole system consumes about 45W has nothing do to with the processor’s TDP rated at 45 watts.
The idle power consumption of your Xeon is much lower.
The real question is, what’s your goal? Are you trying to keep heat output low or do you want to lower overall power consumption?
If it’s the latter then cutting of the max frequency won’t save much energy on your Xeon running at 2,4GHz only and will be mostly idle when used as a home server. In addition, the Sandy Bridge desktop processors the lowest frequency is 1600MHz. Disable Intel turboboost in the BIOS to stop your processor from ramping up to 3,3GHz.
What saves the most energy is to choose a suitable power supply for low energy consumption.
I guess you don’t want to buy a smaller psu so you have some other options...
undervolting (only possible on some motherboards) and disabling unused components like add-on USB3.0 controllers and audio save some watts.
And like Phishfry said, cutting of the max frequency using powerd can save a bit, too. Remember that dev.cpu.0.freq is read only.


----------



## dndlnx (Apr 11, 2018)

You’re right though, the total 45W is just a coincidental thing. I didn’t see that reading again. On average it’s been more than that.

My goal is to get power consumption down, less watts used. I found this thread just now, and toward the bottom they demonstrate a chart with watts dropping along with the MHz. I can’t achieve that with mine? I will look closer at this thread. Edit: yeah it’s just powerd stuff that was mentioned, right? But anyways I am doing these other things you’ve both suggested too.


----------



## k.jacker (Apr 11, 2018)

Hei, as you see in the thread you linked to, the best performance/watt ratio for almost every processor  is somewhere halfway between the lowest possible and highest possible frequency. Your Xeon is of Intel’s L-Series which allready has the maximimum reduced from above 3GHz to 2,4GHz. I havn’t testet that myself on a sandy bridge processor but 2,4GHz got to be at least very close to the best p/w ratio.
Setting the frequency even lower, say to the minimum 1,6GHz, won’t save more energy because tasks take longer to finish while running on a worse p/w ratio. It’s some time ago I had a Sandy Bridge system but if I remember I had a Core i5 on a H61 motherboard with 8gb ram and a single SSD.  Using a PicoPSU the whole system idled at 24-25w. Even with a good ATX psu you won’t ever come close to that, no matter how much you tweak other things.
On Core processors you can’t tweak the lowest frequency, it’s locked.


----------



## sko (Apr 11, 2018)

With at least halfway modern "low-end" systems the HDDs are amongst the biggest power hogs in a storage server. You *could* suspend them every time the system is idling, but usually sending them to sleep on idle won't save you any money in the long run. For one, HDDs use by far the most power on spin-up, so frequent spin-ups will often use more power than if the drive would just run 24/7. Also the wear on spinup/spindown is extremely high and often causes relatively early drive failures; so in the long run you'd be spending more money on replacing drives than you saved from the few watts you saved on total energy consumption.
The only advice to give here: use fewer but bigger disks, but let them run "as they were build" (some NAS drives automagically drop into a low-power mode on idle)

Overall 45W for the whole running system already is pretty low and hard to beat with proper server hardware, especially for a storage server with multiple boxes of spinning rust....
For comparison: our small Xeon-D 1518 gateways are running at ~55-60W total on normal load* with redundant PSU, 2x SATA-SSDs, 16GB RAM and 6x GBit NICs in use. Installing 2 10GBit SFP transceivers adds another ~10W to that figure.

The only way to drastically reduce the power consumption would be using low-power desktop hardware (e.g. Celeron NUCs) or "toys" like Raspberry PIs. However, I wouldn't trust any of those with my data and such hardware usually has a very high failure rate if used in a 24/7 scenario.


* normal load on these systems is 2 VMs on smartOS running FreeBSD with PF firewall in failover mode + ~10 zones for all the basic networking services.


----------



## vchan (Apr 11, 2018)

I recommend setting up powerdxx. It will keep your CPU in a low power state unless you are doing a high load task then it will allow your CPU to run faster completing the job quicker.


----------



## dndlnx (Apr 11, 2018)

k.jacker said:


> Your Xeon is of Intel’s L-Series which allready has the maximimum reduced from above 3GHz to 2,4GHz. I havn’t testet that myself on a sandy bridge processor but 2,4GHz got to be at least very close to the best p/w ratio.
> Setting the frequency even lower, say to the minimum 1,6GHz, won’t save more energy because tasks take longer to finish while running on a worse p/w ratio.


Ah, when you put it like that... I did set it to 1.6 GHz for a sec and didn’t see any significant drop. So I might indeed be real close.




k.jacker said:


> It’s some time ago I had a Sandy Bridge system but if I remember I had a Core i5 on a H61 motherboard with 8gb ram and a single SSD.  Using a PicoPSU the whole system idled at 24-25w. Even with a good ATX psu you won’t ever come close to that, no matter how much you tweak other things.


Do you think I’d benefit from a smaller one? What I have is a Seasonic “SS-350SFE” SFX. Thing is though, I love my case and it actually has full ATX, I’m already using an adapter for the smaller one.




sko said:


> With at least halfway modern "low-end" systems the HDDs are amongst the biggest power hogs in a storage server. [...]





sko said:


> The only way to drastically reduce the power consumption would be using low-power desktop hardware (e.g. Celeron NUCs) or "toys" like Raspberry PIs. However, I wouldn't trust any of those with my data and such hardware usually has a very high failure rate if used in a 24/7 scenario.


I only use a 2 x Mirrored ZFS.

Supermicro has some nice Atoms that are basically “Mini Xeons” I guess, with ECC and all, under 10W TDP. I tried one of their boards before and had some weird issue on FreeBSD that made me toss it, and go back to my old “Intel” branded ITX one. It was probably just a defective one. But I’m hesitant to abandon what already works again... even though that power consumption seems super attractive.


----------



## vchan (Apr 11, 2018)

The new Atom boards are really nice and surprisingly powerful.


----------



## dndlnx (Apr 11, 2018)

I just don’t know how much I trust the brand Supermicro. There aren’t many companies that even do these boards though.


----------



## robroy (Apr 11, 2018)

dndlnx said:


> I just don’t know how much I trust the brand Supermicro.



As I understand it, Supermicro is known for making reliable mainboards using relatively expensive components that tend to work extremely well with FreeBSD; it's a very popular brand among FreeBSD users.


----------



## sko (Apr 11, 2018)

Nearly all of our servers are from Supermicro. I really like their fast and lean IPMI with online-BIOS-upgrade capabilities (no downtime), HTML 5 console and the option to upload an iso to directly boot the system from that for installation or recovery. You can put a new system directly into the rack and never have see or to touch it again except for hardware failures/upgrades.
Of course, Dell or HPE offer similar features (although their IPMI interfaces are sometimes really bloated and slow...), but they are also in a much higher price segment for basically the same hardware specs.
Also the EFI on Supermicro systems "just works™" - something I absolutely hate about absolutely every desktop or laptop system I have to deal with. There seems to be absolutely NO consumer platform with a properly working UEFI nowadays. The Supermicros just work as a "fire and forget" solution and don't try to be "intelligent" by changing your settings or - the worst and most common abomination  - constantly modify the boot order and breaking all your PXE deployments...

Regarding the Atoms: The pricing of the new Atom C3k series is IHMO way off - they may be more usable than those awful C2k or earlier series, but these are still extremely capped-down CPUs in terms of e.g. caches, memory bandwidth and virtualization features. The Xeon D products are basically in the same price range but offer much more features, performance and the dual 10Gbit NIC integrated in the SoC is IMHO *THE* killer feature of the Xeon D, especially for storage servers.
The Atoms might have a lower power consumption, but given that they sell at roughly the same price as the much beefier Xeon D (which may run at a lower load percentage and therefore might consume the same power as the higher-utilized Atom...) I really see no benefit in using those unless you absolutely have to match some low power requirements.


----------



## dndlnx (Apr 17, 2018)

I can't complain about the E3-1260L. From what I understand the 1155 are like "baby's first Xeon" or something but it works I guess, at the expense of 50W+ system usage. For what though? Equal support of unbuffered ECC as the i3-2100T? That's all my board supports anyhow.

I'm looking at these < 10W Atoms and bugging out because if I can get one of these going, I think is what I need for a file server.

I looked at the Xeon D mentioned, they have smililar TDP to this family of Xeons I am stuck in right now socket wise. I'm sure they are significantly nicer performing than Atom. But I think my performance requirements are probably quite low, almost non-existent.


----------



## PMc (May 12, 2018)

I think the best way to measure power consumption is to measure the temperature at the air outlet: the computer cannot do anything else with the power than produce heat, so the generated heat must be directly related to the power usage. (The other option is to measure actual power intake, but therefore you need a rated power meter suitable for primary.)
Besides that, on IvyBridge I use these options:
loader.conf: drm.i915.enable_rc6=7
sysctl.conf:  hw.acpi.cpu.cx_lowest=C3

Furthermore, I have added the attached patch into the portstree, and then run
`/usr/local/sbin/gstopd -I 12m `cd /dev; ls da[0-9] ada[0-9] 2> /dev/null``
from /etc/rc.local
But this obviousely does only make sense if you have more than two disks and a usage pattern where these disks often are fully idle for more than ~30-60 minutes. And it could put additional wear on the drives (but mine are +50000 hours and seem to like it).

P.S. cannot attach the patch, its not an "allowed extension". Here it is:
/usr/ports/sysutils/gstopd/files/patch-xa-adadrives:

```
*** gstopd.c.orig       Thu Aug  3 03:38:48 2017
--- gstopd.c    Thu Aug  3 03:39:39 2017
***************
*** 57,62 ****
--- 57,63 ----
  static int time_I = 3600;

  static void stop_da( const char *name );
+ static void stop_ad( const char *name );
  static void stop_others( const char *name );
  static void usage(void);

***************
*** 181,187 ****
                                                        (uintmax_t)u64, ctime( &ltime ) );
                                                if( pp->lg_name[0] == 'd' && pp->lg_name[1] == 'a' ) {
                                                        stop_da( pp->lg_name );
! //                                            } else if ( pp->name[0] == 'a' && pp->name[1] == 'd' ) {
                                                } else {
                                                        stop_others( pp->lg_name );
                                                }
--- 182,189 ----
                                                        (uintmax_t)u64, ctime( &ltime ) );
                                                if( pp->lg_name[0] == 'd' && pp->lg_name[1] == 'a' ) {
                                                        stop_da( pp->lg_name );
!                                               } else if ( pp->lg_name[0] == 'a' && pp->lg_name[1] == 'd' ) {
!                                                       stop_ad( pp->lg_name );
                                                } else {
                                                        stop_others( pp->lg_name );
                                                }
***************
*** 205,210 ****
--- 207,220 ----
        system( cmd );
  }

+ static void stop_ad( const char *name ) {
+       char cmd[256];
+       snprintf( cmd, 256,
+               "/sbin/camcontrol standby %s"
+               "| /usr/bin/logger -p local0.info -t gstopd 2>&1", name );
+       system( cmd );
+ }
+
  static void stop_others( const char *name ) {
        char cmd[256];
        snprintf( cmd, 256,
```


----------

