Geringes CPU Scaling - Intel N100

vlamers

New Member
Feb 9, 2024
6
2
3
Hallo zusammen,

ich nutze Proxmox schon einige Zeit für ein paar Anwendungen mit geringeren Anforderungen (Nextcloud (VM), Openmediavault(VM), Openhab(VM), MQTT-Server(LXC), OneWire(LXC), Photoprism(LXC), Immich(LXC-Portainer). Openlightning(LXC), usw.).

Folgende Hardware ist verbaut:
Intel N100 (Passiv gekühlt)
32Gb Arbeitsspeicher
500Gb NVME, 4 SSDs für OMV

Wenn in der Nextcloud VM mehrere Prozesse starten (z.B. anlernen des dortigen "KI" Models) und die Auslastung der VM auf 100% steigt (ebenso der Host, da 4 CPU und "Host" der VM zugewiesen ist), taktet der Prozessor nicht hoch. Die Taktfrequenz pendelt immer zwischen maximal 1500-1800 MHz (Temperatur bei ca. 54°C - klingt plausibel für den mittelmäßigen Takt), selbst wenn die VM über mehrere Tage auf 100% CPU Last steht. Der Prozessor könnte bis zu 3400Mhz (die ich jedoch noch nie erreicht habe).

1. Zum testen wurde auch stress-ng über mehrere Stunden laufen gelassen, die Frequenz steigt jedoch nicht an.
2.Kurzzeitig kann ich nach einem Neustart über stress-NG eine Taktfrequenz von 2200-2500MHz erreichen (ca. 3-5 Minuten), dann wird wieder nur bis 1800MHz getaktet

der CPU Govenor steht auf "performance"
cpufreq-info liefert: driver "intel_pstate"

Ist es möglich, dass es dem Prozessor zu viele VMs und Container sind?
Zugewiesene CPUs:
4 CPUs: Nextcloud VM, Openmediavault VM, Immich-Portainer (LXC)
2 CPUs: Openhab, Photoprism
1 CPU: Alle restlichen LXCs


Gibt es eine Möglichkeit der geringen Taktfrequenz auf den Grund zu gehen?

vielen Dank & viele Grüße
vlamers
 
Try turning off all the VMs except for the nextcloud VM and see if that makes a difference. You can over subscribe the CPU but only to a certain point, Check your bios settings as well.
 
  • Like
Reactions: Johannes S
Strange behavior:
I have deactivated all containers and VMs.
The clock frequency jumps back and forth very quickly between 700 and 3100 MHz for all 4 cores.
Temperature drops to approx. 46°C
With the command "stress-ng --cpu 4 --fork 4 --iomix 4 --vm 2" the clock frequency increases to 2990 MHz and drops to 1000 MHz after 10-15 seconds. Temperature after 5 minutes 48-50°C.
With "stress-ng --cpu 4" the frequency briefly increases to 2990 MHz and drops to 1700MHz-1900MHz after 10 seconds. Temperature after 5 minutes 50-51°C.
I also tested with s-tui (Screenshot)
Screenshot 2025-01-14 183015.png

best regards
 
The solution was to increase the power limit of the motherboard from 6W to 10W.
The power was increased and the N100 now runs at 3GHz for longer.
Small problem solved.
 
Last edited:
This was not "thermal"-throttling, but due to the power-limit setting. Thermals were absolutely fine. However, the overall threshold for the power-consumption over a certain amount of time was exceeded. That is why the system throttled the CPU clock. It tried to still stay inside the defined power limit. You should definitely differentiate between the two scenarios.
 
I understood the post to mean that thermal throttling as a result of the voltage increase will affect the frequency.
I will replace the CPU with a more powerful, actively cooled one.
 
Nachdem das hier im deutschsprachigen Bereich steht, hier die Antwort diesmal auf Deutsch:
Jede CPU hat eine vom Hersteller vorgegebene "Zielleistung" (TDP =Thermal Design Power), für die interne Power-Logik.

Diese Angabe entscheidet darüber wie lange gewisse Taktstufen gehalten werden können, da die Leistung (Power) über die Zeit aufintegriert wird und daraus abgeleitet wird, ob eine Änderung der Parameter nötig ist, oder man sich im Rahmen der gesetzten Limits befindet.

Auch extrem wichtig zu beachten:
Der N100 ist (wie viele andere CPUs heute), keine reine CPU mehr, sondern eben ein System-On-Chip (SOC). Das heißt, darin befindet sich eben auch Peripherieansteuerung, die sonst in externen Chipsätzen wäre.
Und auch diese Teile benötigen Leistung.
Die oben erwähnte "TDP" gilt aber für den gesamten SOC! Sprich die Summe aus allen Teilleistungen ergibt die TDP.

Ich zitiere mal deinen obigen Beitrag, um das zu verdeutlichen:
...
With the command "stress-ng --cpu 4 --fork 4 --iomix 4 --vm 2" the clock frequency increases to 2990 MHz and drops to 1000 MHz after 10-15 seconds. Temperature after 5 minutes 48-50°C.
With "stress-ng --cpu 4" the frequency briefly increases to 2990 MHz and drops to 1700MHz-1900MHz after 10 seconds.
...

Was du hier siehst ist simpel:
- Der Intel N100 ist angegeben mit Nominaltakt von nur 800MHz, aber Turbo-Takt bis 3.4GHz (mit Betonung auf "bis zu", je nachdem wie das Power-Budget aussieht!).
- Bei Belastung der CPU-Kerne alleine reicht das Power-Budget der internen Power-Logik für einen langfristig höheren Takt. Die CPU fällt nach dem Turbo-Zeitraum (deine ca. 3GHz) zwar zurück in einen deutlich geringeren Takt-Bereich. Das ist aber völlig normal, denn die eingestellten "6W"-Powerbudget müssen eingehalten werden. Diese würden bei dauerndem, höheren Takt deutlich gerissen.
- Der noch niedrigere langfrisitige Takt im Szenario mit I/O und Speicherbelastung liegt simpel daran, dass nun von den "6W" auch noch die Leistung für RAM und I/O-Teile im Chip abgezwackt werden müssen.
- Das erklärt auch eindeutig, warum die Erhöhung des Power-Budgets von 6W auf 10W den von dir erwähnten Effekt hat.
- Du hast damit einfach der Chip-internen Power-Logik mehr Spielraum gegeben.

Die Power-Steuerungen der heutigen Chips sind genauso ausgeklügelt wie komplex.
Aber mit ein bisschen Zeit und Muße durchaus zu verstehen.

Kleiner Nachtrag:
Hättest du beim originalen Setting von "6W" zusätzlich noch die GPU belastet (neben CPU und Speicher und IO), dann wäre die CPU höchstwahrscheinlich tatsächlich bei Dauerbelastung beim Nominaltakt von nur 800MHz angekommen.
Wie erwähnt, muss sich eben alles diesem vorgebenen Limit unterordnen bzw. die Leistungssteuerung erzwingt, dass dieses Limit eingehalten wird.
 
Last edited: