Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Akademische Frage zum "Ankitzeln" der Multitasking-Performance

42 views
Skip to first unread message

Frank Möller

unread,
Nov 29, 2016, 9:46:59 AM11/29/16
to

Hallo,

wer sich noch an die "gute, alte Zeit" mit NT 4 erinnert, weiß vielleicht
auch noch, daß es dazumal für ebenjenes NT 4 in den von Mark Russinovich
und Bryce Cogswell entwickelten "WInternals" auch den "NT Quantum Frobber"
gab, mit dem man dezidiert und sehr genau die Zeitscheiben (in
Millisekunden) für Vorder- und Hintergrund-Prozesse (auch via
Batch/Kommandozeile) definieren konnte.

Damit ging die Multitasking-Performance von NT 4 gefühlt förmlich durch die
Decke, besonders dann, wenn man sich auch noch ein Dual-Sockel-Board
gegönnt hat.

Seit W2K funktioniert(e) jener "NT Quantum Frobber" nicht mehr, mir ist
auch kein aktuelles Äquivalent bekannt, es gibt aber immerhin (*).

Die Multitasking-Performance seit W2K war/ist ab Systemstart immer
irgendwie ein bißchen zäh. Wenn man dann jedoch (z. B. mit (*)) erst mal
alle Kerne richtig gefordert hat (kurzzeitig reicht schon), war sie
deutlich flüssiger und hielt/hält auch bis zum nächsten Systemstart. Das
kann ich bis einschließlich W 7 so verifizieren (8 und 10 sind mir togal).

Da scheint der Task-Scheduler im Hintergrund also doch so einiges an den
Zeitscheiben und Prioritäten zu "tunen".

Eine Änderung der Systemeinstellung für "Optimale Leistung anpassen für:
Programme / Hintergrunddienste" ändert daran wenig bis nichts.

Mit (*) geht's dann ordentlich. An den CPU-Frequenzen bei SpeedStep /
Cool'n'Quiet ändert das übrigens nix.

Preisfrage: Warum ist das so? Weiß da jemand was _genaueres_ dazu, warum
das ab Systemstart standardmäßig erst mal auf Schnarchmodus "getunt" ist?


(*) Als Hausmittel behelfe ich mir, indem ich nach dem Systemstart
automagisch ein Batch mit

consume -cpu-time -time 1

aufrufe, welches 1024 Threads startet und 1 Sekunde lang alle Cores
auslatet. Danach ist die Multitasking-Performance so, wie sich's gehört.

Die consume.exe ist z. B. in den "Windows Server 2003 Resource Kit Tools"
enthalten.

--

Frank Möller

unread,
Nov 29, 2016, 2:24:02 PM11/29/16
to
Falk Duebbert schrieb:
> Frank Möller:

>> Preisfrage: Warum ist das so? Weiß da jemand was _genaueres_ dazu, warum
>> das ab Systemstart standardmäßig erst mal auf Schnarchmodus "getunt" ist?

> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl

> Du kannst daran herumspielen. Gerüchte weise stellt sich mit Werten um
> 26 der Stein der Weisen ein

Danke für den Tip, der mich zu
<http://www.thewindowsclub.com/processor-scheduling-in-windows-7-8> führte.

Schon nach kurzem Rumspielen ist klar, daß 0x2, ox18 und 0x26 nichts für
mich sind, auch 0x1 nicht.

Was mir hilft, ist tatsächlich Win32PrioritySeparation mit 0x0.

Das ist schon ein ziemlicher Kick, insbesondere beim schnellen Hin- und
Herschalten von aktiven und inaktiven Fenstern. Besonders bei Programmen,
die mit Borland Delphi oder C++ Builder erstellt wurden, die bei sowas
immer gewisse Verzögerungen beim Aufbau des GUIs zeigen, macht sich's
bemerkbar. (Die Entwickler könnten da zwar mit passend auf gewissen Events
eingestreuten Repaint() nachhelfen, aber da denkt keiner dran.)

Aber auch dann bringt das im OP genannte "Ankitzeln" ebenfalls nochmal
einen zusätzlichen Schub. Schon witzig.

> aber ich habe seit 2003 64bit und den
> dazugehörigen DL380G4 eigentlich nie CPU oder Scheduling als
> Flaschenhals erlebt - Storage oder RAM schon eher.

> Einen aktuellen 2HE-Server mit zwei E5-2697 bekommt man nicht mal mit
> 100 Desktop-VMs ins Schwitzen.

Ja, um sowas geht's mir auch nicht. Mit meinem 8-Kerner betreibe ich da
schon "Jammern auf hohem Niveau". Dennoch sind die Unterschiede durchaus
sichtbar, auch wenn es nur um Zehntelsekunden geht. Ich mag es einfach,
wenn es richtig "flutscht".

--

Frank Möller

unread,
Nov 29, 2016, 2:33:50 PM11/29/16
to
Falk Duebbert schrieb:
> Frank Möller:

>> Preisfrage: Warum ist das so? Weiß da jemand was _genaueres_ dazu, warum
>> das ab Systemstart standardmäßig erst mal auf Schnarchmodus "getunt" ist?

> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl

> Du kannst daran herumspielen. Gerüchte weise stellt sich mit Werten um
> 26 der Stein der Weisen ein

Danke für den Tip, der mich zu
<http://www.thewindowsclub.com/processor-scheduling-in-windows-7-8> führte.

Schon nach kurzem Rumspielen ist klar, daß 0x2, 0x18 und 0x26 nichts für

Frank Möller

unread,
Nov 29, 2016, 2:37:14 PM11/29/16
to
Falk Duebbert schrieb:
> Frank Möller:

>> Preisfrage: Warum ist das so? Weiß da jemand was _genaueres_ dazu, warum
>> das ab Systemstart standardmäßig erst mal auf Schnarchmodus "getunt" ist?

> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl

> Du kannst daran herumspielen. Gerüchte weise stellt sich mit Werten um
> 26 der Stein der Weisen ein

Danke für den Tip, der mich zu
<http://www.thewindowsclub.com/processor-scheduling-in-windows-7-8> führte.

Schon nach kurzem Rumspielen ist klar, daß 0x2, ox18 und 0x26 nichts für
mich sind, auch 0x1 nicht.

Was mir hilft, ist tatsächlich Win32PrioritySeparation mit 0x0.

Das ist schon ein ziemlicher Kick, insbesondere beim schnellen Hin- und
Herschalten von aktiven und inaktiven Fenstern. Besonders bei Programmen,
die mit Borland Delphi oder C++ Builder erstellt wurden, die bei sowas
immer gewisse Verzögerungen beim Aufbau des GUIs zeigen, macht sich's
bemerkbar. (Die Entwickler könnten da zwar mit passend auf gewissen Events
eingestreuten Repaint() nachhelfen, aber da denkt keiner dran.)

Bei Java-Programmen (z. B. TV-Browser) fällt's noch mehr auf.

Thorsten Albrecht

unread,
Nov 29, 2016, 4:08:54 PM11/29/16
to
Frank Möller <butterspiege...@spl.at> wrote:

>Falk Duebbert schrieb:
>> Frank Möller:
>
>>> Preisfrage: Warum ist das so? Weiß da jemand was _genaueres_ dazu, warum
>>> das ab Systemstart standardmäßig erst mal auf Schnarchmodus "getunt" ist?
>
>> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl
>
>> Du kannst daran herumspielen. Gerüchte weise stellt sich mit Werten um
>> 26 der Stein der Weisen ein
>
>Danke für den Tip, der mich zu
><http://www.thewindowsclub.com/processor-scheduling-in-windows-7-8> führte.
>
>Schon nach kurzem Rumspielen ist klar, daß 0x2, ox18 und 0x26 nichts für
>mich sind, auch 0x1 nicht.
>
>Was mir hilft, ist tatsächlich Win32PrioritySeparation mit 0x0.
>
>Das ist schon ein ziemlicher Kick, insbesondere beim schnellen Hin- und
>Herschalten von aktiven und inaktiven Fenstern.

