Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CPU Temperature Controller might be too slow to React #4

Open
luckylinux opened this issue Jul 27, 2024 · 0 comments
Open

CPU Temperature Controller might be too slow to React #4

luckylinux opened this issue Jul 27, 2024 · 0 comments

Comments

@luckylinux
Copy link
Owner

The Temperature Controller running every 30s and increasing Fan Speed by default by 5% might be too slow to React.

This could be seen for instance on a Supermicro X11SSM-F with Intel Xeon E3-1230 v5 with a Standard Low-Profile (1U) Heatsink that come with many such Supermicro Systems/Servers.

Part Number should be Supermicro SNK-P0046P.
image

As such, the Heatsink as a very low Thermal Mass/Thermal Capacity, and even with only 4 Cores / 8 Threads, that was enough to bring the CPU over 72 °C [Celsius] while doing some Intensive Work (tested by doing a Linux Kernel 6.10 Compile Test with make -j16 and make -j8).

Therefore, probably 2 Control Loops should be Implemented running in Parallel with different Periods, either Synchronously (triggered by Interrupt) or Asynchronously or a mix of the two.

Proposed Periods:

  • CPU Temperature Controller: 5s Period
  • HDD/SSD/NVME Temperature Controller: 30s Period

Furthermore, the Fan Controller shall be run at the lowest of the Two Aforementioned Periods, in order to update the Fan Speed in a Timing Manner:

  • Fan Controller: 5s Period

It might also be worth to implement a non-linear Fan Speed Increase:

  • Increment by 5% Fan Speed if Temperature <= 50°C
  • Increment by 10% Fan Speed if 50°C < Temperature <= 60°C
  • Increment by 20% Fan Speed if 60°C < Temperature

(similarly for a decrease: one could reduce quickly if temperature fall < 50°C for Instance)

To be evaluated. In any case the Period for the Controller needs to be adjusted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant