Windows: Prozesspriorität ändern und maximale Kerne reglementieren

Mitunter macht es (sehr viel) Sinn, einem Dienst, einer Anwendung, einem wie auch immer geartetem Prozess eine andere Priorität und die maximal zu verwendene Kerne bzw. CPUs zuzuweisen.

Als Fallbeispiel dient mein Heimserver zusammen mit DVBViewer und HandBrake (siehe dort das Update vom Update 09.11.2018). HandBrake wird automatisch nach einer Aufnahme als Aufgabe ausgeführt, um das Format zu ändern. Das spart Platz, aber während die Konvertierung läuft, kommt der kleine olle i3 ganz schön ins Schwitzen. Blöd, wenn dann noch etwas anderes laufen soll. Aber Abhilfe ist einfach: Das Tool soll sowohl mit niedrieger Priorität als auch nur eine gewisse Anzahl an Kernen verwenden. Via Batch lässt sich das für noch zu startenden Prozesse einfach mittels „start“ lösen:

start /wait /belownormal /affinity 7 "" "C:\Program Files\HandBrake\HandBrakeCLI.exe" --preset "Fast 720p30" -i %InputFile% -o %OutputFile%

„/belownormal“ führt mit der nächst niedrigeren Priorität als Normal aus und „/affinity 7“ bedeutet bei diesem System, das nur drei von vier Kernen benutzt werden sollen und dürfen.

Das Bestimmen der „Affinity“ fällt anhand der Tabelle unter

MS Docs – SQL – Installation – Configuration – Server Configuration Options – affinity mask

leichter.

Prüfen kann man den (Miss-)Erfolg z.B. mittels Task-Manager. Auf der Registerkarte „Leistung“ kann man beobachten, ob alle oder nur bestimmte Kerne aus- bzw. belastet sind. Auf der Registerkarte „Details“ kann man die Priorität sehen, sofern man zuvor die Spalte „Basispriorität“ eingeblendet hat.

By the way:

Bei bereits laufenden Prozessen kann man (natürlich) via Task-Manager händisch die Prio und Kerne/CPUs ändern (Registerkarte „Details“, Rechtsklick auf den Prozess und „Priorität festlegen“ bzw. „Zugehörigkeit festlegen“), automatisch geht das z.B. via WMI oder Powershell, siehe Quellen.

Quellen:

davychiu – Limit Handbrake Useable CPU Cores in Windows

superuser – Changing Windows process priority via command line

stackoverflow – Change affinity of process with windows script

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.