Hättest Du mal ein konkretes, einfaches Beispiel für alle
Interessierten zum Nachstellen? Würde mich interessieren, ob dieses
Tuning bei mir etwas bewirkt. Bislang dachte ich, dass Background
Services eher etwas mit Fileserverdiensten etc. zu tun haben und nicht
mit den normalen Anwendungen.

Thorsten

Frank Möller

unread,
Nov 29, 2016, 5:02:54 PM11/29/16
to
Thorsten Albrecht schrieb:
> Frank Möller <butterspiege...@spl.at> wrote:
>> Falk Duebbert schrieb:
>>> Frank Möller:

>>>> Preisfrage: Warum ist das so? Weiß da jemand was _genaueres_ dazu, warum
>>>> das ab Systemstart standardmäßig erst mal auf Schnarchmodus "getunt" ist?

>>> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl

>>> Du kannst daran herumspielen. Gerüchte weise stellt sich mit Werten um
>>> 26 der Stein der Weisen ein

>> Danke für den Tip, der mich zu
>> <http://www.thewindowsclub.com/processor-scheduling-in-windows-7-8> führte.

>> Schon nach kurzem Rumspielen ist klar, daß 0x2, ox18 und 0x26 nichts für
>> mich sind, auch 0x1 nicht.

>> Was mir hilft, ist tatsächlich Win32PrioritySeparation mit 0x0.

>> Das ist schon ein ziemlicher Kick, insbesondere beim schnellen Hin- und
>> Herschalten von aktiven und inaktiven Fenstern.

> Hättest Du mal ein konkretes, einfaches Beispiel für alle
> Interessierten zum Nachstellen?

Nicht wirklich. Ich denke, das ist individuell zu verschieden.

Wer will, kann mit den beiden genannten Aktionen (also mit der Einstellung
von Win32PrioritySeparation und dem im OP genannten Aufruf von consume.exe)
selber testen, ob das für ihn selber bzw. bei seinem individuellen
Anwendungsspektrum irgendeinen für ihn merkbaren Unterschied macht (oder
nicht). Aber ich möchte mich da jetzt nicht mit Beispielen aus dem Fenster
lehnen, die wg. anderer Anwendungsszenarien für andere vielleicht überhaupt
nicht nachvollziehbar sind.

Gut, ein Beispiel:

Wenn der TV-Browser (Java) im Vollbild läuft und ich dann sehr schnell die
Senderliste quer über den Bildschirm verschiebe, habe ich "ungetunt", also
mit den "alten" Einstellungen, deutliche Ruckler beim Verschieben. Mit den
o. g. neuen Einstellungen ruckelt nix mehr.

Es gibt noch mehr Kleinigkeiten dieser Art, aber ob das dann bei jemand
anderem auch so ist - keine Garantie.

> Würde mich interessieren, ob dieses Tuning bei mir etwas bewirkt.

Probier's einfach mit Deiner individuellen Anwendungsumgebung aus.

> Bislang dachte ich, dass Background Services eher etwas mit
> Fileserverdiensten etc. zu tun haben und nicht mit den normalen
> Anwendungen.

Nicht nur Systemprogramme/Dienste können dutzende oder hunderte von Threads
laufen haben, sondern Anwendungsprogramme halt auch. Und die von MS
vorgegebene Zuteilung von CPU-Zeiten, die dann ja auch noch verschiedene
Prioritäten und den Status Vordergrund/Hintergrund einbeziehen muß, ist
vielleicht nicht für jeden Geschmack optimal voreingestellt.

--

0 new messages