Dedicated server: high idle power consumption and temperature

Pallando

New member
Hi,

This has previously been mentioned in a different topic (here), but I'm seeing some high CPU/power usage when I start the dedicated server on my home server.

Beyond the talks about CPU usage and such, when I start the program and let it idle (no player, no activity), I see that:

  • the temperature goes from ~44°C to 55°C
  • the power consumption of the whole server goes from 15w to 18w



I find it weird that a program only waiting for incoming connections uses so much power (I have a 20% increase).

Why does that happen? Would there be a way to be a bit more energy efficient when the server is doing nothing except waiting?

 
Last edited by a moderator:
That is a relatively small increase, and not 20% if you measure it across the full load of the device. It's a pretty big stretch to call that "high" idle power consumption.

The change in temp does seem a bit extreme. I would check on your cooling effectiveness.

What is the hardware setup there?

As for activity, the server is not only waiting for incoming connections. It is advertising it's state to EoS, and is actively listening on the ports. The API is basically hosting a website if you have that enabled as well. It is far from sitting there doing nothing and waiting.

 
That is a relatively small increase, and not 20% if you measure it across the full load of the device. It's a pretty big stretch to call that "high" idle power consumption.
15W is the full idle load of my server. It is an Odroid H4 ultra with an i3-N305.

Going from 15W to 18W is a 20% increase in my case. I find 3W quite a lot for something just waiting, as I have many services doing the exact same thing on this machine, and they're not consuming 3W.

The biggest part of the 15W is actually a spinning disk using ~5-6W (not used by the container with the 7days server).

The change in temp does seem a bit extreme. I would check on your cooling effectiveness.
I reckon the cooling might be responsible for the temperature itself, but the temperature rises because of the CPU usage. The only other service that increased the temperature like that was when I installed a motion detection program that was doing permanent I/O to access a webcam, and image processing to detect movement.

As for activity, the server is not only waiting for incoming connections. It is advertising it's state to EoS, and is actively listening on the ports. The API is basically hosting a website if you have that enabled as well. It is far from sitting there doing nothing and waiting.
I have webservices on the same machine as well as a mediacenter (with transcoding capabilities). As long as these are not actually in use, they're not pushing the CPU much.

I understand if the CPU usage climbs up when players connect, I expect it.

But idling?

How often does the program advertise its state to EoS?

 
Last edited by a moderator:
15W is the full idle load of my server. It is an Odroid H4 ultra with an i3-N305.
So you are basically attempting to run a very heavily loaded CPU-bound dedicated server on a micro-CPU designed for mobile platforms.  Something that you might run a PFSense server on, or maybe an edge router or a NAS, but not anything anyone would recommend using for something that is going to be doing heavy lifting. That isn't even counting the fact that the base clock rate is almost half the minimum requirement to run a server. I mean it runs slower than a bottom-end Coffee Lake laptop chip that I wouldn't recommend for Minecraft. No offense. That is just the hard truth.

Your temp issue is almost fully explained by this too. The server client is really making that chip work its ass off. Does it even have active cooling?

Your hardware is for a NAS, not for hosting a game server.

 
So you are basically attempting to run a very heavily loaded CPU-bound dedicated server on a micro-CPU designed for mobile platforms.  Something that you might run a PFSense server on, or maybe an edge router or a NAS, but not anything anyone would recommend using for something that is going to be doing heavy lifting. That isn't even counting the fact that the base clock rate is almost half the minimum requirement to run a server. I mean it runs slower than a bottom-end Coffee Lake laptop chip that I wouldn't recommend for Minecraft. No offense. That is just the hard truth.

Your temp issue is almost fully explained by this too. The server client is really making that chip work its ass off. Does it even have active cooling?

Your hardware is for a NAS, not for hosting a game server.


No. This is an Alder Lake i3. Yes, it is a low-power SoC, but its performance is actually on par with an i5 9500 or a Ryzen 2500X / 3400G.

So it's not slower than a bottom-end Coffee Lake laptop chip. That is the truth.

The clock rate is not half the minimum requirements as it can sustain 3.0 GHz on all core indefinitely if required, but the clocks do not mean much as a CPU can be more efficient with lower clocks anyway.

Does it even have active cooling?


Yes I have a CPU fan in my case.

Your temp issue is almost fully explained by this too. The server client is really making that chip work its ass off.


And that's my problem. It should not be working that hard while waiting for connections. What is the CPU actually used for while waiting for connections?

Your hardware is for a NAS, not for hosting a game server.
All your (incorrect) talk about how my CPU is not adequate for hosting the game server would be audible if it was actually failing to do its job while playing.

But that is not the problem. The problem is that the software is clearly wasting CPU cycles and energy sitting on its ass, listening for incoming connections - something that many programs already do without using so much CPU.

 
The interplay of hardware and software is incredibly complex, and "C" states (power states) on Intel is even more so. It's not impossible that the extra threads is enough trip the processor controller to turn on some extra cores, or boost existing ones.

Think of it this way - you measure fuel efficiency in carrying 49 passengers on a bus that can carry 40 passengers. You add two more passengers and all you see is a doubling of the fuel bill. Is it reasonable to ask why those passengers weigh so much to double your fuel bill? 

Well, it's reasonable to ask, but unless you knew that 51st passenger created the requirement for a 2nd bus, the answers you get might not be what you want. 

 
That extra 3 watts is gonna cost at most like $4 for a year. I don't get what the big deal is. The effort to post this cost more in wasted time.

 
Last edited by a moderator:
The interplay of hardware and software is incredibly complex, and "C" states (power states) on Intel is even more so. It's not impossible that the extra threads is enough trip the processor controller to turn on some extra cores, or boost existing ones.

Think of it this way - you measure fuel efficiency in carrying 49 passengers on a bus that can carry 40 passengers. You add two more passengers and all you see is a doubling of the fuel bill. Is it reasonable to ask why those passengers weigh so much to double your fuel bill? 

Well, it's reasonable to ask, but unless you knew that 51st passenger created the requirement for a 2nd bus, the answers you get might not be what you want. 


I've quickly tried to profile the program a bit, and I see a lot of instructions being executed (it does not seem to sleep/wait much), but I may have not used the best tool for this. I'm under the impression that the program is unable to reach "C" states as it's never waiting. I'd expect a few passengers in this bus, not 112 983 888 for each passing second.

 
Last edited by a moderator:
That extra 3 watts is gonna cost at most like $4 for a year. I don't get what the big deal is. The effort to post this cost more in wasted time.


7€ in my area.

Yes, it's only 7€, but it's still a waste of energy, especially if you consider my machine is not the only one running this software.

Of course, the increase in power consumption will vary depending on the hardware, but it will consume more than it probably should.

Are you the type to leave the water running for no particular reason because it's inexpensive maybe?

 
So you are basically attempting to run a very heavily loaded CPU-bound dedicated server on a micro-CPU designed for mobile platforms.  Something that you might run a PFSense server on, or maybe an edge router or a NAS, but not anything anyone would recommend using for something that is going to be doing heavy lifting. That isn't even counting the fact that the base clock rate is almost half the minimum requirement to run a server. I mean it runs slower than a bottom-end Coffee Lake laptop chip that I wouldn't recommend for Minecraft. No offense. That is just the hard truth.

Your temp issue is almost fully explained by this too. The server client is really making that chip work its ass off. Does it even have active cooling?

Your hardware is for a NAS, not for hosting a game server.


So, I still consider that the CPU is not relevant to this conversation, but I tried with a machine using a Ryzen 5 5600X.

Idle power consumption when server is not started: 79.4 W

Idle power consumption when server is waiting for connections: 91.4 W

Therefore running the server on this machine, without any player on it, consumes around 12W.

So machines more powerful than my low-power CPU will eat even more power when they're just waiting for connections.

I still think that if it's possible to reduce the activity rate when there's no activity, CPU usage could be reduced, and this could lower the footprint of all the servers running the game.

 
Back
Top