Prozess per Aufgabenplanung priorisieren?

Xechon

Commander
Registriert
Feb. 2014
Beiträge
2.066
Hallo CBler,

ich nutze zum Streamen das virtuelle Mischpult Voicemeeter Potatoe. Nun ist es so, dass es zu Situationen kommen kann, dass die Buffer eines Treibers volllaufen. Es gibt dazu wohl zwei Wege das zu fixen. Verschiedene Treiber in Voicemeeter nutzen oder einen Prozess (audiodg.exe)
1. zu priorisieren (hoch)
2. die zugeordneten CPUs von allen auf einen beliebigen setzen.

Die Geschichte mit dem Prozess lässt sich mit einer Drittsoftware "Prozess Lasso" bewerkstelligen. Gibt es eine Möglichkeit das per Aufgabenplanung ohne Drittsoftware Prozess Lasso zu lösen? Kennt sich da wer aus?

Freue mich auf euer Feedback. Sollte es noch Fragen geben, stehe ich gerne parat.

Viele Grüße

Xechon
 
Da hab ich mir mal ne Batch für geschrieben:
Code:
@echo off
setlocal

rem https://superuser.com/questions/620724/changing-windows-process-priority-via-command-line

set app=%~1
set priority=%~2

if [%app%] == [] (
    goto :help
) else (
    if [%priority%] == [] (
        goto :help
    ) else (
        goto :main
    )
)

goto :help

:help
echo Usage: setpriority.cmd ^<Image name^> ^<Priority = [idle (--)^|below normal (-)^|normal (0)^|above normal (+)^|high priority (++)^|realtime (!)]^>

goto :exit

:main
if [%priority%] == [--] (
    set priority=idle
) else if [%priority%] == [-] (
    set priority=below normal
) else if [%priority%] == [0] (
    set priority=normal
) else if [%priority%] == [+] (
    set priority=above normal
) else if [%priority%] == [++] (
    set priority=high priority
) else if [%priority%] == [!] (
    set priority=realtime
)

wmic process where name="%app%" call setpriority "%priority%"

:exit
 
Ah! Okay, danke! Kann man das noch mit der Zuordnung zu CPUs verknüpfen? Dass "alle" abgewählt werden und nur eine CPU ausgewählt?
 
Zum festlegen der Prozesspriorität einer Aufgabe benutze ich folgenden Trick:
  1. In der Aufgabenplanung die geplante Aufgabe exportieren (erzeugt eine XML-Datei).
  2. Die XML mit einem Editor öffnen und die "Priority" von 7 auf z.B. 1 (entspricht "hoch") ändern.
  3. In der Aufgabenplanung die alte Aufgabe löschen und die modifizierte XML importieren.
Wenn die Aufgabe getriggert wurde, kann die festgelegte Prozesspriorität im Taskmanager kontrolliert werden.
Die Vorgehensweise und die Prioritätsklassen werden hier nochmals im Detail beschrieben.
 
Danke @Uerige Nice to know, allerdings verändert das ja nur die Priorität der Aufgabe bzw. des Prozess'. Ich habe einen Prozess (audiodg.exe) der nicht in der Aufgabenplanung enthalten ist, den ich aber gerne auf "Hoch" automatisiert mit der Anmeldung am PC setzen möchte.
 
  • Gefällt mir
Reaktionen: Uerige
@Xechon Achso jetzt hab ich dein Anliegen erst richtig verstanden :D
Mein Trick funktioniert in der Tat nur zum festlegen der Priorität von "selbst gestarteten Prozessen".

Sorry dann bin ich mit meiner Kenntnis leider raus. Vielleicht hilft mein Post ja jemand anderem der auf dieses Thema stößt :)
 
  • Gefällt mir
Reaktionen: Xechon
Zurück
Oben