Wie entferne und verhindere ich alle Prozesse außer einem, den ich in der Praxis aus einem bestimmten Kern auswähle (win10)?

494
Juha

Problem: Ich habe einen Single-Core-Prozess mit oszillierender Last (Pfadoptimierer sc2).

Wie kann ich ein Skript erstellen, das diesen Prozess auf einen bestimmten Kern verlagert und verhindert, dass andere Prozesse in diesen Kern gelangen?

Meine anfängliche Idee ist, ein Befehlszeilenskript zu verwenden, um Prozesse zu überwachen und ihnen (etwa einmal pro Sekunde) ständig zu sagen, dass sie sich von Kern X fernhalten sollen, es sei denn, sie heißen sc2-path-optimizer. Der sc2-path-optimizer wird dann auf den Kern X und sonst nirgends gezwungen.

Ist das möglich? Ich habe 4 Kerne, also habe ich zusätzliche Rechenleistung, um andere Dinge zu erledigen, während ich diesen Core-X-dedizierten Prozess ausführt.

Dieser Ansatz wird an anderer Stelle vorgeschlagen, aber wie lauten die tatsächlichen Befehle für die Änderung der Prozessoraffinität (oder ähnliches) und Befehle für die Thread-Schleife? Ein kleiner Anstoß in die richtige Richtung ist erforderlich.

https://stackoverflow.com/questions/5346692/how-to-reserve-a-core-for-one-thread-on-windows/5346714#5346714

Wie kann ich sicherstellen, dass genau ein Prozess auf einem bestimmten Prozessor / Core ausgeführt wird?

0

1 Antwort auf die Frage

0
Juha

Teilantwort:

Affinität erhalten und festlegen:

PowerShell "Get-Process app | Select-Object ProcessorAffinity" PowerShell "$Process = Get-Process app; $Process.ProcessorAffinity=255" 

https://stackoverflow.com/questions/19187241/change-affinity-of-process-with-windows-script

Holen Sie sich alle Prozesse:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-powershell-1.0/ee176855(v=technet.10)