pfSense/OPNsense Appliance - Temperatur senken

Hallo zusammen,

ich habe eine Mail von einem Leser/Youtube Zuseher bekommen, welcher sich tiefer mit den Firewall Appliances auseinander gesetzt hat und versucht hat diese von der Temperatur runter zu bekommen und das mit Hilfe von Software.

Hier die Hardware: Amazon.de - pfSense Appliance

Ich Zitiere das und natürlich ohne Gewähr.

Hi, ich hatte einige Tage gewartet mit meiner Antwort um zu sehen, ob die OPNsense-Mini-PC mit den Strom-Spareinstellungen stabil läuft… keine Probleme!

Entgegen meiner ersten Mail hat sich die CPU-Temperatur jetzt sogar um -17,0 °C reduzieren.
Die CPU läuft jetzt mit 34-37 °C. (Jetzt weniger im Vergleich zu ersten Mail, weil Raum durch aktuelles Wetter kühler ist). Aber die -17 °C zu der Standkonfiguration des Mini-PC stimmt weiterhin.

Das finde ich schon extrem gut…

Hier die Grafik der CPU-Temp. vorher, dann fällt sie ab (wegen der ersten Änderung Teil 1), dann war der Mini-PC mal ganz aus, weil ich für die BIOS Einstellung in an einen Monitor anschließen musste, danach läuft er mit allen Änderungen…

Was wurde gemacht:

  1. CPU-Frequenz drosseln
    sysctl dev.hwpstate_intel |grep epp
    Alter Wert: 50
    Neuer Wert: 99
    gesetzt unter System/Settings/Tunables:
    dev.hwpstate_intel.0.epp = 99
    dev.hwpstate_intel.1.epp = 99
    dev.hwpstate_intel.2.epp = 99
    dev.hwpstate_intel.3.epp = 99
    Ergebnis: 44-46°C (-10,5°C)

  2. C-State: Enable C-states to reduce power consumption and heat generation · Issue #5737 · opnsense/core · GitHub
    Anzeigen alle Cores: sysctl dev.cpu |grep cx
    Anzeigen: sysctl hw.acpi.cpu.cx_lowest
    C3 setzen alle Cores: sysctl hw.acpi.cpu.cx_lowest=C3
    mit C3 gesetzt unter System/Settings/Tunables
    Variable: hw.acpi.cpu.cx_lowest
    Beschreibung:
    C-State (CPU Strom sparen) aktivieren:
    C1 = default
    C3 = Strom sparen
    Wert= C3 (bringt -2,0°C im Vergleich zu C1)
    plus BIOS Änderung:
    Chipset / PCH-IO / PCI Express Configuration /
    PCI Express Root Port 1 → ASPM = Auto
    und auch für Port 4-8
    Ergebnis: 38-39°C (-6,5°C)

Hier alle Eintragungen in der OPNsense:

PowerD deaktiviert lassen, sinnlos bei neuen Intel-CPUs.

Hier die ursprüngliche Anleitung:

Ich denke, dass wird viele interessieren und geht vermutlich auch mit Mini-PC mit anderen Intel-CPUs…

Eine Video zu diesem Thema gibt es bei YouTube wohl noch nicht.

3 Likes

Ich hab da auch mal mit rum probiert. Elegante Lösung.
Für Prozessoren die nicht intel_pstate haben lässt sich das hervorragend mit cpufrequtils und cpugovernor realisieren :wink:

1 Like

Leider funktioniert das beim Topton N100 nicht.
Die Temperatur bleibt unverändert.

Auch mit dem Hinweis von @peregrintum über die cpufrequtils ?

Der N100 ist ja ein Intel.

Ich habe es auch getestet, bringt ca. 5-7° bei i7-1165G7.

1 Like

Welches Tool hast du verwendet für den N100 ?

@chris86 @Dennis_Admin @aibix
Hier mal der Link zum Ubuntu Wiki Prozessortaktung, ist dort recht gut beschrieben.
Das lässt sich auch mit dem xfce4-cpufreq-plugin bei Gitlab in einer GUI realisieren. xfce4-cpufreq-plugin Homepage. Von Thomas Schreck geshrieben und ist dann halt für ne GUI. Es unterstützt auch intelstate. Wenn man intelstate verwendet hat man Vorgaben von der CPU an die man sich halten muss. Bei einem alten Gaming Laptop von mir der als Server läuft gibts dann nur die governor „powersave“ oder „performance“ zwischen 800mhz und 3,5ghz.
Oder manuell wie gesagt mit den parametern manuell. Dann lässt sich auch min max taktung und jeder beliebige governor einstellen. Habs an einem odroidxu4 mit governor „ondemand“ und min max 200mhz 2ghz am laufen.
Bei dem odroidxu4 gibts was für Lüftersteuerung bei Hardkernel. Mit dem Tool lässt sich alles bis aufs kleinste einstellen inklusive Lüfterdrehzahl, Temperatur, Ansprechverhalten der Lüfter und und und…

Hier mal ein Screenshot von der GUI Version auf meinem Gaming Laptop Server:

Hier noch ein Screenshot, achtet auf CPU0&1 und die Zwangsvorgaben von intel_pstate :wink:
CPU 2-7 sind automatisch geregelt und waren im Moment auf 2,7ghz

Bildschirmfoto_2023-09-14_15-51-37

meinst du mich? ich hab keinen N100

Ja, du hast aber Intel in deiner Kiste drin. Also wo hast du dran gedreht, im BIOS oder via Commands im Linux?

Cooler Tip, habs mal direkt bei meiner OPNSense eingerichtet, mal sehen ob es was bringt.

bei dem N5105 funktioniert das sichtbar gut mit der Temperatur, ich habe ausschließlich die Tunables in OPNsense eingestellt, noch nichts im BIOS.

durch das CPU Frequenz reduzieren ist natürlich auch die CPU Auslastung etwas höher gegangen

ich denke wer das ding am Limit auslastet, dem wird diese Option nicht bringen weil das ja im Grunde eine Reduzierung der Performance ist, für den normalen Home gebrauch aber eine gebräuchliche Einstellung um die Temperatur zu senken.

Wow, das sind ja mal eben 10°
Wie genau und womit hast du die CPU Frequenzen gesenkt? Kenne OPNsense nicht, deswegen frag ich. Gibts da intern die Möglichkeit?
Natürlich wird die Performance gesenkt, aber je nachdem welche Anwendungen auf dem Server laufen ist das ja gar nicht so tragisch. Muss man halt einen gesunden Mittelweg finden.
Bei mir war die Lösung die min Freq auf 500Mhz zu erhöhen damit beim Governor OnDemand nicht so ruckartig von 200 Mhz hoch getaktet wird.

wie in punkt 1 und 2 beschrieben, das geht auch in der Shell, bei der OPNsense kann man das allerdings auch in der weboberlfäche eintragen.

folgende befehle in der shell eingeben

sysctl dev.hwpstate_intel.0.epp=99
sysctl dev.hwpstate_intel.1.epp=99
sysctl dev.hwpstate_intel.2.epp=99
sysctl dev.hwpstate_intel.3.epp=99
sysctl hw.acpi.cpu.cx_lowest=C3

um zu prüfen ob es gesetzt ist
sysctl dev.hwpstate_intel |grep epp
sysctl dev.cpu |grep cx

ob das ganze so aber auch reboot fest ist kann ich nicht sagen, ich vermute das müsste irgendwo noch eingetragen werden, der Vorteil bei der OPNsense ist das man es so fest gesetzt hat da es in den Optimierungseinstellungen eingetragen wurde.

1 Like

OK, ist dann im FreeBSD hwpstate_intel und in Linux cpufreq-set.
Ist in Linux nicht Reboot fest. Muss noch irgendwo eingetragen werden, so ähnlich wie swapiness.

Nach einigen Tagen mit der OPNSense kann ich soviel sagen:

Die Durchschnittstemperatur hat sich nur unwesentlich verringert, aber die Temperaturschwankunden der einzelnen Cores sind weg, die belieben über längere Zeit sehr stabil ( sieht man in der WebGUI )

Allerdings sind meine Speedtest-Messwerte seit der Aktivierung deutlich schlechte geworden, vorher hatte ich recht stabile. 880 bis 900 MBit/s, seit der Aktivierung schwanken die Werte gewaltig bis unter 400 Mbit/s.

Ob das zusammenhängt, werde ich testen, indem ich die Änderungen rückgängig mache.

Hier mal Screenshot aus Grafana, links die gleichmässige Linie, wo die Default-Einstellungen aktiv waren, dann die Zacken, da war die Änderung aktiv, rechts von heute wo wieder die Default-Einstellungen aktiv sind, der Speedtest ist bisher wieder stabil auf normalen Wert.

1 Like

Interessant wäre zu wissen was du für hardware nutzt, aber wie ich schon vermutet habe wen man am limit damit ist bringt das nichts weil performance Reduzierung, bei mir mit meiner 100mbit leitung fällt sowas gar nicht auf mit der Bandbreite.

Ich hab einen Mini-PC mit Intel Corei5, 32 GB RAM, SSD und 8 x GBit Intel-NIC’s
Das ganz am Kabelinternet mit. 1000/50 MBit/s.
OPNSense ist Stand-Alone auf der Hardware

Ich glaube die CPU kommt bei Bedarf nicht schnell genug aus dem „Schlafmodus“, man merkt es auch beim surfen, die Webseite sind viel schnelle da und werden schneller aufgebaut.

Die CPU-Load der OPNSense ist im Schnitt unter 10% mit einzelnen Peaks nach oben