CPU-Taktung bei Leistungsbedarf (Throtteling)

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
franky1
Beiträge: 4
Registriert: 27.11.2012 18:30:08

CPU-Taktung bei Leistungsbedarf (Throtteling)

Beitrag von franky1 » 27.11.2012 18:40:59

Hallo,

betreibe bei Hetzner einen Root-Server mit Core i7-2600 (genaue Spec:http://www.hetzner.de/hosting/produkte_rootserver/ex4s). Dieser wird mit cpufreq "Modus:ondemand" im Idle auf 1,6GHz runtergetaktet, und sollte bei Last auf bis zu 3,4GHz hochgetaktet werden.

/etc/default/cpufrequtils

Code: Alles auswählen

# cpu frequency scaling
ENABLE="true"
GOVERNOR="ondemand"
#GOVERNOR="performance"
MAX_SPEED="0"
MIN_SPEED="0"
Problem: Ich kann mit dd if=/dev/zero of=/dev/null Last auf die Kerne bringen.Die CPU wird nur hochgetaktet, wenn der Core 0 (in htop) ausgelastet ist, die anderen 7 Cores (Hyperthreading aktiv) bewirken bei Volllast nichts, wenn Core 0 keine Last hat.

Randbedingungen: Ich betreibe Virtualisierung mit KVM. Da KVM nach Möglichkeit die vcpus der VMs immer an einen physischen Kern bindet, bekommt z.B. VM1, die auf Core 3 und 5 läuft, nie die volle Rechenleistung wenn sie ihr Backup komprimiert.
Ich habe keinen Hardwarezugriff auf den Server, kann also keine BIOS-Einstellungen vornehmen.

Notlösung wäre, die CPU per cpufreq dazu zu zwingen, immer auf 3,4GHz zu laufen.

Ich danke für Infos.

wanne
Moderator
Beiträge: 7616
Registriert: 24.05.2010 12:39:42

Re: CPU-Taktung bei Leistungsbedarf (Throtteling)

Beitrag von wanne » 27.11.2012 19:26:57

Wieso willst du die CPU hochtakten, wenn sie nicht ausgelastet ist? Bzw. wie kannst du von vollast ausgehen. wenn Kern0 nicht ausgelastet ist? Lass djohn laufen dann hast du wirklich vollast auf der CPU.
rot: Moderator wanne spricht, default: User wanne spricht.

franky1
Beiträge: 4
Registriert: 27.11.2012 18:30:08

Re: CPU-Taktung bei Leistungsbedarf (Throtteling)

Beitrag von franky1 » 27.11.2012 19:33:28

Ich betreibe Single-Thread Programme (oder: ich teile VMs auch nur 1 oder 2 cpus-> threads zu). Folglich ist nur 1 von 8 Threads der CPU ausgelastet, dieser jedoch voll. Dieser Thread profitiert nicht von den ungenutzten Kernen, sondern nur von einem höheren Takt.
D.h. mein Ziel ist: Wenn 1 Thread ausgelastet ist, soll die CPU hochtakten um diesen zu beschleunigen. Und das unabhängig davon ob CPU0, 1... 7 ausgelastet ist.

wanne
Moderator
Beiträge: 7616
Registriert: 24.05.2010 12:39:42

Re: CPU-Taktung bei Leistungsbedarf (Throtteling)

Beitrag von wanne » 27.11.2012 19:45:10

Naja aber die Anwendung wird ziemlich schnell auf dem ersten kern laufen. Insbesondere bei GOVERNOR="ondemand" wo nach möglichkeit versucht wird zuerst eine CPU voll auszulasten.
rot: Moderator wanne spricht, default: User wanne spricht.

franky1
Beiträge: 4
Registriert: 27.11.2012 18:30:08

Re: CPU-Taktung bei Leistungsbedarf (Throtteling)

Beitrag von franky1 » 27.11.2012 20:11:14

Leider passiert das nicht. Eine Anwendung bleibt auch nach mehreren Minuten auf einem Kern. Manchmal wechselt dieser, aber nicht zwangsweise zu Kern0, sondern immer mal zu einem anderen. Besonders KVM ist darauf fixiert, vcpus immer auf einem Kern zu halten, sinnvoll bei Nutzung der Hardwarevirtualisierungsfunktionen des Intel-Prozessors.

Ich benötige eine Möglichkeit, den Prozessor schnell hochzutakten (also auf Standard- statt Energiespartakt zu bringen, NICHT übertakten), wenn ein Kern voll ausgelastet ist. Eine der Funktionen die das betrifft, benötigt wenn sie ausgeführt wird momentan etwa 20 Sekunden einen Kern voll. Wenn er hochtaktet (von 1,6 auf 3,4 GHz) sollte es entsprechend schneller gehen.

wanne
Moderator
Beiträge: 7616
Registriert: 24.05.2010 12:39:42

Re: CPU-Taktung bei Leistungsbedarf (Throtteling)

Beitrag von wanne » 27.11.2012 20:50:10

So habe gerade nochmal nachgelesen. Bei kernel 3.0 soll hochgetagtet werden wenn ein Core über [/sys/devices/system/cpu/cpufreq/ondemand/up_threshold]% liegt. Sagen die: https://wiki.archlinux.org/index.php/CP ... cy_Scaling

Sonst kannst du den userspace govenor nehmen und dir selbst schreiben, wie du takten willst.
rot: Moderator wanne spricht, default: User wanne spricht.

franky1
Beiträge: 4
Registriert: 27.11.2012 18:30:08

Re: CPU-Taktung bei Leistungsbedarf (Throtteling)

Beitrag von franky1 » 27.11.2012 21:45:52

Ich nutze jetzt erstmal den govener userspace und extern powernowd. Das funktioniert allerdings noch nicht zuverlässig, für konkrete Vorschläge bin ich offen.

wanne
Moderator
Beiträge: 7616
Registriert: 24.05.2010 12:39:42

Re: CPU-Taktung bei Leistungsbedarf (Throtteling)

Beitrag von wanne » 28.11.2012 00:23:50

Also meine Idee war einfach auf userspace zu setzen und dann in ner Endlosschleife sekündlich die Auslastung abzufragen und sobald ein kern über 95% ist das auszuführen:
/sys/devices/system/cpu/cpuX/cpufreq/scaling_available_frequencies | cut -d " " -f 1 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_setspeed
(Weiß nicht villeicht kann man bei dem neuen Intel zueg das dann sogar nur für den Kern machen.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten